## com.lowagie.text.pdf
Class PdfCell

    java.lang.Object
      com.lowagie.text.Rectangle
          com.lowagie.text.pdf.PdfCell

All Implemented Interfaces:
  Element, MarkupAttributes

    public class PdfCell

extends Rectangle

A `PdfCell` is the PDF translation of a `Cell`.

A `PdfCell` is an `ArrayList` of `PdfLine`s.

When using variable borders (`isUseVariableBorders()` == true), the borders are drawn completely inside the cell Rectangle so that adjacent cell borders will not overlap. Otherwise, the borders are drawn on top of the edges of the cell Rectangle and will overlap the borders of adjacent cells.

See Also:
  `Rectangle`, `Cell`, `PdfLine`, `PdfTable`

Field Summary
`private float` `cellpadding` This is the cellpadding of the cell.
`private float` `cellspacing` This is the cellspacing of the cell.
`private float` `contentHeight` This is the total height of the content of the cell.
`private PdfLine` `firstLine`
`private int` `groupNumber` This is the number of the group the cell is in.
`private boolean` `header` Indicates if this cell belongs to the header of a `PdfTable`
`private java.util.ArrayList` `images` These are the Images in the Cell.
`private PdfLine` `lastLine`
`private float` `leading` This is the leading of the lines.
`private PdfLine` `line` These are the PdfLines in the Cell.
`private java.util.ArrayList` `lines` These are the PdfLines in the Cell.
`private int` `rownumber` This is the number of the row the cell is in.
`private int` `rowspan` This is the rowspan of the cell.
`private boolean` `useAscender` Indicates that the largest ascender height should be used to determine the height of the first line.
`private boolean` `useBorderPadding` Adjusts the cell contents to compensate for border widths.
`private boolean` `useDescender` Indicates that the largest descender height should be added to the height of the last line (so characters like y don't dip into the border).
`private int` `verticalAlignment`

Fields inherited from class com.lowagie.text.Rectangle
`background, border, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, color, LEFT, llx, lly, markupAttributes, NO_BORDER, RIGHT, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders`

Constructor Summary
`PdfCell(Cell cell, int rownumber, float left, float right, float top, float cellspacing, float cellpadding)` Constructs a `PdfCell`-object.

Method Summary
`private float` `addImage(Image i, float left, float right, float extraHeight, int alignment)` Adds an image to this Cell.
`private void` `addLine(PdfLine line)`
`float` `bottom()` Returns the lower left y-coordinate.
`float` `cellpadding()` Gets the cellpadding of a cell..
`float` `cellspacing()` Gets the cellspacing of a cell.
`private float` `firstLineRealHeight()` Calculates what the height of the first line should be so that the content will be flush with the top.
`private void` `flushCurrentLine()`
`private float` `getBorderWidthInside(int side)` Gets the amount of the border for the specified side that is inside the Rectangle.
`int` `getGroupNumber()` Gets the number of the group this cell is in..
`java.util.ArrayList` `getImages(float top, float bottom)` Gets the images of a cell that can be drawn between certain limits.
`java.util.ArrayList` `getLines(float top, float bottom)` Gets the lines of a cell that can be drawn between certain limits.
`(package private) boolean` `isHeader()` Checks if this cell belongs to the header of a `PdfTable`.
`boolean` `isUseAscender()` Gets the value of `useAscender`
`boolean` `isUseBorderPadding()` Gets the value of `useBorderPadding`.
`boolean` `isUseDescender()` gets the value of `useDescender`
`float` `leading()` Gets the leading of a cell.
`float` `left()` Returns the lower left x-coordinaat.
`(package private) boolean` `mayBeRemoved()` Checks if the cell may be removed.
`protected void` `processActions(Element element, PdfAction action, java.util.ArrayList allActions)` Processes all actions contained in the cell.
`Rectangle` `rectangle(float top, float bottom)` Gets a Rectangle that is altered to fit on the page.
`float` `remainingHeight()` Returns the height needed to draw the remaining text.
`int` `remainingLines()` Returns the number of lines in the cell that are not empty.
`private PdfLine` `removeLine(int index)`
`float` `right()` Returns the upper right x-coordinate.
`int` `rownumber()` Gets the number of the row this cell is in..
`int` `rowspan()` Gets the rowspan of a cell.
`void` `setBottom(float value)` Sets the bottom of the Rectangle and determines the proper {link #verticalOffset} to appropriately align the contents vertically.
`(package private) void` `setGroupNumber(int number)` Sets the group number.
`(package private) void` `setHeader()` Indicates that this cell belongs to the header of a `PdfTable`.
`void` `setUseAscender(boolean use)` Sets the value of `useAscender`.
`void` `setUseBorderPadding(boolean use)` Sets the value of `useBorderPadding`.
`void` `setUseDescender(boolean use)` Sets the value of `useDescender`.
`int` `size()` Returns the number of lines in the cell.
`float` `top()` Returns the upper right y-coordinate.

Methods inherited from class com.lowagie.text.Rectangle

`backgroundColor, border, borderColor, borderWidth, bottom, cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getChunks, getMarkupAttribute, getMarkupAttributeNames, getMarkupAttributes, getRotation, grayFill, hasBorder, hasBorders, height, isUseVariableBorders, left, normalize, process, right, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setGrayFill, setLeft, setMarkupAttribute, setMarkupAttributes, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, top, toString, type, width`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### lines

    private java.util.ArrayList lines

  These are the PdfLines in the Cell.

### line

    private PdfLine line

  These are the PdfLines in the Cell.

### images

    private java.util.ArrayList images

  These are the Images in the Cell.

### leading

    private float leading

  This is the leading of the lines.

### rownumber

    private int rownumber

  This is the number of the row the cell is in.

### rowspan

    private int rowspan

  This is the rowspan of the cell.

### cellspacing

    private float cellspacing

  This is the cellspacing of the cell.

### cellpadding

    private float cellpadding

  This is the cellpadding of the cell.

### header

    private boolean header

  Indicates if this cell belongs to the header of a `PdfTable`

### contentHeight

    private float contentHeight

  This is the total height of the content of the cell. Note that the actual cell height may be larger due to another cell on the row *

### useAscender

    private boolean useAscender

  Indicates that the largest ascender height should be used to determine the height of the first line. Setting this to true can help with vertical alignment problems.

### useDescender

    private boolean useDescender

  Indicates that the largest descender height should be added to the height of the last line (so characters like y don't dip into the border).

### useBorderPadding

    private boolean useBorderPadding

  Adjusts the cell contents to compensate for border widths.

### verticalAlignment

    private int verticalAlignment

### firstLine

    private PdfLine firstLine

### lastLine

    private PdfLine lastLine

### groupNumber

    private int groupNumber

  This is the number of the group the cell is in.

Constructor Detail

### PdfCell

    public PdfCell(Cell cell,
                   int rownumber,
                   float left,
                   float right,
                   float top,
                   float cellspacing,
                   float cellpadding)

  Constructs a `PdfCell`-object.

  Parameters:
    `cell` - the original `Cell`
    `rownumber` - the number of the `Row` the `Cell` was in.
    `left` - the left border of the `PdfCell`
    `right` - the right border of the `PdfCell`
    `top` - the top border of the `PdfCell`
    `cellspacing` - the cellspacing of the `Table`
    `cellpadding` - the cellpadding of the `Table`

Method Detail

### setBottom

    public void setBottom(float value)

  Sets the bottom of the Rectangle and determines the proper {link #verticalOffset} to appropriately align the contents vertically.

  Overrides:
    `setBottom` in class `Rectangle`
  Parameters:
    `value` -

### left

    public float left()

  Returns the lower left x-coordinaat.

  Overrides:
    `left` in class `Rectangle`
  Returns:
    the lower left x-coordinaat

### right

    public float right()

  Returns the upper right x-coordinate.

  Overrides:
    `right` in class `Rectangle`
  Returns:
    the upper right x-coordinate

### top

    public float top()

  Returns the upper right y-coordinate.

  Overrides:
    `top` in class `Rectangle`
  Returns:
    the upper right y-coordinate

### bottom

    public float bottom()

  Returns the lower left y-coordinate.

  Overrides:
    `bottom` in class `Rectangle`
  Returns:
    the lower left y-coordinate

### addLine

    private void addLine(PdfLine line)

### removeLine

    private PdfLine removeLine(int index)

### flushCurrentLine

    private void flushCurrentLine()

### firstLineRealHeight

    private float firstLineRealHeight()

  Calculates what the height of the first line should be so that the content will be flush with the top. For text, this is the height of the ascender. For an image, it is the actual height of the image.

  Returns:
    the real height of the first line

### getBorderWidthInside

    private float getBorderWidthInside(int side)

  Gets the amount of the border for the specified side that is inside the Rectangle. For non-variable width borders this is only 1/2 the border width on that side. This always returns 0 if `useBorderPadding` is false;

  Parameters:
    `side` - the side to check. One of the side constants in `Rectangle`
  Returns:
    the borderwidth inside the cell

### addImage

    private float addImage(Image i,
                           float left,
                           float right,
                           float extraHeight,
                           int alignment)

  Adds an image to this Cell.

  Parameters:
    `i` - the image to add
    `left` - the left border
    `right` - the right border
    `extraHeight` - extra height to add above image
    `alignment` - horizontal alignment (constant from Element class)
  Returns:
    the height of the image

### getLines

    public java.util.ArrayList getLines(float top,
                                        float bottom)

  Gets the lines of a cell that can be drawn between certain limits.

  Remark: all the lines that can be drawn are removed from the object!

  Parameters:
    `top` - the top of the part of the table that can be drawn
    `bottom` - the bottom of the part of the table that can be drawn
  Returns:
    an `ArrayList` of `PdfLine`s

### getImages

    public java.util.ArrayList getImages(float top,
                                         float bottom)

  Gets the images of a cell that can be drawn between certain limits.

  Remark: all the lines that can be drawn are removed from the object!

  Parameters:
    `top` - the top of the part of the table that can be drawn
    `bottom` - the bottom of the part of the table that can be drawn
  Returns:
    an `ArrayList` of `Image`s

### isHeader

    boolean isHeader()

  Checks if this cell belongs to the header of a `PdfTable`.

  Returns:
    `void`

### setHeader

    void setHeader()

  Indicates that this cell belongs to the header of a `PdfTable`.

### mayBeRemoved

    boolean mayBeRemoved()

  Checks if the cell may be removed.

  Headers may allways be removed, even if they are drawn only partially: they will be repeated on each following page anyway!

  Returns:
    `true` if all the lines are allready drawn; `false` otherwise.

### size

    public int size()

  Returns the number of lines in the cell.

  Returns:
    a value

### remainingLines

    public int remainingLines()

  Returns the number of lines in the cell that are not empty.

  Returns:
    a value

### remainingHeight

    public float remainingHeight()

  Returns the height needed to draw the remaining text.

  Returns:
    a height

### leading

    public float leading()

  Gets the leading of a cell.

  Returns:
    the leading of the lines is the cell.

### rownumber

    public int rownumber()

  Gets the number of the row this cell is in..

  Returns:
    a number

### rowspan

    public int rowspan()

  Gets the rowspan of a cell.

  Returns:
    the rowspan of the cell

### cellspacing

    public float cellspacing()

  Gets the cellspacing of a cell.

  Returns:
    a value

### cellpadding

    public float cellpadding()

  Gets the cellpadding of a cell..

  Returns:
    a value

### processActions

    protected void processActions(Element element,
                                  PdfAction action,
                                  java.util.ArrayList allActions)

  Processes all actions contained in the cell.

  Parameters:
    `element` - an element in the cell
    `action` - an action that should be coupled to the cell
    `allActions` -

### getGroupNumber

    public int getGroupNumber()

  Gets the number of the group this cell is in..

  Returns:
    a number

### setGroupNumber

    void setGroupNumber(int number)

  Sets the group number.

  Parameters:
    `number` -

### rectangle

    public Rectangle rectangle(float top,
                               float bottom)

  Gets a Rectangle that is altered to fit on the page.

  Overrides:
    `rectangle` in class `Rectangle`
  Parameters:
    `top` - the top position
    `bottom` - the bottom position
  Returns:
    a `Rectangle`

### setUseAscender

    public void setUseAscender(boolean use)

  Sets the value of `useAscender`.

  Parameters:
    `use` - use ascender height if true

### isUseAscender

    public boolean isUseAscender()

  Gets the value of `useAscender`

  Returns:
    useAscender

### setUseDescender

    public void setUseDescender(boolean use)

  Sets the value of `useDescender`.

  Parameters:
    `use` - use descender height if true

### isUseDescender

    public boolean isUseDescender()

  gets the value of `useDescender`

  Returns:
    useDescender

### setUseBorderPadding

    public void setUseBorderPadding(boolean use)

  Sets the value of `useBorderPadding`.

  Parameters:
    `use` - adjust layour for borders if true

### isUseBorderPadding

    public boolean isUseBorderPadding()

  Gets the value of `useBorderPadding`.

  Returns:
    useBorderPadding