com.lowagie.text

## Class SimpleTable

- java.lang.Object
- - com.lowagie.text.Rectangle
  - - com.lowagie.text.SimpleTable

- All Implemented Interfaces:
    Element, PdfPTableEvent, TextElementArray

      public class SimpleTable
      extends Rectangle
      implements PdfPTableEvent, TextElementArray

  Rectangle that can be used for Cells. This Rectangle is padded and knows how to draw itself in a PdfPTable or PdfPcellEvent.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private int` | `alignment` the alignment of the table.
    `private float` | `cellpadding` the padding of the Cells.
    `private float` | `cellspacing` the spacing of the Cells.
    `private java.util.ArrayList` | `content` the content of a Table.
    `private float` | `width` the width of the Table.
    `private float` | `widthpercentage` the widthpercentage of the Table.

    - ### Fields inherited from class com.lowagie.text.Rectangle

      `backgroundColor, border, borderColor, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, LEFT, llx, lly, NO_BORDER, RIGHT, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders`

    - ### Fields inherited from interface com.lowagie.text.Element

      `ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleTable()` A RectangleCell is always constructed without any dimensions.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(java.lang.Object o)` Adds an object to the `TextElementArray`.
    `void` | `addElement(SimpleCell element)` Adds content to this object.
    `PdfPTable` | `createPdfPTable()` Creates a PdfPTable object based on this TableAttributes object.
    `Table` | `createTable()` Creates a Table object based on this TableAttributes object.
    `int` | `getAlignment()`
    `float` | `getCellpadding()`
    `float` | `getCellspacing()`
    `float` | `getWidth()` Returns the width of the rectangle.
    `float` | `getWidthpercentage()`
    `boolean` | `isNestable()` Checks if this element is nestable.
    `void` | `setAlignment(int alignment)`
    `void` | `setCellpadding(float cellpadding)`
    `void` | `setCellspacing(float cellspacing)`
    `void` | `setWidth(float width)`
    `void` | `setWidthpercentage(float widthpercentage)`
    `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.
    `int` | `type()` Gets the type of the text element.

    - ### Methods inherited from class com.lowagie.text.Rectangle

      `cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBackgroundColor, getBorder, getBorderColor, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidth, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getBottom, getBottom, getChunks, getGrayFill, getHeight, getLeft, getLeft, getRight, getRight, getRotation, getTop, getTop, hasBorder, hasBorders, isContent, isUseVariableBorders, normalize, process, rectangle, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setBottom, setGrayFill, setLeft, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, toString`

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

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

    - ### Methods inherited from interface com.lowagie.text.Element

      `getChunks, isContent, process, toString`

- - ### Field Detail

    - #### content

          private java.util.ArrayList content

      the content of a Table.

    - #### width

          private float width

      the width of the Table.

    - #### widthpercentage

          private float widthpercentage

      the widthpercentage of the Table.

    - #### cellspacing

          private float cellspacing

      the spacing of the Cells.

    - #### cellpadding

          private float cellpadding

      the padding of the Cells.

    - #### alignment

          private int alignment

      the alignment of the table.

  - ### Constructor Detail

    - #### SimpleTable

          public SimpleTable()

      A RectangleCell is always constructed without any dimensions. Dimensions are defined after creation.

  - ### Method Detail

    - #### addElement

          public void addElement(SimpleCell element)
                          throws BadElementException

      Adds content to this object.
      Parameters:
        `element` -
      Throws:
        `BadElementException`

    - #### createTable

          public Table createTable()
                            throws BadElementException

      Creates a Table object based on this TableAttributes object.
      Returns:
        a com.lowagie.text.Table object
      Throws:
        `BadElementException`

    - #### createPdfPTable

          public PdfPTable createPdfPTable()
                                    throws DocumentException

      Creates a PdfPTable object based on this TableAttributes object.
      Returns:
        a com.lowagie.text.pdf.PdfPTable object
      Throws:
        `DocumentException`

    - #### 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[])`

    - #### getCellpadding

          public float getCellpadding()

      Returns:
        Returns the cellpadding.

    - #### setCellpadding

          public void setCellpadding(float cellpadding)

      Parameters:
        `cellpadding` - The cellpadding to set.

    - #### getCellspacing

          public float getCellspacing()

      Returns:
        Returns the cellspacing.

    - #### setCellspacing

          public void setCellspacing(float cellspacing)

      Parameters:
        `cellspacing` - The cellspacing to set.

    - #### getAlignment

          public int getAlignment()

      Returns:
        Returns the alignment.

    - #### setAlignment

          public void setAlignment(int alignment)

      Parameters:
        `alignment` - The alignment to set.

    - #### getWidth

          public float getWidth()

      Description copied from class: `Rectangle`
      Returns the width of the rectangle.
      Overrides:
        `getWidth` in class `Rectangle`
      Returns:
        Returns the width.

    - #### setWidth

          public void setWidth(float width)

      Parameters:
        `width` - The width to set.

    - #### getWidthpercentage

          public float getWidthpercentage()

      Returns:
        Returns the widthpercentage.

    - #### setWidthpercentage

          public void setWidthpercentage(float widthpercentage)

      Parameters:
        `widthpercentage` - The widthpercentage to set.

    - #### type

          public int type()

      Description copied from class: `Rectangle`
      Gets the type of the text element.
      Specified by:
        `type` in interface `Element`
      Overrides:
        `type` in class `Rectangle`
      Returns:
        a type
      See Also:
        `Element.type()`

    - #### isNestable

          public boolean isNestable()

      Description copied from interface: `Element`
      Checks if this element is nestable.
      Specified by:
        `isNestable` in interface `Element`
      Overrides:
        `isNestable` in class `Rectangle`
      Returns:
        true if this element can be nested inside other elements.
      Since:
        iText 2.0.8
      See Also:
        `Element.isNestable()`

    - #### add

          public boolean add(java.lang.Object o)

      Description copied from interface: `TextElementArray`
      Adds an object to the `TextElementArray`.
      Specified by:
        `add` in interface `TextElementArray`
      Parameters:
        `o` - an object that has to be added
      Returns:
        `true` if the addition succeeded; `false` otherwise
      See Also:
        `TextElementArray.add(java.lang.Object)`