Class AcroTextField

  • All Implemented Interfaces:
    DocumentLocation, AcroFormField, FormField, Bounded

    public class AcroTextField
    extends Object

    Represents a text field in an interactive AcroForm.

    Text fields can either be plain or 'rich'. Plain text fields return false from hasRichTextValue(), and their getValue() function will return a simple String object. Rich text fields return true from hasRichTextValue(), and their getValue() function will return an XHTML rich text string, as specified in Section 8.6.2 of the PDF document specification.

    Version:
    ©2004-2024 Snowtide
    • Method Detail

      • setValue

        public boolean setValue​(String val)
                         throws IllegalArgumentException
        Sets the value of this text field. The provided String must not be null; otherwise, this function will throw an IllegalArgumentException. This function returns true only if the provided String value is different than the current value of the field.
        Specified by:
        setValue in interface AcroFormField
        Throws:
        IllegalArgumentException - if the provided value is invalid for the particular field or field type at hand. Refer to each field type's class javadoc for details on how and when a field value parameter is considered invalid.
      • canChangeValue

        public boolean canChangeValue()
        This function always returns true.
        Specified by:
        canChangeValue in interface AcroFormField
      • getMaxLength

        public int getMaxLength()
        Returns the maximum length of this field, as specified by this form field's /MaxLen entry. This function will return -1 if the maximum length is undefined.
      • getRichTextValue

        public String getRichTextValue()
        Returns the 'rich text' value for this field (XHTML that conforms to the XFA specification), if available. If this field does not contain a rich text value, then the field's value is available via the AcroFormField.getValue() function.
        See Also:
        hasRichTextValue()
      • isMultiline

        public boolean isMultiline()
        Returns true if this is a multiline text field.
      • isPasswordEntry

        public boolean isPasswordEntry()
        Returns true if this is a password-entry text field.
      • isFileSelection

        public boolean isFileSelection()
        Returns true if this is field is designated to hold the path of a user-selected file.
      • hasRichTextValue

        public boolean hasRichTextValue()
        Returns true only if the value of this field is 'rich text' (XHTML that conforms to the XFA specification), which may be retrieved via the getRichTextValue() function. If this function returns false, then the field's value is available via AcroFormField.getValue().
        See Also:
        getRichTextValue()
      • pageNumber

        public int pageNumber()
        Description copied from interface: DocumentLocation
        This page number is 0-indexed, and may be used to retrieve a Page object representing the page's content using the Document.getPage(int) function.

        If a page number is not available for some reason, then this method will return -1.

        Specified by:
        pageNumber in interface DocumentLocation
      • isReadOnly

        public boolean isReadOnly()
        Description copied from interface: AcroFormField
        Returns true only if this field is designated as read-only. Note that this is just a hint, provided for the benefit of end-user tools. PDFxStream does not enforce the read-only state of a form field; i.e. it will allow a field's value to be set even if it is designated as read-only.
        Specified by:
        isReadOnly in interface AcroFormField
      • getDefaultValue

        public Object getDefaultValue()
        Description copied from interface: AcroFormField
        Returns the default value to which the field reverts when a reset-form action is executed, as specified in the /DV entry in this field's PDF dictionary. The type of the returned object will be the same as the type of object returned by the AcroFormField.getValue() function, and depends upon the type of this field.
        Specified by:
        getDefaultValue in interface AcroFormField
      • getFullName

        public String getFullName()
        Description copied from interface: AcroFormField

        Returns the fully-qualified name of this field, which should be unique within a PDF document form. Details of how full names are constructed are specified in Section 8.6.2 (Field Names) of the PDF Document Specification.

        It suffices to say here that form fields in an interactive AcroForm are defined in a hierarchical manner, and that their local names are used to derive a period-delimited full name that guarantees each name's uniqueness within the parent AcroForm.

        Specified by:
        getFullName in interface AcroFormField
      • getLocalName

        public String getLocalName()
        Description copied from interface: AcroFormField
        Returns the local name of the field, as specified in the /T entry in this field's PDF dictionary. This name is also used as the value returned by the FormField.getName() implementation.
        Specified by:
        getLocalName in interface AcroFormField
      • getMappingName

        public String getMappingName()
        Description copied from interface: AcroFormField
        Returns the 'mapping name' of this field, as specified in the /TM entry in this field's PDF dictionary. The mapping name is used to identify the field in exported form data formats. This function can return null if no mapping name is defined.
        Specified by:
        getMappingName in interface AcroFormField
      • getName

        public String getName()
        Description copied from interface: FormField
        Returns the canonical name of this field. Only one FormField instance with a particular name should be available from a Form instance.
        Specified by:
        getName in interface FormField
      • getType

        public Object getType()
        Description copied from interface: AcroFormField
        Returns the type of field, as specified in the /FT entry in this field's PDF dictionary. This is an indication of the subtype of this AcroFormField instance:
        • If the return value is FIELD_TYPE_BUTTON, then this AcroFormField is an instance of AcroButtonField
        • If the return value is FIELD_TYPE_TEXT, then this AcroFormField is an instance of AcroTextField
        • If the return value is FIELD_TYPE_CHOICE, then this AcroFormField is an instance of AcroChoiceField
        • If the return value is FIELD_TYPE_SIGNATURE, then this AcroFormField is an instance of AcroSignatureField
        • If the return value is FIELD_TYPE_OTHER, then this AcroFormField has no specific concrete implementation. This case is reserved for form fields with new type indicators that may be introduced by Adobe in the future.
        Specified by:
        getType in interface AcroFormField
      • hasValueChanged

        public boolean hasValueChanged()
        Description copied from interface: AcroFormField
        Returns true only if this field's value has been changed since being loaded from the PDF document.
        Specified by:
        hasValueChanged in interface AcroFormField
      • getUIName

        public String getUIName()
        Description copied from interface: AcroFormField

        Returns the user-friendly name of this field, as specified in the /TU entry in this field's PDF dictionary. This function can return null if no user-friendly field name is defined.

        Specified by:
        getUIName in interface AcroFormField
        Specified by:
        getUIName in interface FormField
      • getValue

        public Object getValue()
        Description copied from interface: AcroFormField
        Returns the value of this field, as specified in the /V entry in this field's PDF dictionary. The type of the returned object depends upon the type of this field.
        Specified by:
        getValue in interface AcroFormField
        Specified by:
        getValue in interface FormField