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
`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
`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.