Class MultiColumnText

java.lang.Object
com.lowagie.text.pdf.MultiColumnText
All Implemented Interfaces:
Element

public class MultiColumnText extends Object implements Element
Formats content into one or more columns bounded by a rectangle. The columns may be simple rectangles or more complicated shapes. Add all of the columns before adding content. Column continuation is supported. A MultiColumnText object may be added to a document using Document.add.
Author:
Steve Appling
  • Field Details

    • AUTOMATIC

      public static final float AUTOMATIC
      special constant for automatic calculation of height
      See Also:
  • Constructor Details

    • MultiColumnText

      public MultiColumnText()
      Default constructor. Sets height to AUTOMATIC. Columns will repeat on each page as necessary to accommodate content length.
    • MultiColumnText

      public MultiColumnText(float height)
      Construct a MultiColumnText container of the specified height. If height is AUTOMATIC, fill complete pages until done. If a specific height is used, it may span one or more pages.
      Parameters:
      height -
    • MultiColumnText

      public MultiColumnText(float top, float height)
      Construct a MultiColumnText container of the specified height starting at the specified Y position.
      Parameters:
      height -
      top -
  • Method Details

    • isOverflow

      public boolean isOverflow()
      Indicates that all of the text did not fit in the specified height. Note that isOverflow will return false before the MultiColumnText object has been added to the document. It will always be false if the height is AUTOMATIC.
      Returns:
      true if there is still space left in the column
    • useColumnParams

      public void useColumnParams(ColumnText sourceColumn)
      Copy the parameters from the specified ColumnText to use when rendering. Parameters like setArabicOptions must be set in this way.
      Parameters:
      sourceColumn -
    • addColumn

      public void addColumn(float[] left, float[] right)
      Add a new column. The parameters are limits for each column wall in the format of a sequence of points (x1,y1,x2,y2,...).
      Parameters:
      left - limits for left column
      right - limits for right column
    • addSimpleColumn

      public void addSimpleColumn(float left, float right)
      Add a simple rectangular column with specified left and right x position boundaries.
      Parameters:
      left - left boundary
      right - right boundary
    • addRegularColumns

      public void addRegularColumns(float left, float right, float gutterWidth, int numColumns)
      Add the specified number of evenly spaced rectangular columns. Columns will be separated by the specified gutterWidth.
      Parameters:
      left - left boundary of first column
      right - right boundary of last column
      gutterWidth - width of gutter spacing between columns
      numColumns - number of columns to add
    • addText

      public void addText(Phrase phrase)
      Adds a Phrase to the current text array. Will not have any effect if addElement() was called before.
      Parameters:
      phrase - the text
      Since:
      2.1.5
    • addText

      public void addText(Chunk chunk)
      Adds a Chunk to the current text array. Will not have any effect if addElement() was called before.
      Parameters:
      chunk - the text
      Since:
      2.1.5
    • addElement

      public void addElement(Element element) throws DocumentException
      Add an element to be rendered in a column. Note that you can only add a Phrase or a Chunk if the columns are not all simple. This is an underlying restriction in ColumnText
      Parameters:
      element - element to add
      Throws:
      DocumentException - if element can't be added
    • write

      public float write(PdfContentByte canvas, PdfDocument document, float documentY) throws DocumentException
      Write out the columns. After writing, use isOverflow() to see if all text was written.
      Parameters:
      canvas - PdfContentByte to write with
      document - document to write to (only used to get page limit info)
      documentY - starting y position to begin writing at
      Returns:
      the current height (y position) after writing the columns
      Throws:
      DocumentException - on error
    • process

      public boolean process(ElementListener listener)
      Processes the element by adding it to an ElementListener.
      Specified by:
      process in interface Element
      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
      Returns:
      a type
    • getChunks

      public ArrayList getChunks()
      Returns null - not used
      Specified by:
      getChunks in interface Element
      Returns:
      null
    • isContent

      public boolean isContent()
      Description copied from interface: Element
      Checks if this element is a content object. If not, it's a metadata object.
      Specified by:
      isContent in interface Element
      Returns:
      true if this is a 'content' element; false if this is a 'metadata' element
      Since:
      iText 2.0.8
      See Also:
    • isNestable

      public boolean isNestable()
      Description copied from interface: Element
      Checks if this element is nestable.
      Specified by:
      isNestable in interface Element
      Returns:
      true if this element can be nested inside other elements.
      Since:
      iText 2.0.8
      See Also:
    • nextColumn

      public void nextColumn() throws DocumentException
      Moves the text insertion point to the beginning of the next column, issuing a page break if needed.
      Throws:
      DocumentException - on error
    • getCurrentColumn

      public int getCurrentColumn()
      Gets the current column.
      Returns:
      the current column
    • resetCurrentColumn

      public void resetCurrentColumn()
      Resets the current column.
    • shiftCurrentColumn

      public boolean shiftCurrentColumn()
      Shifts the current column.
      Returns:
      true if the current column has changed
    • setColumnsRightToLeft

      public void setColumnsRightToLeft(boolean direction)
      Sets the direction of the columns.
      Parameters:
      direction - true = right2left; false = left2right
    • setSpaceCharRatio

      public void setSpaceCharRatio(float spaceCharRatio)
      Sets the ratio between the extra word spacing and the extra character spacing when the text is fully justified. Extra word spacing will grow spaceCharRatio times more than extra character spacing. If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing will be zero.
      Parameters:
      spaceCharRatio - the ratio between the extra word spacing and the extra character spacing
    • setRunDirection

      public void setRunDirection(int runDirection)
      Sets the run direction.
      Parameters:
      runDirection - the run direction
    • setArabicOptions

      public void setArabicOptions(int arabicOptions)
      Sets the arabic shaping options. The option can be AR_NOVOWEL, AR_COMPOSEDTASHKEEL and AR_LIG.
      Parameters:
      arabicOptions - the arabic shaping options
    • setAlignment

      public void setAlignment(int alignment)
      Sets the default alignment
      Parameters:
      alignment - the default alignment