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
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PRAcroForm.FieldInformation` This class holds the information for a single field

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(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
    Modifier and Type | Method and Description
    --- | ---
    `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