com.lowagie.text.pdf.events

## Class PdfPTableEventForwarder

- java.lang.Object
- - com.lowagie.text.pdf.events.PdfPTableEventForwarder

All Implemented Interfaces:
  PdfPTableEvent

    public class PdfPTableEventForwarder
    extends java.lang.Object
    implements PdfPTableEvent

If you want to add more than one page event to a PdfPTable, you have to construct a PdfPTableEventForwarder, add the different events to this object and add the forwarder to the PdfWriter.

### Field Summary

Fields
`protected java.util.ArrayList` `events` ArrayList containing all the PageEvents that have to be executed.

### Constructor Summary

Constructors
Constructor and Description
`PdfPTableEventForwarder()`

### Method Summary

Methods
`void` `addTableEvent(PdfPTableEvent event)` Add a page event to the forwarder.
`void` `tableLayout(PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart, PdfContentByte[] canvases)` This method is called at the end of the table rendering.

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

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

### Field Detail

#### events

    protected java.util.ArrayList events

ArrayList containing all the PageEvents that have to be executed.

### Constructor Detail

#### PdfPTableEventForwarder

    public PdfPTableEventForwarder()

### Method Detail

#### addTableEvent

    public void addTableEvent(PdfPTableEvent event)

Add a page event to the forwarder.

Parameters:
  `event` - an event that has to be added to the forwarder.

#### tableLayout

    public void tableLayout(PdfPTable table,
                   float[][] widths,
                   float[] heights,
                   int headerRows,
                   int rowStart,
                   PdfContentByte[] canvases)

Description copied from interface: `PdfPTableEvent`
This method is called at the end of the table 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 table.
- `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 table.

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

The `widths` and `heights` have the coordinates of the cells.
The size of the `widths` array is the number of rows. Each sub-array in `widths` corresponds to the x column border positions where the first element is the x coordinate of the left table border and the last element is the x coordinate of the right table border. If colspan is not used all the sub-arrays in `widths` are the same.
For the `heights` the first element is the y coordinate of the top table border and the last element is the y coordinate of the bottom table border.

Specified by:
  `tableLayout` in interface `PdfPTableEvent`
Parameters:
  `table` - the `PdfPTable` in use
  `widths` - an array of arrays with the cells' x positions. It has the length of the number of rows
  `heights` - an array with the cells' y positions. It has a length of the number of rows + 1
  `headerRows` - the number of rows defined for the header.
  `rowStart` - the first row number after the header
  `canvases` - an array of `PdfContentByte`
See Also:
  `PdfPTableEvent.tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[])`