java.lang.Object
org.sejda.sambox.pdmodel.common.PDDictionaryWrapper
org.sejda.sambox.pdmodel.interactive.form.PDAcroForm
All Implemented Interfaces:
COSObjectable

public final class PDAcroForm extends PDDictionaryWrapper
An interactive form, also known as an AcroForm.
Author:
Ben Litchfield
  • Constructor Details

    • PDAcroForm

      public PDAcroForm(PDDocument document)
      Parameters:
      document - The document that this form is part of.
    • PDAcroForm

      public PDAcroForm(PDDocument document, COSDictionary form)
      Parameters:
      document - The document that this form is part of.
      form - The existing acroForm.
  • Method Details

    • getDocument

      public PDDocument getDocument()
      This will get the document associated with this form.
      Returns:
      The PDF document.
    • flatten

      public void flatten() throws IOException
      This will flatten all form fields.

      Flattening a form field will take the current appearance and make that part of the pages content stream. All form fields and annotations associated are removed.

      The appearances for the form fields widgets will not be generated

      Throws:
      IOException
    • flatten

      public void flatten(List<PDField> fields, boolean refreshAppearances) throws IOException
      This will flatten the specified form fields.

      Flattening a form field will take the current appearance and make that part of the pages content stream. All form fields and annotations associated are removed.

      Parameters:
      refreshAppearances - if set to true the appearances for the form field widgets will be updated
      Throws:
      IOException
    • refreshAppearances

      public void refreshAppearances() throws IOException
      Refreshes the appearance streams and appearance dictionaries for the widget annotations of all fields.
      Throws:
      IOException
    • refreshAppearances

      public void refreshAppearances(List<PDField> fields) throws IOException
      Refreshes the appearance streams and appearance dictionaries for the widget annotations of the specified fields.
      Throws:
      IOException
    • getFields

      public List<PDField> getFields()
      This will return all of the documents root fields.

      A field might have children that are fields (non-terminal field) or does not have children which are fields (terminal fields).

      The fields within an AcroForm are organized in a tree structure. The documents root fields might either be terminal fields, non-terminal fields or a mixture of both. Non-terminal fields mark branches which contents can be retrieved using PDNonTerminalField.getChildren().

      Returns:
      A list of the documents root fields, never null. If there are no fields then this method returns an empty list.
    • addFields

      public void addFields(Collection<PDField> toAdd)
      Adds the fields to the root fields of the form
      Parameters:
      toAdd -
    • removeField

      public COSBase removeField(PDField remove)
      removes the given field from the root fields of the form
      Returns:
      the removed element or null
    • setFields

      public void setFields(List<PDField> fields)
      Set the documents root fields.
      Parameters:
      fields - The fields that are part of the documents root fields.
    • getFieldIterator

      public Iterator<PDField> getFieldIterator()
      Returns an iterator which walks all fields in the field tree, post-order.
    • getFieldTree

      public PDFieldTree getFieldTree()
      Returns:
      the field tree representing all form fields and allowing a post-order visit of the tree
    • getField

      public PDField getField(String fullyQualifiedName)
      This will get a field by name, possibly using the cache if setCache is true.
      Parameters:
      fullyQualifiedName - The name of the field to get.
      Returns:
      The field with that name of null if one was not found.
    • getDefaultAppearance

      public String getDefaultAppearance()
      Returns:
      the DA element of the dictionary object or null if nothing is defined
    • setDefaultAppearance

      public void setDefaultAppearance(String daValue)
      Set the default appearance.
      Parameters:
      daValue - a string describing the default appearance
    • getCalculationOrder

      public List<PDField> getCalculationOrder()
    • setCalculationOrder

      public void setCalculationOrder(COSArray co)
    • isNeedAppearances

      public boolean isNeedAppearances()
      True if the viewing application should construct the appearances of all field widgets. The default value is false.
      Returns:
      the value of NeedAppearances, false if the value isn't set
    • setNeedAppearances

      public void setNeedAppearances(Boolean value)
      Set the NeedAppearances value. If this is false, PDFBox will create appearances for all field widget.
      Parameters:
      value - the value for NeedAppearances
    • getDefaultResources

      public PDResources getDefaultResources()
      This will get the default resources for the acro form.
      Returns:
      The default resources.
    • setDefaultResources

      public void setDefaultResources(PDResources dr)
      This will set the default resources for the acroform.
      Parameters:
      dr - The new default resources.
    • hasXFA

      public boolean hasXFA()
      This will tell if the AcroForm has XFA content.
      Returns:
      true if the AcroForm is an XFA form
    • xfaIsDynamic

      public boolean xfaIsDynamic()
      This will tell if the AcroForm is a dynamic XFA form.
      Returns:
      true if the AcroForm is a dynamic XFA form
    • getXFA

      public PDXFAResource getXFA()
      Get the XFA resource, the XFA resource is only used for PDF 1.5+ forms.
      Returns:
      The xfa resource or null if it does not exist.
    • setXFA

      public void setXFA(PDXFAResource xfa)
      Set the XFA resource, this is only used for PDF 1.5+ forms.
      Parameters:
      xfa - The xfa resource.
    • getQuadding

      public int getQuadding()
      This will get the 'quadding' or justification of the text to be displayed. 0 - Left(default)
      1 - Centered
      2 - Right
      See the QUADDING constants of PDVariableText.
      Returns:
      The justification of the text strings.
    • setQuadding

      public void setQuadding(int q)
      This will set the quadding/justification of the text. See QUADDING constants.
      Parameters:
      q - The new text justification.
    • isSignaturesExist

      public boolean isSignaturesExist()
      Determines if SignaturesExist is set.
      Returns:
      true if the document contains at least one signature.
    • setSignaturesExist

      public void setSignaturesExist(boolean signaturesExist)
      Set the SignaturesExist bit.
      Parameters:
      signaturesExist - The value for SignaturesExist.
    • isAppendOnly

      public boolean isAppendOnly()
      Determines if AppendOnly is set.
      Returns:
      true if the document contains signatures that may be invalidated if the file is saved.
    • setAppendOnly

      public void setAppendOnly(boolean appendOnly)
      Set the AppendOnly bit.
      Parameters:
      appendOnly - The value for AppendOnly.
    • getScriptingHandler

      public ScriptingHandler getScriptingHandler()
      Set a handler to support JavaScript actions in the form.
      Returns:
      scriptingHandler
    • setScriptingHandler

      public void setScriptingHandler(ScriptingHandler scriptingHandler)
      Set a handler to support JavaScript actions in the form.
      Parameters:
      scriptingHandler -