Class PDNonTerminalField

java.lang.Object
org.apache.pdfbox.pdmodel.interactive.form.PDField
org.apache.pdfbox.pdmodel.interactive.form.PDNonTerminalField
All Implemented Interfaces:
COSObjectable

public class PDNonTerminalField extends PDField
A non terminal field in an interactive form. A non terminal field is a node in the fields tree node whose descendants are fields. The attributes such as FT (field type) or V (field value) do not logically belong to the non terminal field but are inheritable attributes for descendant terminal fields.
  • Field Details

    • LOG

      private static final org.apache.commons.logging.Log LOG
  • Constructor Details

    • PDNonTerminalField

      public PDNonTerminalField(PDAcroForm acroForm)
      Constructor.
      Parameters:
      acroForm - The form that this field is part of.
    • PDNonTerminalField

      PDNonTerminalField(PDAcroForm acroForm, COSDictionary field, PDNonTerminalField parent)
      Constructor.
      Parameters:
      acroForm - The form that this field is part of.
      field - the PDF object to represent as a field.
      parent - the parent node of the node to be created
  • Method Details

    • getFieldFlags

      public int getFieldFlags()
      Description copied from class: PDField
      This will get the flags for this field.
      Specified by:
      getFieldFlags in class PDField
      Returns:
      flags The set of flags.
    • importFDF

      void importFDF(FDFField fdfField) throws IOException
      Description copied from class: PDField
      This will import a fdf field from a fdf document.
      Overrides:
      importFDF in class PDField
      Parameters:
      fdfField - The fdf field to import.
      Throws:
      IOException - If there is an error importing the data for this field.
    • exportFDF

      FDFField exportFDF() throws IOException
      Description copied from class: PDField
      Exports this field and its children as FDF.
      Specified by:
      exportFDF in class PDField
      Throws:
      IOException
    • getChildren

      public List<PDField> getChildren()
      Returns this field's children. These may be either terminal or non-terminal fields.
      Returns:
      the list of child fields. Be aware that this list is not backed by the children of the field, so adding or deleting has no effect on the PDF document until you call setChildren() with the modified list.
    • setChildren

      public void setChildren(List<PDField> children)
      Sets the child fields.
      Parameters:
      children - The list of child fields.
    • 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.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      Specified by:
      getFieldType in class PDField
      Returns:
      The Field type.
    • getValue

      public COSBase getValue()
      Get the field value.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

    • getValueAsString

      public String getValueAsString()
      Returns a string representation of the "V" entry, or an empty string.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      Specified by:
      getValueAsString in class PDField
      Returns:
      The list of widget annotations.
    • setValue

      public void setValue(COSBase object) throws IOException
      Sets the value of this field. This may be of any kind which is valid for this field's children.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      Parameters:
      object -
      Throws:
      IOException
    • setValue

      public void setValue(String value) throws IOException
      Sets the plain text value of this field.
      Specified by:
      setValue in class PDField
      Parameters:
      value - Plain text
      Throws:
      IOException - if the value could not be set
    • getDefaultValue

      public COSBase getDefaultValue()
      Returns the default value of this field. This may be of any kind which is valid for this field's children.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

    • setDefaultValue

      public void setDefaultValue(COSBase value)
      Sets the default of this field. This may be of any kind which is valid for this field's children.

      Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      Parameters:
      value -
    • getWidgets

      public List<PDAnnotationWidget> getWidgets()
      Description copied from class: PDField
      Returns the widget annotations associated with this field. For PDNonTerminalField the list will be empty as non terminal fields have no visual representation in the form.
      Specified by:
      getWidgets in class PDField
      Returns:
      a List of PDAnnotationWidget annotations. Be aware that this list is not backed by the actual widget collection of the field, so adding or deleting has no effect on the PDF document. For PDTerminalField you'd have to call setWidgets() with the modified list.