Class Cell

All Implemented Interfaces:
WithHorizontalAlignment, WithVerticalAlignment, Element, TextElementArray

A Cell is a Rectangle containing other Elements.

A Cell must be added to a Table. The Table will place the Cell in a Row.

Example:

 Table table = new Table(3); table.setBorderWidth(1); table.setBorderColor(new Color(0, 0, 255));
 table.setCellpadding(5); table.setCellspacing(5);
 Cell cell = new Cell("header");
 cell.setHeader(true);
 cell.setColspan(3);
 table.addCell(cell);
 cell = new Cell("example cell with colspan 1 and rowspan 2");
 cell.setRowspan(2);
 cell.setBorderColor(new Color(255, 0, 0));
 table.addCell(cell); table.addCell("1.1"); table.addCell("2.1"); table.addCell("1.2"); table.addCell("2.2");
 
See Also:
  • Field Details

    • arrayList

      protected List<Element> arrayList
      The ArrayList of Elements that are part of the content of the Cell.
    • horizontalAlignment

      protected int horizontalAlignment
      The horizontal alignment of the cell content.
    • verticalAlignment

      protected int verticalAlignment
      The vertical alignment of the cell content.
    • width

      protected float width
      The width of the cell as a String. It can be an absolute value "100" or a percentage "20%".
    • percentage

      protected boolean percentage
    • colspan

      protected int colspan
      The colspan of the cell.
    • rowspan

      protected int rowspan
      The rowspan of the cell.
    • maxLines

      protected int maxLines
      Maximum number of lines allowed in the cell. The default value of this property is not to limit the maximum number of lines (contributed by dperezcar@fcc.es)
    • useAscender

      protected boolean useAscender
      Indicates that the largest ascender height should be used to determine the height of the first line. Note that this only has an effect when rendered to PDF. Setting this to true can help with vertical alignment problems.
    • useDescender

      protected 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). Note that this only has an effect when rendered to PDF.
    • useBorderPadding

      protected boolean useBorderPadding
      Adjusts the cell contents to compensate for border widths. Note that this only has an effect when rendered to PDF.
    • groupChange

      protected boolean groupChange
      Does this Cell force a group change?
    • leading

      float leading
      The leading of the content inside the cell.
    • showTruncation

      String showTruncation
      If a truncation happens due to the maxLines property, then this text will be added to indicate a truncation has happened. Default value is null, and means avoiding marking the truncation. A useful value of this property could be e.g. "..." (contributed by dperezcar@fcc.es)
  • Constructor Details

    • Cell

      public Cell()
      Constructs an empty Cell.
    • Cell

      public Cell(boolean dummy)
      Constructs an empty Cell (for internal use only).
      Parameters:
      dummy - a dummy value
    • Cell

      public Cell(String content)
      Constructs a Cell with a certain content.

      The String will be converted into a Paragraph.

      Parameters:
      content - a String
    • Cell

      public Cell(Element element) throws BadElementException
      Constructs a Cell with a certain Element.

      if the element is a ListItem, Row or Cell, an exception will be thrown.

      Parameters:
      element - the element
      Throws:
      BadElementException - when the creator was called with a ListItem, Row or Cell
  • Method Details

    • getDummyCell

      private static Cell getDummyCell()
      Get dummy cell used when merging inner tables.
      Returns:
      a cell with colspan 3 and no border
    • process

      public boolean process(ElementListener listener)
      Processes the element by adding it (or the different parts) to an ElementListener.
      Specified by:
      process in interface Element
      Overrides:
      process in class Rectangle
      Parameters:
      listener - an ElementListener
      Returns:
      true if the element was processed successfully
    • type

      public int type()
      Gets the type of the text element.
      Specified by:
      type in interface Element
      Overrides:
      type in class Rectangle
      Returns:
      a type
    • getChunks

      public ArrayList<Element> getChunks()
      Gets all the chunks in this element.
      Specified by:
      getChunks in interface Element
      Overrides:
      getChunks in class Rectangle
      Returns:
      an ArrayList
    • getHorizontalAlignment

      public int getHorizontalAlignment()
      Gets the horizontal alignment.
      Returns:
      a value
    • setHorizontalAlignment

      public void setHorizontalAlignment(HorizontalAlignment alignment)
      Description copied from interface: WithHorizontalAlignment
      Sets horizontal alignment mode.
      Specified by:
      setHorizontalAlignment in interface WithHorizontalAlignment
      Parameters:
      alignment - New alignment mode. If null, current alignment must be left unchanged
    • getVerticalAlignment

      public int getVerticalAlignment()
      Gets the vertical alignment.
      Returns:
      a value
    • setVerticalAlignment

      public void setVerticalAlignment(VerticalAlignment alignment)
      Description copied from interface: WithVerticalAlignment
      Sets vertical alignment mode.
      Specified by:
      setVerticalAlignment in interface WithVerticalAlignment
      Parameters:
      alignment - New alignment mode. If null, current alignment must be left unchanged
    • getWidth

      public float getWidth()
      Gets the width.
      Overrides:
      getWidth in class Rectangle
      Returns:
      the width
    • setWidth

      public void setWidth(float value)
      Sets the width.
      Parameters:
      value - the new value
    • setWidth

      public void setWidth(String value)
      Sets the width. It can be an absolute value "100" or a percentage "20%"
      Parameters:
      value - the new value
    • getWidthAsString

      public String getWidthAsString()
      Gets the width as a String.
      Returns:
      a value
    • getColspan

      public int getColspan()
      Gets the colspan.
      Returns:
      a value
    • setColspan

      public void setColspan(int value)
      Sets the colspan.
      Parameters:
      value - the new value
    • getRowspan

      public int getRowspan()
      Gets the rowspan.
      Returns:
      a value
    • setRowspan

      public void setRowspan(int value)
      Sets the rowspan.
      Parameters:
      value - the new value
    • getLeading

      public float getLeading()
      Gets the leading.
      Returns:
      a value
    • setLeading

      public void setLeading(float value)
      Sets the leading.
      Parameters:
      value - the new value
    • isHeader

      public boolean isHeader()
      Is this Cell a header?
      Returns:
      a value
    • setHeader

      public void setHeader(boolean value)
      Sets header.
      Parameters:
      value - the new value
    • getMaxLines

      public int getMaxLines()
      Getter for maxLines
      Returns:
      the maxLines value
    • setMaxLines

      public void setMaxLines(int value)
      Setter for maxLines
      Parameters:
      value - the maximum number of lines
    • getShowTruncation

      public String getShowTruncation()
      Getter for showTruncation
      Returns:
      the showTruncation value
    • setShowTruncation

      public void setShowTruncation(String value)
      Setter for showTruncation
      Parameters:
      value - Can be null for avoiding marking the truncation.
    • 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
    • getGroupChange

      public boolean getGroupChange()
      Does this Cell force a group change?
      Returns:
      a value
    • setGroupChange

      public void setGroupChange(boolean value)
      Sets group change.
      Parameters:
      value - the new value
    • size

      public int size()
      Gets the number of Elements in the Cell.
      Returns:
      a size.
    • getElements

      public Iterator getElements()
      Gets an iterator of Elements.
      Returns:
      an Iterator.
    • clear

      public void clear()
      Clears all the Elements of this Cell.
    • isEmpty

      public boolean isEmpty()
      Checks if the Cell is empty.
      Returns:
      false if there are non-empty Elements in the Cell.
    • fill

      void fill()
      Makes sure there is at least 1 object in the Cell.

      Otherwise it might not be shown in the table.

    • isTable

      public boolean isTable()
      Checks if this Cell is a placeholder for a (nested) table.
      Returns:
      true if the only element in this cell is a table
    • addElement

      public void addElement(Element element) throws BadElementException
      Adds an element to this Cell.

      Remark: you can't add ListItems, Rows, Cells, JPEGs, GIFs or PNGs to a Cell.

      Parameters:
      element - The Element to add
      Throws:
      BadElementException - if the method was called with a ListItem, Row or Cell
    • add

      public boolean add(Element o)
      Add an Object to this cell.
      Specified by:
      add in interface TextElementArray
      Parameters:
      o - the object to add
      Returns:
      always true
    • createPdfPCell

      public PdfPCell createPdfPCell() throws BadElementException
      Creates a PdfPCell based on this Cell object.
      Returns:
      a PdfPCell
      Throws:
      BadElementException - on error
    • getTop

      public float getTop()
      This method throws an UnsupportedOperationException.
      Overrides:
      getTop in class Rectangle
      Returns:
      NA
    • setTop

      public void setTop(int value)
      This method throws an UnsupportedOperationException.
      Parameters:
      value - NA
    • getBottom

      public float getBottom()
      This method throws an UnsupportedOperationException.
      Overrides:
      getBottom in class Rectangle
      Returns:
      NA
    • setBottom

      public void setBottom(int value)
      This method throws an UnsupportedOperationException.
      Parameters:
      value - NA
    • getLeft

      public float getLeft()
      This method throws an UnsupportedOperationException.
      Overrides:
      getLeft in class Rectangle
      Returns:
      NA
    • setLeft

      public void setLeft(int value)
      This method throws an UnsupportedOperationException.
      Parameters:
      value - NA
    • getRight

      public float getRight()
      This method throws an UnsupportedOperationException.
      Overrides:
      getRight in class Rectangle
      Returns:
      NA
    • setRight

      public void setRight(int value)
      This method throws an UnsupportedOperationException.
      Parameters:
      value - NA
    • top

      public float top(int margin)
      This method throws an UnsupportedOperationException.
      Parameters:
      margin - NA
      Returns:
      NA
    • bottom

      public float bottom(int margin)
      This method throws an UnsupportedOperationException.
      Parameters:
      margin - NA
      Returns:
      NA
    • left

      public float left(int margin)
      This method throws an UnsupportedOperationException.
      Parameters:
      margin - NA
      Returns:
      NA
    • right

      public float right(int margin)
      This method throws an UnsupportedOperationException.
      Parameters:
      margin - NA
      Returns:
      NA