org.apache.pdfbox.pdmodel.fdf.FDFDictionary Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pdfbox Show documentation
Show all versions of pdfbox Show documentation
The Apache PDFBox library is an open source Java tool for working with PDF documents.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.pdfbox.pdmodel.fdf;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.cos.COSString;
import org.apache.pdfbox.pdmodel.common.COSObjectable;
import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
import org.apache.pdfbox.pdmodel.common.filespecification.PDSimpleFileSpecification;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* This represents an FDF dictionary that is part of the FDF document.
*
* @author Ben Litchfield
* @version $Revision: 1.9 $
*/
public class FDFDictionary implements COSObjectable
{
private COSDictionary fdf;
/**
* Default constructor.
*/
public FDFDictionary()
{
fdf = new COSDictionary();
}
/**
* Constructor.
*
* @param fdfDictionary The FDF documents catalog.
*/
public FDFDictionary( COSDictionary fdfDictionary )
{
fdf = fdfDictionary;
}
/**
* This will create an FDF dictionary from an XFDF XML document.
*
* @param fdfXML The XML document that contains the XFDF data.
* @throws IOException If there is an error reading from the dom.
*/
public FDFDictionary( Element fdfXML ) throws IOException
{
this();
NodeList nodeList = fdfXML.getChildNodes();
for( int i=0; i \n" );
}
COSArray ids = this.getID();
if( ids != null )
{
COSString original = (COSString)ids.getObject( 0 );
COSString modified = (COSString)ids.getObject( 1 );
output.write( " \n");
}
List fields = getFields();
if( fields != null && fields.size() > 0 )
{
output.write( "\n" );
for( int i=0; i\n" );
}
}
/**
* Convert this standard java object to a COS object.
*
* @return The cos object that matches this Java object.
*/
public COSBase getCOSObject()
{
return fdf;
}
/**
* Convert this standard java object to a COS object.
*
* @return The cos object that matches this Java object.
*/
public COSDictionary getCOSDictionary()
{
return fdf;
}
/**
* The source file or target file: the PDF document file that
* this FDF file was exported from or is intended to be imported into.
*
* @return The F entry of the FDF dictionary.
*
* @throws IOException If there is an error creating the file spec.
*/
public PDFileSpecification getFile() throws IOException
{
return PDFileSpecification.createFS( fdf.getDictionaryObject( COSName.F ) );
}
/**
* This will set the file specification.
*
* @param fs The file specification.
*/
public void setFile( PDFileSpecification fs )
{
fdf.setItem( COSName.F, fs );
}
/**
* This is the FDF id.
*
* @return The FDF ID.
*/
public COSArray getID()
{
return (COSArray)fdf.getDictionaryObject( COSName.ID );
}
/**
* This will set the FDF id.
*
* @param id The new id for the FDF.
*/
public void setID( COSArray id )
{
fdf.setItem( COSName.ID, id );
}
/**
* This will get the list of FDF Fields. This will return a list of FDFField
* objects.
*
* @return A list of FDF fields.
*/
public List getFields()
{
List retval = null;
COSArray fieldArray = (COSArray)fdf.getDictionaryObject( COSName.FIELDS );
if( fieldArray != null )
{
List fields = new ArrayList();
for( int i=0; i pages = new ArrayList();
for( int i=0; i annots = new ArrayList();
for( int i=0; i embedded = new ArrayList();
for( int i=0; i