com.lowagie.text.pdf

## Class VerticalText

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

-     public class VerticalText
      extends java.lang.Object

  Writes text vertically. Note that the naming is done according to horizontal text although it refers to vertical text. A line with the alignment Element.LEFT_ALIGN will actually be top aligned.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `alignment` The column alignment.
    `protected java.util.ArrayList` | `chunks` The chunks that form the text.
    `protected int` | `currentChunkMarker` Marks the chunks to be eliminated when the line is written.
    `protected PdfChunk` | `currentStandbyChunk` The chunk created by the splitting.
    `protected float` | `height` The height of the text.
    `protected float` | `leading` The leading
    `protected int` | `maxLines` The maximum number of vertical lines.
    `static int` | `NO_MORE_COLUMN` Signals that there is no more column.
    `static int` | `NO_MORE_TEXT` Signals that there are no more text available.
    `protected java.lang.String` | `splittedChunkText` The chunk created by the splitting.
    `protected float` | `startX` The X coordinate.
    `protected float` | `startY` The Y coordinate.
    `protected PdfContentByte` | `text` The `PdfContent` where the text will be written to.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VerticalText(PdfContentByte text)` Creates new VerticalText

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addText(Chunk chunk)` Adds a `Chunk` to the current text array.
    `void` | `addText(Phrase phrase)` Adds a `Phrase` to the current text array.
    `protected PdfLine` | `createLine(float width)` Creates a line from the chunk array.
    `int` | `getAlignment()` Gets the alignment.
    `float` | `getHeight()` Gets the height of the line
    `float` | `getLeading()` Gets the separation between the vertical lines.
    `int` | `getMaxLines()` Gets the maximum number of available lines.
    `float` | `getOriginX()` Gets the X coordinate where the next line will be written.
    `float` | `getOriginY()` Gets the Y coordinate where the next line will be written.
    `int` | `go()` Outputs the lines to the document.
    `int` | `go(boolean simulate)` Outputs the lines to the document.
    `void` | `setAlignment(int alignment)` Sets the alignment.
    `void` | `setHeight(float height)` Sets the height of the line
    `void` | `setLeading(float leading)` Sets the separation between the vertical lines.
    `void` | `setMaxLines(int maxLines)` Sets the maximum number of lines.
    `void` | `setOrigin(float startX, float startY)` Sets the new text origin.
    `void` | `setVerticalLayout(float startX, float startY, float height, int maxLines, float leading)` Sets the layout.
    `protected void` | `shortenChunkArray()` Normalizes the list of chunks when the line is accepted.
    `(package private) void` | `writeLine(PdfLine line, PdfContentByte text, PdfContentByte graphics)`

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

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

- - ### Field Detail

    - #### NO_MORE_TEXT

          public static final int NO_MORE_TEXT

      Signals that there are no more text available.
      See Also:
        Constant Field Values

    - #### NO_MORE_COLUMN

          public static final int NO_MORE_COLUMN

      Signals that there is no more column.
      See Also:
        Constant Field Values

    - #### chunks

          protected java.util.ArrayList chunks

      The chunks that form the text.

    - #### text

          protected PdfContentByte text

      The `PdfContent` where the text will be written to.

    - #### alignment

          protected int alignment

      The column alignment. Default is left alignment.

    - #### currentChunkMarker

          protected int currentChunkMarker

      Marks the chunks to be eliminated when the line is written.

    - #### currentStandbyChunk

          protected PdfChunk currentStandbyChunk

      The chunk created by the splitting.

    - #### splittedChunkText

          protected java.lang.String splittedChunkText

      The chunk created by the splitting.

    - #### leading

          protected float leading

      The leading

    - #### startX

          protected float startX

      The X coordinate.

    - #### startY

          protected float startY

      The Y coordinate.

    - #### maxLines

          protected int maxLines

      The maximum number of vertical lines.

    - #### height

          protected float height

      The height of the text.

  - ### Constructor Detail

    - #### VerticalText

          public VerticalText(PdfContentByte text)

      Creates new VerticalText
      Parameters:
        `text` - the place where the text will be written to. Can be a template.

  - ### Method Detail

    - #### addText

          public void addText(Phrase phrase)

      Adds a `Phrase` to the current text array.
      Parameters:
        `phrase` - the text

    - #### addText

          public void addText(Chunk chunk)

      Adds a `Chunk` to the current text array.
      Parameters:
        `chunk` - the text

    - #### setVerticalLayout

          public void setVerticalLayout(float startX,
                               float startY,
                               float height,
                               int maxLines,
                               float leading)

      Sets the layout.
      Parameters:
        `startX` - the top right X line position
        `startY` - the top right Y line position
        `height` - the height of the lines
        `maxLines` - the maximum number of lines
        `leading` - the separation between the lines

    - #### setLeading

          public void setLeading(float leading)

      Sets the separation between the vertical lines.
      Parameters:
        `leading` - the vertical line separation

    - #### getLeading

          public float getLeading()

      Gets the separation between the vertical lines.
      Returns:
        the vertical line separation

    - #### createLine

          protected PdfLine createLine(float width)

      Creates a line from the chunk array.
      Parameters:
        `width` - the width of the line
      Returns:
        the line or null if no more chunks

    - #### shortenChunkArray

          protected void shortenChunkArray()

      Normalizes the list of chunks when the line is accepted.

    - #### go

          public int go()

      Outputs the lines to the document. It is equivalent to `go(false)`.
      Returns:
        returns the result of the operation. It can be `NO_MORE_TEXT` and/or `NO_MORE_COLUMN`

    - #### go

          public int go(boolean simulate)

      Outputs the lines to the document. The output can be simulated.
      Parameters:
        `simulate` - `true` to simulate the writing to the document
      Returns:
        returns the result of the operation. It can be `NO_MORE_TEXT` and/or `NO_MORE_COLUMN`

    - #### writeLine

          void writeLine(PdfLine line,
                       PdfContentByte text,
                       PdfContentByte graphics)

    - #### setOrigin

          public void setOrigin(float startX,
                       float startY)

      Sets the new text origin.
      Parameters:
        `startX` - the X coordinate
        `startY` - the Y coordinate

    - #### getOriginX

          public float getOriginX()

      Gets the X coordinate where the next line will be written. This value will change after each call to `go()`.
      Returns:
        the X coordinate

    - #### getOriginY

          public float getOriginY()

      Gets the Y coordinate where the next line will be written.
      Returns:
        the Y coordinate

    - #### getMaxLines

          public int getMaxLines()

      Gets the maximum number of available lines. This value will change after each call to `go()`.
      Returns:
        Value of property maxLines.

    - #### setMaxLines

          public void setMaxLines(int maxLines)

      Sets the maximum number of lines.
      Parameters:
        `maxLines` - the maximum number of lines

    - #### getHeight

          public float getHeight()

      Gets the height of the line
      Returns:
        the height

    - #### setHeight

          public void setHeight(float height)

      Sets the height of the line
      Parameters:
        `height` - the new height

    - #### setAlignment

          public void setAlignment(int alignment)

      Sets the alignment.
      Parameters:
        `alignment` - the alignment

    - #### getAlignment

          public int getAlignment()

      Gets the alignment.
      Returns:
        the alignment