com.lowagie.text.pdf

## Class XfdfReader

- java.lang.Object
- - com.lowagie.text.pdf.XfdfReader

- All Implemented Interfaces:
    SimpleXMLDocHandler

      public class XfdfReader
      extends java.lang.Object
      implements SimpleXMLDocHandler

  Reads a XFDF.
  Author:
    Leonard Rosenthol (leonardr@pdfsages.com)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.util.Stack` | `fieldNames`
    `(package private) java.util.HashMap` | `fields`
    `private java.util.Stack` | `fieldValues`
    `(package private) java.lang.String` | `fileSpec`
    `private boolean` | `foundRoot`
    `protected java.util.HashMap` | `listFields` Storage for field values if there's more than one value for a field.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XfdfReader(byte[] xfdfIn)` Reads an XFDF form.
    `XfdfReader(java.lang.String filename)` Reads an XFDF form.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `endDocument()` Called after the document is parsed.
    `void` | `endElement(java.lang.String tag)` Called when an end tag is found.
    `java.lang.String` | `getField(java.lang.String name)` Gets the field value.
    `java.util.HashMap` | `getFields()` Gets all the fields.
    `java.lang.String` | `getFieldValue(java.lang.String name)` Gets the field value or `null` if the field does not exist or has no value defined.
    `java.lang.String` | `getFileSpec()` Gets the PDF file specification contained in the FDF.
    `java.util.List` | `getListValues(java.lang.String name)` Gets the field values for a list or `null` if the field does not exist or has no value defined.
    `void` | `startDocument()` Called when the document starts to be parsed.
    `void` | `startElement(java.lang.String tag, java.util.HashMap h)` Called when a start tag is found.
    `void` | `text(java.lang.String str)` Called when a text element is found.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### foundRoot

          private boolean foundRoot

    - #### fieldNames

          private java.util.Stack fieldNames

    - #### fieldValues

          private java.util.Stack fieldValues

    - #### fields

          java.util.HashMap fields

    - #### listFields

          protected java.util.HashMap listFields

      Storage for field values if there's more than one value for a field.
      Since:
        2.1.4

    - #### fileSpec

          java.lang.String fileSpec

  - ### Constructor Detail

    - #### XfdfReader

          public XfdfReader(java.lang.String filename)
                     throws java.io.IOException

      Reads an XFDF form.
      Parameters:
        `filename` - the file name of the form
      Throws:
        `java.io.IOException` - on error

    - #### XfdfReader

          public XfdfReader(byte[] xfdfIn)
                     throws java.io.IOException

      Reads an XFDF form.
      Parameters:
        `xfdfIn` - the byte array with the form
      Throws:
        `java.io.IOException` - on error

  - ### Method Detail

    - #### getFields

          public java.util.HashMap getFields()

      Gets all the fields. The map is keyed by the fully qualified field name and the value is a merged `PdfDictionary` with the field content.
      Returns:
        all the fields

    - #### getField

          public java.lang.String getField(java.lang.String name)

      Gets the field value.
      Parameters:
        `name` - the fully qualified field name
      Returns:
        the field's value

    - #### getFieldValue

          public java.lang.String getFieldValue(java.lang.String name)

      Gets the field value or `null` if the field does not exist or has no value defined.
      Parameters:
        `name` - the fully qualified field name
      Returns:
        the field value or `null`

    - #### getListValues

          public java.util.List getListValues(java.lang.String name)

      Gets the field values for a list or `null` if the field does not exist or has no value defined.
      Parameters:
        `name` - the fully qualified field name
      Returns:
        the field values or `null`
      Since:
        2.1.4

    - #### getFileSpec

          public java.lang.String getFileSpec()

      Gets the PDF file specification contained in the FDF.
      Returns:
        the PDF file specification contained in the FDF

    - #### startElement

          public void startElement(java.lang.String tag,
                          java.util.HashMap h)

      Called when a start tag is found.
      Specified by:
        `startElement` in interface `SimpleXMLDocHandler`
      Parameters:
        `tag` - the tag name
        `h` - the tag's attributes

    - #### endElement

          public void endElement(java.lang.String tag)

      Called when an end tag is found.
      Specified by:
        `endElement` in interface `SimpleXMLDocHandler`
      Parameters:
        `tag` - the tag name

    - #### startDocument

          public void startDocument()

      Called when the document starts to be parsed.
      Specified by:
        `startDocument` in interface `SimpleXMLDocHandler`

    - #### endDocument

          public void endDocument()

      Called after the document is parsed.
      Specified by:
        `endDocument` in interface `SimpleXMLDocHandler`

    - #### text

          public void text(java.lang.String str)

      Called when a text element is found.
      Specified by:
        `text` in interface `SimpleXMLDocHandler`
      Parameters:
        `str` - the text element, probably a fragment.