com.lowagie.text.pdf
Class PdfCell

java.lang.Object
  extended by com.lowagie.text.Rectangle
      extended by com.lowagie.text.pdf.PdfCell
All Implemented Interfaces:
Element

public class PdfCell
extends Rectangle

A PdfCell is the PDF translation of a Cell.

A PdfCell is an ArrayList of PdfLines.

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  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  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
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
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)
           
private  void addList(List list, float left, float right, int alignment)
           
 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.
 float getBottom()
          Returns the lower left y-coordinate.
 int getGroupNumber()
          Gets the number of the group this cell is in..
 ArrayList getImages(float top, float bottom)
          Gets the images of a cell that can be drawn between certain limits.
 float getLeft()
          Returns the lower left x-coordinate.
 ArrayList getLines(float top, float bottom)
          Gets the lines of a cell that can be drawn between certain limits.
 float getRight()
          Returns the upper right x-coordinate.
 float getTop()
          Returns the upper right y-coordinate.
(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.
(package private)  boolean mayBeRemoved()
          Checks if the cell may be removed.
protected  void processActions(Element element, PdfAction action, 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.
private  float remainingLinesHeight()
          Returns the total height of all the lines in the cell.
private  PdfLine removeLine(int index)
           
 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.
 
Methods inherited from class com.lowagie.text.Rectangle
cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBackgroundColor, getBorder, getBorderColor, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidth, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getBottom, getChunks, getGrayFill, getHeight, getLeft, getRight, getRotation, getTop, getWidth, hasBorder, hasBorders, isContent, isNestable, isUseVariableBorders, normalize, process, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setGrayFill, setLeft, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, toString, type
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

lines

private ArrayList lines
These are the PdfLines in the Cell.


line

private PdfLine line
These are the PdfLines in the Cell.


images

private 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

addList

private void addList(List list,
                     float left,
                     float right,
                     int alignment)

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 -

getLeft

public float getLeft()
Returns the lower left x-coordinate.

Overrides:
getLeft in class Rectangle
Returns:
the lower left x-coordinate

getRight

public float getRight()
Returns the upper right x-coordinate.

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

getTop

public float getTop()
Returns the upper right y-coordinate.

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

getBottom

public float getBottom()
Returns the lower left y-coordinate.

Overrides:
getBottom 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 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 PdfLines

getImages

public 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 Images

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 always 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 already drawn; false otherwise.

size

public int size()
Returns the number of lines in the cell.

Returns:
a value

remainingLinesHeight

private float remainingLinesHeight()
Returns the total height of all the lines in the cell.

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,
                              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 layout for borders if true

isUseBorderPadding

public boolean isUseBorderPadding()
Gets the value of useBorderPadding.

Returns:
useBorderPadding

Hosted by Hostbasket