Class PdfCell

java.lang.Object
com.lowagie.text.Rectangle
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:
  • Field Details

    • lines

      private List<PdfLine> lines
      These are the PdfLines in the Cell.
    • line

      private PdfLine line
      These are the PdfLines in the Cell.
    • images

      private List<Image> 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.
    • 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 Details

    • 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 Details

    • addList

      private void addList(List list, float left, float right, int alignment)
    • 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
    • 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 - the lower-left y-coordinate of the rectangle
    • 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<PdfLine> 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<Image> 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, List<PdfAction> 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 - a list of PdfAction to execute
    • 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
    • isUseAscender

      public boolean isUseAscender()
      Gets the value of useAscender
      Returns:
      useAscender
    • setUseAscender

      public void setUseAscender(boolean use)
      Sets the value of useAscender.
      Parameters:
      use - use ascender height if true
    • isUseDescender

      public boolean isUseDescender()
      gets the value of useDescender
      Returns:
      useDescender
    • setUseDescender

      public void setUseDescender(boolean use)
      Sets the value of useDescender.
      Parameters:
      use - use descender height if true
    • isUseBorderPadding

      public boolean isUseBorderPadding()
      Gets the value of useBorderPadding.
      Returns:
      useBorderPadding
    • setUseBorderPadding

      public void setUseBorderPadding(boolean use)
      Sets the value of useBorderPadding.
      Parameters:
      use - adjust layout for borders if true