Package com.itextpdf.forms.fields
Class AbstractPdfFormField
- java.lang.Object
-
- com.itextpdf.kernel.pdf.PdfObjectWrapper<PdfDictionary>
-
- com.itextpdf.forms.fields.AbstractPdfFormField
-
- Direct Known Subclasses:
PdfFormAnnotation,PdfFormField
public abstract class AbstractPdfFormField extends PdfObjectWrapper<PdfDictionary>
This class represents a single field or field group in anAcroForm.To be able to be wrapped with this
PdfObjectWrapperthePdfObjectmust be indirect.
-
-
Field Summary
Fields Modifier and Type Field Description protected Colorcolorprivate static intDA_COLORIndex of color value in default appearance element.private static intDA_FONTIndex of font value in default appearance element.private static intDA_SIZEIndex of font size value in default appearance element.static intDEFAULT_FONT_SIZESize of text in form fields when font size is not explicitly set.private booleanenableFieldRegenerationIndicates if the form field appearance stream regeneration is enabled.protected PdfFontfontprotected floatfontSizeprivate static org.slf4j.LoggerLOGGERstatic intMIN_FONT_SIZEMinimal size of text in form fields.protected PdfFormFieldparentParent form field.protected PdfConformancepdfConformanceprivate static PdfName[]TERMINAL_FIELDS
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractPdfFormField(PdfDictionary pdfObject)Creates a form field as a wrapper object around aPdfDictionary.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voiddisableCurrentFieldRegeneration()This method disables regeneration of the current field appearance stream.voiddisableFieldRegeneration()This method disables regeneration of the field and its children appearance stream.voidenableCurrentFieldRegeneration()This method enables regeneration of the current field appearance stream and regenerates it.voidenableFieldRegeneration()This method enables regeneration of the field appearance stream.booleanequals(java.lang.Object o)Indicate whether some other object is "equal to" this one.(package private) PdfObjectgetAcroFormObject(PdfName key, int type)abstract java.lang.String[]getAppearanceStates()Gets the appearance state names.ColorgetColor()Gets the current color of the form field.abstract PdfStringgetDefaultAppearance()Gets default appearance string containing a sequence of valid page-content graphics or text state operators that define such properties as the field's text size and color.PdfDocumentgetDocument()Gets thePdfDocumentthat owns that form field.PdfStringgetFieldName()Gets the current field name.(package private) PdfStringgetFieldName(java.util.Set<PdfFormField> visited)Gets the current field name.PdfFontgetFont()Gets the current font of the form field.floatgetFontSize()Gets the current fontSize of the form field.PdfDictionarygetParent()Gets the parent dictionary.PdfFormFieldgetParentField()Gets the parent field.PdfConformancegetPdfConformance()Gets the declared conformance.PdfDictionarygetPdfObject()Gets the wrapped dictionary.inthashCode()Generate a hash code for this object.booleanisFieldRegenerationEnabled()This method checks if field appearance stream regeneration is enabled.booleanisTerminalFormField()Determines whether current form field is terminal or not.protected booleanisWrappedObjectMustBeIndirect()Defines if the object behind this wrapper must be an indirect object in the resultant document.AbstractPdfFormFieldput(PdfName key, PdfObject value)Inserts the value into thePdfDictionaryof this field and associates it with the specified key.abstract booleanregenerateField()This method regenerates appearance stream of the field.voidrelease()Releases underlying pdf object and other pdf entities used by wrapper.AbstractPdfFormFieldremove(PdfName key)Removes the specified key from thePdfDictionaryof this field.private PdfFontresolveFontName(java.lang.String fontName)(package private) voidretrieveStyles()AbstractPdfFormFieldsetColor(Color color)Sets the text color and regenerates appearance stream.(package private) voidsetColorNoRegenerate(Color color)Sets the text color and does not regenerate appearance stream.AbstractPdfFormFieldsetFont(PdfFont font)Basic setter for thefontproperty.AbstractPdfFormFieldsetFontAndSize(PdfFont font, float fontSize)Combined setter for thefontandfontSizeproperties.AbstractPdfFormFieldsetFontSize(float fontSize)Basic setter for thefontSizeproperty.AbstractPdfFormFieldsetFontSize(int fontSize)Basic setter for thefontSizeproperty.AbstractPdfFormFieldsetFontSizeAutoScale()Sets zero font size which will be interpreted as auto-size according to ISO 32000-1, 12.7.3.3.voidsetParent(PdfFormField parent)Sets a parentPdfFormFieldfor the current object.private static java.lang.Object[]splitDAelements(java.lang.String da)(package private) voidupdateFontAndFontSize(PdfFont font, float fontSize)-
Methods inherited from class com.itextpdf.kernel.pdf.PdfObjectWrapper
ensureObjectIsAddedToDocument, ensureUnderlyingObjectHasIndirectReference, flush, isFlushed, makeIndirect, makeIndirect, markObjectAsIndirect, setForbidRelease, setModified, setPdfObject, unsetForbidRelease
-
-
-
-
Field Detail
-
DEFAULT_FONT_SIZE
public static final int DEFAULT_FONT_SIZE
Size of text in form fields when font size is not explicitly set.- See Also:
- Constant Field Values
-
MIN_FONT_SIZE
public static final int MIN_FONT_SIZE
Minimal size of text in form fields.- See Also:
- Constant Field Values
-
TERMINAL_FIELDS
private static final PdfName[] TERMINAL_FIELDS
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
DA_FONT
private static final int DA_FONT
Index of font value in default appearance element.- See Also:
- Constant Field Values
-
DA_SIZE
private static final int DA_SIZE
Index of font size value in default appearance element.- See Also:
- Constant Field Values
-
DA_COLOR
private static final int DA_COLOR
Index of color value in default appearance element.- See Also:
- Constant Field Values
-
font
protected PdfFont font
-
fontSize
protected float fontSize
-
color
protected Color color
-
pdfConformance
protected PdfConformance pdfConformance
-
parent
protected PdfFormField parent
Parent form field.
-
enableFieldRegeneration
private boolean enableFieldRegeneration
Indicates if the form field appearance stream regeneration is enabled.
-
-
Constructor Detail
-
AbstractPdfFormField
protected AbstractPdfFormField(PdfDictionary pdfObject)
Creates a form field as a wrapper object around aPdfDictionary. ThisPdfDictionarymust be an indirect object.- Parameters:
pdfObject- the dictionary to be wrapped, must have an indirect reference.
-
-
Method Detail
-
getPdfObject
public PdfDictionary getPdfObject()
Gets the wrapped dictionary.- Overrides:
getPdfObjectin classPdfObjectWrapper<PdfDictionary>- Returns:
- the wrapped dictionary.
-
setParent
public void setParent(PdfFormField parent)
Sets a parentPdfFormFieldfor the current object.- Parameters:
parent- another form field that this field belongs to, usually a group field.
-
getParent
public PdfDictionary getParent()
Gets the parent dictionary.- Returns:
- another form field that this field belongs to.
-
getParentField
public PdfFormField getParentField()
Gets the parent field.- Returns:
- another form field that this field belongs to.
-
getFieldName
public PdfString getFieldName()
Gets the current field name.- Returns:
- the current field name, as a
PdfString.
-
getDefaultAppearance
public abstract PdfString getDefaultAppearance()
Gets default appearance string containing a sequence of valid page-content graphics or text state operators that define such properties as the field's text size and color.- Returns:
- the default appearance graphics, as a
PdfString.
-
getFontSize
public float getFontSize()
Gets the current fontSize of the form field.- Returns:
- the current fontSize.
-
getColor
public Color getColor()
Gets the current color of the form field.- Returns:
- the current
color
-
getPdfConformance
public PdfConformance getPdfConformance()
Gets the declared conformance.- Returns:
- the
PdfConformance
-
regenerateField
public abstract boolean regenerateField()
This method regenerates appearance stream of the field. Use it if you changed any field parameters and didn't use setValue method which generates appearance by itself.- Returns:
- whether or not the regeneration was successful.
-
disableFieldRegeneration
public void disableFieldRegeneration()
This method disables regeneration of the field and its children appearance stream. So all of its children in the hierarchy will also not be regenerated.Note that after this method is called field will be regenerated only during
enableFieldRegeneration()call.
-
enableFieldRegeneration
public void enableFieldRegeneration()
This method enables regeneration of the field appearance stream. Please note that this method enables regeneration for the children of the field. Also, appearance will be regenerated during this method call.Should be called after
disableFieldRegeneration()method call.
-
disableCurrentFieldRegeneration
public void disableCurrentFieldRegeneration()
This method disables regeneration of the current field appearance stream.
-
enableCurrentFieldRegeneration
public void enableCurrentFieldRegeneration()
This method enables regeneration of the current field appearance stream and regenerates it.
-
isFieldRegenerationEnabled
public boolean isFieldRegenerationEnabled()
This method checks if field appearance stream regeneration is enabled.- Returns:
- true if regeneration is enabled for this field (and all of its ancestors), false otherwise.
-
setColorNoRegenerate
void setColorNoRegenerate(Color color)
Sets the text color and does not regenerate appearance stream.- Parameters:
color- the new value for the Color.
-
getAppearanceStates
public abstract java.lang.String[] getAppearanceStates()
Gets the appearance state names.- Returns:
- an array of Strings containing the names of the appearance states.
-
put
public AbstractPdfFormField put(PdfName key, PdfObject value)
Inserts the value into thePdfDictionaryof this field and associates it with the specified key. If the key is already present in this field dictionary, this method will override the old value with the specified one.- Parameters:
key- key to insert or to override.value- the value to associate with the specified key.- Returns:
- the edited field.
-
remove
public AbstractPdfFormField remove(PdfName key)
Removes the specified key from thePdfDictionaryof this field.- Parameters:
key- key to be removed.- Returns:
- the edited field.
-
release
public void release()
Releases underlying pdf object and other pdf entities used by wrapper. This method should be called instead of direct call toPdfObject.release()if the wrapper is used.
-
getDocument
public PdfDocument getDocument()
Gets thePdfDocumentthat owns that form field.- Returns:
- the
PdfDocumentthat owns that form field.
-
isWrappedObjectMustBeIndirect
protected boolean isWrappedObjectMustBeIndirect()
Defines if the object behind this wrapper must be an indirect object in the resultant document.
If this method returns true it doesn't necessarily mean that object must be in the indirect state at any moment, but rather defines that when the object will be written to the document it will be transformed into indirect object if it's not indirect yet.
Return value of this method shouldn't depend on any logic, it should return always true or false.- Specified by:
isWrappedObjectMustBeIndirectin classPdfObjectWrapper<PdfDictionary>- Returns:
- true if in the resultant document the object behind the wrapper must be indirect, otherwise false.
-
setColor
public AbstractPdfFormField setColor(Color color)
Sets the text color and regenerates appearance stream.- Parameters:
color- the new value for the Color.- Returns:
- the edited
AbstractPdfFormField.
-
setFont
public AbstractPdfFormField setFont(PdfFont font)
Basic setter for thefontproperty. Regenerates the field appearance after setting the new value. Note that the font will be added to the document so ensure that the font is embedded if it's a pdf/a document.- Parameters:
font- The new font to be set.- Returns:
- The edited
AbstractPdfFormField.
-
setFontSize
public AbstractPdfFormField setFontSize(float fontSize)
Basic setter for thefontSizeproperty. Regenerates the field appearance after setting the new value.- Parameters:
fontSize- The new font size to be set.- Returns:
- The edited
AbstractPdfFormField.
-
setFontSize
public AbstractPdfFormField setFontSize(int fontSize)
Basic setter for thefontSizeproperty. Regenerates the field appearance after setting the new value.- Parameters:
fontSize- The new font size to be set.- Returns:
- The edited
AbstractPdfFormField.
-
setFontSizeAutoScale
public AbstractPdfFormField setFontSizeAutoScale()
Sets zero font size which will be interpreted as auto-size according to ISO 32000-1, 12.7.3.3.- Returns:
- the edited
AbstractPdfFormField.
-
setFontAndSize
public AbstractPdfFormField setFontAndSize(PdfFont font, float fontSize)
Combined setter for thefontandfontSizeproperties. Regenerates the field appearance after setting the new value.- Parameters:
font- The new font to be set.fontSize- The new font size to be set.- Returns:
- The edited
AbstractPdfFormField.
-
isTerminalFormField
public boolean isTerminalFormField()
Determines whether current form field is terminal or not.- Returns:
- true if this form field is a terminal one, false otherwise.
-
getFieldName
PdfString getFieldName(java.util.Set<PdfFormField> visited)
Gets the current field name.- Parameters:
visited- list of visited parents which is used to determine cycle references- Returns:
- the current field name, as a
PdfString.
-
updateFontAndFontSize
void updateFontAndFontSize(PdfFont font, float fontSize)
-
retrieveStyles
void retrieveStyles()
-
splitDAelements
private static java.lang.Object[] splitDAelements(java.lang.String da)
-
resolveFontName
private PdfFont resolveFontName(java.lang.String fontName)
-
equals
public boolean equals(java.lang.Object o)
Indicate whether some other object is "equal to" this one. Compares wrapped objects.- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
Generate a hash code for this object.- Overrides:
hashCodein classjava.lang.Object
-
-