Class PdfCell

  • All Implemented Interfaces:
    Element

    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 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 final java.util.ArrayList images
        These are the Images in the Cell.
      • leading

        private final float leading
        This is the leading of the lines.
      • rownumber

        private final int rownumber
        This is the number of the row the cell is in.
      • rowspan

        private final int rowspan
        This is the rowspan of the cell.
      • cellspacing

        private final float cellspacing
        This is the cellspacing of the cell.
      • cellpadding

        private final 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 final 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 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 PdfLines
      • 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 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.
      • 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
      • rownumber

        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

        private float cellspacing()
        Gets the cellspacing of a cell.
        Returns:
        a value
      • cellpadding

        private float cellpadding()
        Gets the cellpadding of a cell..
        Returns:
        a value
      • processActions

        private 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 layout for borders if true
      • isUseBorderPadding

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