com.lowagie.text.pdf.events

## Class FieldPositioningEvents

- java.lang.Object
- - com.lowagie.text.pdf.PdfPageEventHelper
  - - com.lowagie.text.pdf.events.FieldPositioningEvents

All Implemented Interfaces:
  PdfPageEvent, PdfPCellEvent

    public class FieldPositioningEvents
    extends PdfPageEventHelper
    implements PdfPCellEvent

Class that can be used to position AcroForm fields.

### Field Summary

Fields
`protected PdfFormField` `cellField` Keeps the form field that is to be positioned in a cellLayout event.
`protected PdfWriter` `fieldWriter` The PdfWriter to use when a field has to added in a cell event.
`protected java.util.HashMap` `genericChunkFields` Keeps a map with fields that are to be positioned in inGenericTag.
`float` `padding` Some extra padding that will be taken into account when defining the widget.
`protected PdfFormField` `parent` The PdfFormField that is the parent of the field added in a cell event.

### Constructor Summary

Constructors
Constructor and Description
`FieldPositioningEvents()` Creates a new event.
`FieldPositioningEvents(PdfFormField parent, PdfFormField field)` Creates a new event.
`FieldPositioningEvents(PdfWriter writer, PdfFormField field)` Creates a new event.
`FieldPositioningEvents(PdfWriter writer, PdfFormField parent, java.lang.String text)` Creates a new event.
`FieldPositioningEvents(PdfWriter writer, java.lang.String text)` Creates a new event.

### Method Summary

Methods
`void` `addField(java.lang.String text, PdfFormField field)` Add a PdfFormField that has to be tied to a generic Chunk.
`void` `cellLayout(PdfPCell cell, Rectangle rect, PdfContentByte[] canvases)` This method is called at the end of the cell rendering.
`void` `onGenericTag(PdfWriter writer, Document document, Rectangle rect, java.lang.String text)` Called when a `Chunk` with a generic tag is written.
`void` `setPadding(float padding)`
`void` `setParent(PdfFormField parent)`

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

`onChapter, onChapterEnd, onCloseDocument, onEndPage, onOpenDocument, onParagraph, onParagraphEnd, onSection, onSectionEnd, onStartPage`

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

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

### Field Detail

#### genericChunkFields

    protected java.util.HashMap genericChunkFields

Keeps a map with fields that are to be positioned in inGenericTag.

#### cellField

    protected PdfFormField cellField

Keeps the form field that is to be positioned in a cellLayout event.

#### fieldWriter

    protected PdfWriter fieldWriter

The PdfWriter to use when a field has to added in a cell event.

#### parent

    protected PdfFormField parent

The PdfFormField that is the parent of the field added in a cell event.

#### padding

    public float padding

Some extra padding that will be taken into account when defining the widget.

### Constructor Detail

#### FieldPositioningEvents

    public FieldPositioningEvents()

Creates a new event. This constructor will be used if you need to position fields with Chunk objects.

#### FieldPositioningEvents

    public FieldPositioningEvents(PdfWriter writer,
                          PdfFormField field)

Creates a new event. This constructor will be used if you need to position fields with a Cell Event.

#### FieldPositioningEvents

    public FieldPositioningEvents(PdfFormField parent,
                          PdfFormField field)

Creates a new event. This constructor will be used if you need to position fields with a Cell Event.

#### FieldPositioningEvents

    public FieldPositioningEvents(PdfWriter writer,
                          java.lang.String text)
                           throws java.io.IOException,
                                  DocumentException

Creates a new event. This constructor will be used if you need to position fields with a Cell Event.

Throws:
  `DocumentException`
  `java.io.IOException`

#### FieldPositioningEvents

    public FieldPositioningEvents(PdfWriter writer,
                          PdfFormField parent,
                          java.lang.String text)
                           throws java.io.IOException,
                                  DocumentException

Creates a new event. This constructor will be used if you need to position fields with a Cell Event.

Throws:
  `DocumentException`
  `java.io.IOException`

### Method Detail

#### addField

    public void addField(java.lang.String text,
                PdfFormField field)

Add a PdfFormField that has to be tied to a generic Chunk.

#### setPadding

    public void setPadding(float padding)

Parameters:
  `padding` - The padding to set.

#### setParent

    public void setParent(PdfFormField parent)

Parameters:
  `parent` - The parent to set.

#### onGenericTag

    public void onGenericTag(PdfWriter writer,
                    Document document,
                    Rectangle rect,
                    java.lang.String text)

Description copied from class: `PdfPageEventHelper`
Called when a `Chunk` with a generic tag is written.

It is useful to pinpoint the `Chunk` location to generate bookmarks, for example.

Specified by:
  `onGenericTag` in interface `PdfPageEvent`
Overrides:
  `onGenericTag` in class `PdfPageEventHelper`
Parameters:
  `writer` - the `PdfWriter` for this document
  `document` - the document
  `rect` - the `Rectangle` containing the `Chunk`
  `text` - the text of the tag
See Also:
  `PdfPageEvent.onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String)`

#### cellLayout

    public void cellLayout(PdfPCell cell,
                  Rectangle rect,
                  PdfContentByte[] canvases)

Description copied from interface: `PdfPCellEvent`
This method is called at the end of the cell rendering. The text or graphics are added to one of the 4 `PdfContentByte` contained in `canvases`.
The indexes to `canvases` are:

- `PdfPTable.BASECANVAS` - the original `PdfContentByte`. Anything placed here will be under the cell.
- `PdfPTable.BACKGROUNDCANVAS` - the layer where the background goes to.
- `PdfPTable.LINECANVAS` - the layer where the lines go to.
- `PdfPTable.TEXTCANVAS` - the layer where the text go to. Anything placed here will be over the cell.

The layers are placed in sequence on top of each other.

Specified by:
  `cellLayout` in interface `PdfPCellEvent`
Parameters:
  `cell` - the cell
  `rect` - the coordinates of the cell
  `canvases` - an array of `PdfContentByte`
See Also:
  `PdfPCellEvent.cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[])`