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
`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
`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