com.lowagie.text.pdf

## Class PdfLine

- java.lang.Object
- - com.lowagie.text.pdf.PdfLine

-     public class PdfLine
      extends java.lang.Object

  `PdfLine` defines an array with `PdfChunk`-objects that fit into 1 line.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `alignment` The alignment of the line.
    `protected float` | `height` The height of the line.
    `protected boolean` | `isRTL`
    `protected float` | `left` The left indentation of the line.
    `protected java.util.ArrayList` | `line` The arraylist containing the chunks.
    `protected Chunk` | `listSymbol` The listsymbol (if necessary).
    `protected boolean` | `newlineSplit` `true` if the chunk splitting was caused by a newline.
    `protected float` | `originalWidth` The original width.
    `protected float` | `symbolIndent` The listsymbol (if necessary).
    `protected float` | `width` The width of the line.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PdfLine(float left, float originalWidth, float remainingWidth, int alignment, boolean newlineSplit, java.util.ArrayList line, boolean isRTL)` Creates a PdfLine object.
    `PdfLine(float left, float right, int alignment, float height)` Constructs a new `PdfLine`-object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) PdfChunk` | `add(PdfChunk chunk)` Adds a `PdfChunk` to the `PdfLine`.
    `private void` | `addToLine(PdfChunk chunk)`
    `float` | `getAscender()` Gets the maximum size of the ascender for all the fonts used in this line.
    `PdfChunk` | `getChunk(int idx)` Gets a `PdfChunk` by index.
    `float` | `getDescender()` Gets the biggest descender for all the fonts used in this line.
    `int` | `getLastStrokeChunk()` Gets the index of the last `PdfChunk` with metric attributes
    `int` | `GetLineLengthUtf32()` Returns the length of a line in UTF32 characters
    `(package private) float[]` | `getMaxSize()` Gets the difference between the "normal" leading and the maximum size (for instance when there are images in the chunk).
    `float` | `getOriginalWidth()` Gets the original width of the line.
    `(package private) int` | `getSeparatorCount()` Gets the number of separators in the line.
    `float` | `getWidthCorrected(float charSpacing, float wordSpacing)` Gets a width corrected with a charSpacing and wordSpacing.
    `boolean` | `hasToBeJustified()` Checks if this line has to be justified.
    `(package private) float` | `height()` Returns the height of the line.
    `(package private) float` | `indentLeft()` Returns the left indentation of the line taking the alignment of the line into account.
    `boolean` | `isNewlineSplit()` Checks if a newline caused the line split.
    `(package private) boolean` | `isRTL()`
    `java.util.Iterator` | `iterator()` Returns an iterator of `PdfChunk`s.
    `float` | `listIndent()` Return the indentation needed to show the listsymbol.
    `Chunk` | `listSymbol()` Returns the listsymbol of this line.
    `(package private) int` | `numberOfSpaces()` Returns the number of space-characters in this line.
    `void` | `resetAlignment()` Resets the alignment of this line.
    `(package private) void` | `setExtraIndent(float extra)` Adds extra indentation to the left (for Paragraph.setFirstLineIndent).
    `void` | `setListItem(ListItem listItem)` Sets the listsymbol of this line.
    `int` | `size()` Returns the number of chunks in the line.
    `java.lang.String` | `toString()` Get the string representation of what is in this line.
    `(package private) float` | `widthLeft()` Returns the width that is left, after a maximum of characters is added to the line.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### line

          protected java.util.ArrayList line

      The arraylist containing the chunks.

    - #### left

          protected float left

      The left indentation of the line.

    - #### width

          protected float width

      The width of the line.

    - #### alignment

          protected int alignment

      The alignment of the line.

    - #### height

          protected float height

      The height of the line.

    - #### listSymbol

          protected Chunk listSymbol

      The listsymbol (if necessary).

    - #### symbolIndent

          protected float symbolIndent

      The listsymbol (if necessary).

    - #### newlineSplit

          protected boolean newlineSplit

      `true` if the chunk splitting was caused by a newline.

    - #### originalWidth

          protected float originalWidth

      The original width.

    - #### isRTL

          protected boolean isRTL

  - ### Constructor Detail

    - #### PdfLine

          PdfLine(float left,
                 float right,
                 int alignment,
                 float height)

      Constructs a new `PdfLine`-object.
      Parameters:
        `left` - the limit of the line at the left
        `right` - the limit of the line at the right
        `alignment` - the alignment of the line
        `height` - the height of the line

    - #### PdfLine

          PdfLine(float left,
                 float originalWidth,
                 float remainingWidth,
                 int alignment,
                 boolean newlineSplit,
                 java.util.ArrayList line,
                 boolean isRTL)

      Creates a PdfLine object.
      Parameters:
        `left` - the left offset
        `originalWidth` - the original width of the line
        `remainingWidth` - bigger than 0 if the line isn't completely filled
        `alignment` - the alignment of the line
        `newlineSplit` - was the line splitted (or does the paragraph end with this line)
        `line` - an array of PdfChunk objects
        `isRTL` - do you have to read the line from Right to Left?

  - ### Method Detail

    - #### add

          PdfChunk add(PdfChunk chunk)

      Adds a `PdfChunk` to the `PdfLine`.
      Parameters:
        `chunk` - the `PdfChunk` to add
      Returns:
        `null` if the chunk could be added completely; if not a `PdfChunk` containing the part of the chunk that could not be added is returned

    - #### addToLine

          private void addToLine(PdfChunk chunk)

    - #### size

          public int size()

      Returns the number of chunks in the line.
      Returns:
        a value

    - #### iterator

          public java.util.Iterator iterator()

      Returns an iterator of `PdfChunk`s.
      Returns:
        an `Iterator`

    - #### height

          float height()

      Returns the height of the line.
      Returns:
        a value

    - #### indentLeft

          float indentLeft()

      Returns the left indentation of the line taking the alignment of the line into account.
      Returns:
        a value

    - #### hasToBeJustified

          public boolean hasToBeJustified()

      Checks if this line has to be justified.
      Returns:
        `true` if the alignment equals ALIGN_JUSTIFIED and there is some width left.

    - #### resetAlignment

          public void resetAlignment()

      Resets the alignment of this line.

      The alignment of the last line of for instance a `Paragraph` that has to be justified, has to be reset to ALIGN_LEFT.

    - #### setExtraIndent

          void setExtraIndent(float extra)

      Adds extra indentation to the left (for Paragraph.setFirstLineIndent).

    - #### widthLeft

          float widthLeft()

      Returns the width that is left, after a maximum of characters is added to the line.
      Returns:
        a value

    - #### numberOfSpaces

          int numberOfSpaces()

      Returns the number of space-characters in this line.
      Returns:
        a value

    - #### setListItem

          public void setListItem(ListItem listItem)

      Sets the listsymbol of this line.

      This is only necessary for the first line of a `ListItem`.

      Parameters:
        `listItem` - the list symbol

    - #### listSymbol

          public Chunk listSymbol()

      Returns the listsymbol of this line.
      Returns:
        a `PdfChunk` if the line has a listsymbol; `null` otherwise

    - #### listIndent

          public float listIndent()

      Return the indentation needed to show the listsymbol.
      Returns:
        a value

    - #### toString

          public java.lang.String toString()

      Get the string representation of what is in this line.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a `String`

    - #### GetLineLengthUtf32

          public int GetLineLengthUtf32()

      Returns the length of a line in UTF32 characters
      Returns:
        the length in UTF32 characters
      Since:
        2.1.2

    - #### isNewlineSplit

          public boolean isNewlineSplit()

      Checks if a newline caused the line split.
      Returns:
        `true` if a newline caused the line split

    - #### getLastStrokeChunk

          public int getLastStrokeChunk()

      Gets the index of the last `PdfChunk` with metric attributes
      Returns:
        the last `PdfChunk` with metric attributes

    - #### getChunk

          public PdfChunk getChunk(int idx)

      Gets a `PdfChunk` by index.
      Parameters:
        `idx` - the index
      Returns:
        the `PdfChunk` or null if beyond the array

    - #### getOriginalWidth

          public float getOriginalWidth()

      Gets the original width of the line.
      Returns:
        the original width of the line

    - #### getMaxSize

          float[] getMaxSize()

      Gets the difference between the "normal" leading and the maximum size (for instance when there are images in the chunk).
      Returns:
        an extra leading for images
      Since:
        2.1.5

    - #### isRTL

          boolean isRTL()

    - #### getSeparatorCount

          int getSeparatorCount()

      Gets the number of separators in the line.
      Returns:
        the number of separators in the line
      Since:
        2.1.2

    - #### getWidthCorrected

          public float getWidthCorrected(float charSpacing,
                                float wordSpacing)

      Gets a width corrected with a charSpacing and wordSpacing.
      Parameters:
        `charSpacing` -
        `wordSpacing` -
      Returns:
        a corrected width

    - #### getAscender

          public float getAscender()

      Gets the maximum size of the ascender for all the fonts used in this line.
      Returns:
        maximum size of all the ascenders used in this line

    - #### getDescender

          public float getDescender()

      Gets the biggest descender for all the fonts used in this line. Note that this is a negative number.
      Returns:
        maximum size of all the ascenders used in this line