org.pdfbox.pdmodel.interactive.form

Class PDField

Implemented Interfaces:
COSObjectable
Known Direct Subclasses:
PDChoiceButton, PDPushButton, PDSignature, PDUnknownField, PDVariableText

public abstract class PDField
extends java.lang.Object
implements COSObjectable

This is the superclass for a Field element in a PDF. Based on the COS object model from PDFBox.
Version:
$Revision: 1.23 $
Author:
sug

Field Summary

static int
FLAG_NO_EXPORT
A Ff flag.
static int
FLAG_READ_ONLY
A Ff flag.
static int
FLAG_REQUIRED
A Ff flag.

Constructor Summary

PDField(PDAcroForm theAcroForm)
Constructor.
PDField(PDAcroForm theAcroForm, COSDictionary field)
Creates a COSField from a COSDictionary, expected to be a correct object definition for a field in PDF.

Method Summary

String
findFieldType()
Find the field type and optionally do a recursive upward search.
PDField
findKid(String[] name, int nameIndex)
This will find one of the child elements.
PDAcroForm
getAcroForm()
This will get the acroform that this field is part of.
PDFormFieldAdditionalActions
getActions()
Get the additional actions for this field.
COSBase
getCOSObject()
Convert this standard java object to a COS object.
COSDictionary
getDictionary()
This will get the dictionary associated with this field.
int
getFieldFlags()
This will get the flags for this field.
String
getFieldType()
Get the FT entry of the field.
String
getFullyQualifiedName()
Returns the fully qualified name of the field, which is a concatenation of the names of all the parents fields.
List
getKids()
This will get all the kids of this field.
PDField
getParent()
Get the parent field to this field, or null if none exists.
String
getPartialName()
Returns the partial name of the field.
abstract String
getValue()
getValue gets the fields value to as a string.
PDAnnotationWidget
getWidget()
This will get the single associated widget that is part of this field.
void
importFDF(FDFField fdfField)
This will import a fdf field from a fdf document.
boolean
isNoExport()
boolean
isReadonly()
boolean
isRequired()
void
setAcroForm(PDAcroForm value)
This will set the form this field is on.
void
setActions(PDFormFieldAdditionalActions actions)
Set the actions of the field.
void
setFieldFlags(int flags)
This will set the flags for this field.
void
setKids(List kids)
This will set the list of kids.
void
setNoExport(boolean noExport)
sets the field to be not exported..
void
setParent(PDField parent)
Set the parent of this field.
void
setPartialName(String name)
This will set the partial name of the field.
void
setReadonly(boolean readonly)
sets the field to be read-only.
void
setRequired(boolean required)
sets the field to be required.
abstract void
setValue(String value)
setValue sets the fields value to a given string.
String
toString()
This will return a string representation of this field.

Field Details

FLAG_NO_EXPORT

public static final int FLAG_NO_EXPORT
A Ff flag.
Field Value:
4

FLAG_READ_ONLY

public static final int FLAG_READ_ONLY
A Ff flag.
Field Value:
1

FLAG_REQUIRED

public static final int FLAG_REQUIRED
A Ff flag.
Field Value:
2

Constructor Details

PDField

public PDField(PDAcroForm theAcroForm)
Constructor.
Parameters:
theAcroForm - The form that this field is part of.

PDField

public PDField(PDAcroForm theAcroForm,
               COSDictionary field)
Creates a COSField from a COSDictionary, expected to be a correct object definition for a field in PDF.
Parameters:
theAcroForm - The form that this field is part of.
field - the PDF objet to represent as a field.

Method Details

findFieldType

public String findFieldType()
Find the field type and optionally do a recursive upward search. Sometimes the fieldtype will be specified on the parent instead of the direct object. This will look at this object for the field type, if none is specified then it will look to the parent if there is a parent. If there is no parent and no field type has been found then this will return null.
Returns:
The field type or null if none was found.

findKid

public PDField findKid(String[] name,
                       int nameIndex)
            throws IOException
This will find one of the child elements. The name array are the components of the name to search down the tree of names. The nameIndex is where to start in that array. This method is called recursively until it finds the end point based on the name array.
Parameters:
name - An array that picks the path to the field.
nameIndex - The index into the array.
Returns:
The field at the endpoint or null if none is found.

getAcroForm

public PDAcroForm getAcroForm()
This will get the acroform that this field is part of.
Returns:
The form this field is on.

getActions

public PDFormFieldAdditionalActions getActions()
Get the additional actions for this field. This will return null if there are no additional actions for this field.
Returns:
The actions of the field.

getCOSObject

public COSBase getCOSObject()
Convert this standard java object to a COS object.
Specified by:
getCOSObject in interface COSObjectable
Returns:
The cos object that matches this Java object.

getDictionary

public COSDictionary getDictionary()
This will get the dictionary associated with this field.
Returns:
The dictionary that this class wraps.

getFieldFlags

public int getFieldFlags()
This will get the flags for this field.
Returns:
flags The set of flags.

getFieldType

public String getFieldType()
Get the FT entry of the field. This is a read only field and is set depending on the actual type. The field type is an inheritable attribute. This method will return only the direct value on this object. Use the findFieldType for an upward recursive search.
Returns:
The Field type.

getFullyQualifiedName

public String getFullyQualifiedName()
            throws IOException
Returns the fully qualified name of the field, which is a concatenation of the names of all the parents fields.
Returns:
the name of the field

getKids

public List getKids()
            throws IOException
This will get all the kids of this field. The values in the list will either be PDWidget or PDField. Normally they will be PDWidget objects unless this is a non-terminal field and they will be child PDField objects.
Returns:
A list of either PDWidget or PDField objects.

getParent

public PDField getParent()
            throws IOException
Get the parent field to this field, or null if none exists.
Returns:
The parent field.

getPartialName

public String getPartialName()
Returns the partial name of the field.
Returns:
the name of the field

getValue

public abstract String getValue()
            throws IOException
getValue gets the fields value to as a string.
Returns:
The string value of this field.

getWidget

public PDAnnotationWidget getWidget()
            throws IOException
This will get the single associated widget that is part of this field. This occurs when the Widget is embedded in the fields dictionary. Sometimes there are multiple sub widgets associated with this field, in which case you want to use getKids(). If the kids entry is specified, then the first entry in that list will be returned.
Returns:
The widget that is associated with this field.

importFDF

public void importFDF(FDFField fdfField)
            throws IOException
This will import a fdf field from a fdf document.
Parameters:
fdfField - The fdf field to import.

isNoExport

public boolean isNoExport()
Returns:
true if the field is not to be exported.

isReadonly

public boolean isReadonly()
Returns:
true if the field is readonly

isRequired

public boolean isRequired()
Returns:
true if the field is required

setAcroForm

public void setAcroForm(PDAcroForm value)
This will set the form this field is on.
Parameters:
value - The new form to use.

setActions

public void setActions(PDFormFieldAdditionalActions actions)
Set the actions of the field.
Parameters:
actions - The field actions.

setFieldFlags

public void setFieldFlags(int flags)
This will set the flags for this field.
Parameters:
flags - The new flags.

setKids

public void setKids(List kids)
This will set the list of kids.
Parameters:
kids - The list of child widgets.

setNoExport

public void setNoExport(boolean noExport)
sets the field to be not exported..
Parameters:
noExport - The new flag for noExport.

setParent

public void setParent(PDField parent)
Set the parent of this field.
Parameters:
parent - The parent to this field.

setPartialName

public void setPartialName(String name)
This will set the partial name of the field.
Parameters:
name - The new name for the field.

setReadonly

public void setReadonly(boolean readonly)
sets the field to be read-only.
Parameters:
readonly - The new flag for readonly.

setRequired

public void setRequired(boolean required)
sets the field to be required.
Parameters:
required - The new flag for required.

setValue

public abstract void setValue(String value)
            throws IOException
setValue sets the fields value to a given string.
Parameters:
value - the string value

toString

public String toString()
This will return a string representation of this field.
Returns:
A string representation of this field.