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 an AcroForm.

To be able to be wrapped with this PdfObjectWrapper the PdfObject must be indirect.

  • Field Details

    • 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:
    • MIN_FONT_SIZE

      public static final int MIN_FONT_SIZE
      Minimal size of text in form fields.
      See Also:
    • font

      protected PdfFont font
    • fontSize

      protected float fontSize
    • color

      protected Color color
    • pdfAConformanceLevel

      protected PdfAConformanceLevel pdfAConformanceLevel
    • parent

      protected PdfFormField parent
      Parent form field.
  • Constructor Details

    • AbstractPdfFormField

      protected AbstractPdfFormField (PdfDictionary pdfObject)
      Creates a form field as a wrapper object around a PdfDictionary. This PdfDictionary must be an indirect object.
      Parameters:
      pdfObject - the dictionary to be wrapped, must have an indirect reference.
  • Method Details

    • getPdfObject

      public PdfDictionary getPdfObject()
      Gets the wrapped dictionary.
      Overrides:
      getPdfObject in class PdfObjectWrapper<PdfDictionary>
      Returns:
      the wrapped dictionary.
    • setParent

      public void setParent (PdfFormField parent)
      Sets a parent PdfFormField for 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.
    • getFont

      public PdfFont getFont()
      Gets the current font of the form field.
      Returns:
      the current font
    • getColor

      public Color getColor()
      Gets the current color of the form field.
      Returns:
      the current color
    • getPdfAConformanceLevel

      public PdfAConformanceLevel getPdfAConformanceLevel()
      Gets the declared PDF/A conformance level.
      Returns:
      the PdfAConformanceLevel
    • 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.
    • getAppearanceStates

      public abstract 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 the PdfDictionary of 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 the PdfDictionary of 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 to PdfObject.release() if the wrapper is used.
    • getDocument

      public PdfDocument getDocument()
      Gets the PdfDocument that owns that form field.
      Returns:
      the PdfDocument that 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:
      isWrappedObjectMustBeIndirect in class PdfObjectWrapper<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 the font property. 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 the fontSize property. 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 the fontSize property. 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 the font and fontSize properties. 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.
    • equals

      public boolean equals (Object o)
      Indicate whether some other object is "equal to" this one. Compares wrapped objects.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Generate a hash code for this object.
      Overrides:
      hashCode in class Object