com.lowagie.text.pdf

## Class PRAcroForm

- java.lang.Object
- - com.lowagie.text.pdf.PdfObject
  - - com.lowagie.text.pdf.PdfDictionary
    - - com.lowagie.text.pdf.PRAcroForm

    public class PRAcroForm
    extends PdfDictionary

This class captures an AcroForm on input. Basically, it extends Dictionary by indexing the fields of an AcroForm

Author:
  Mark Thompson

### Nested Class Summary

Nested Classes
`static class` `PRAcroForm.FieldInformation` This class holds the information for a single field

### Field Summary

Fields
`(package private) java.util.HashMap` `fieldByName`
`(package private) java.util.ArrayList` `fields`
`(package private) PdfReader` `reader`
`(package private) java.util.ArrayList` `stack`

### Fields inherited from class com.lowagie.text.pdf.PdfDictionary

`CATALOG, FONT, hashMap, OUTLINES, PAGE, PAGES`

### Fields inherited from class com.lowagie.text.pdf.PdfObject

`ARRAY, BOOLEAN, bytes, DICTIONARY, INDIRECT, indRef, NAME, NOTHING, NULL, NUMBER, STREAM, STRING, TEXT_PDFDOCENCODING, TEXT_UNICODE, type`

### Constructor Summary

Constructors
Constructor and Description
`PRAcroForm(PdfReader reader)` Constructor

### Method Summary

Methods
`PRAcroForm.FieldInformation` `getField(java.lang.String name)`
`java.util.ArrayList` `getFields()`
`PRIndirectReference` `getRefByName(java.lang.String name)` Given the title (/T) of a reference, return the associated reference
`protected void` `iterateFields(PdfArray fieldlist, PRIndirectReference fieldDict, java.lang.String title)` After reading, we index all of the fields.
`protected PdfDictionary` `mergeAttrib(PdfDictionary parent, PdfDictionary child)` merge field attributes from two dictionaries
`protected void` `pushAttrib(PdfDictionary dict)` stack a level of dictionary.
`void` `readAcroForm(PdfDictionary root)` Read, and comprehend the acroform
`int` `size()` Number of fields found

### Methods inherited from class com.lowagie.text.pdf.PdfDictionary

`contains, get, getAsArray, getAsBoolean, getAsDict, getAsIndirectObject, getAsName, getAsNumber, getAsStream, getAsString, getDirectObject, getKeys, isCatalog, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, putEx, remove, toPdf, toString`

### Methods inherited from class com.lowagie.text.pdf.PdfObject

`canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, length, setContent, setIndRef, type`

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

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

### Field Detail

#### fields

    java.util.ArrayList fields

#### stack

    java.util.ArrayList stack

#### fieldByName

    java.util.HashMap fieldByName

#### reader

    PdfReader reader

### Constructor Detail

#### PRAcroForm

    public PRAcroForm(PdfReader reader)

Constructor

Parameters:
  `reader` - reader of the input file

### Method Detail

#### size

    public int size()

Number of fields found

Overrides:
  `size` in class `PdfDictionary`
Returns:
  size

#### getFields

    public java.util.ArrayList getFields()

#### getField

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

#### getRefByName

    public PRIndirectReference getRefByName(java.lang.String name)

Given the title (/T) of a reference, return the associated reference

Parameters:
  `name` - a string containing the path
Returns:
  a reference to the field, or null

#### readAcroForm

    public void readAcroForm(PdfDictionary root)

Read, and comprehend the acroform

Parameters:
  `root` - the document root

#### iterateFields

    protected void iterateFields(PdfArray fieldlist,
                     PRIndirectReference fieldDict,
                     java.lang.String title)

After reading, we index all of the fields. Recursive.

Parameters:
  `fieldlist` - An array of fields
  `fieldDict` - the last field dictionary we encountered (recursively)
  `title` - the pathname of the field, up to this point or null

#### mergeAttrib

    protected PdfDictionary mergeAttrib(PdfDictionary parent,
                            PdfDictionary child)

merge field attributes from two dictionaries

Parameters:
  `parent` - one dictionary
  `child` - the other dictionary
Returns:
  a merged dictionary

#### pushAttrib

    protected void pushAttrib(PdfDictionary dict)

stack a level of dictionary. Merge in a dictionary from this level