com.lowagie.text.pdf
public class ColumnText extends Object
Several parameters can be set like the first paragraph line indent and extra space between paragraphs.
A call to the method go
will return one of the following
situations: the column ended or the text ended.
I the column ended, a new column definition can be loaded with the method
setColumns
and the method go
can be called again.
If the text ended, more text can be loaded with addText
and the method go
can be called again.
The only limitation is that one or more complete paragraphs must be loaded
each time.
Full bidirectional reordering is supported. If the run direction is
PdfWriter.RUN_DIRECTION_RTL
the meaning of the horizontal
alignments and margins is mirrored.
Field Summary | |
---|---|
static int | AR_COMPOSEDTASHKEEL Compose the tashkeel in the ligatures. |
static int | AR_LIG Do some extra double ligatures. |
static int | AR_NOVOWEL Eliminate the arabic vowels |
boolean | adjustFirstLine |
protected int | alignment The column alignment. |
int | arabicOptions Holds value of property arabicOptions. |
protected BidiLine | bidiLine The chunks that form the text. |
protected PdfContentByte | canvas The PdfContent where the text will be written to. |
protected PdfContentByte[] | canvases |
protected boolean | composite |
protected ColumnText | compositeColumn |
protected LinkedList | compositeElements |
protected float | currentLeading The leading for the current line. |
protected float | descender |
static int | DIGITS_AN2EN
Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). |
static int | DIGITS_EN2AN
Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. |
static int | DIGITS_EN2AN_INIT_AL
Digit shaping option:
Replace European digits (U+0030...U+0039) by Arabic-Indic digits
if the most recent strongly directional character
is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC).
|
static int | DIGITS_EN2AN_INIT_LR
Digit shaping option:
Replace European digits (U+0030...U+0039) by Arabic-Indic digits
if the most recent strongly directional character
is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC).
|
static int | DIGIT_TYPE_AN
Digit type option: Use Arabic-Indic digits (U+0660...U+0669). |
static int | DIGIT_TYPE_AN_EXTENDED
Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). |
protected float | extraParagraphSpace The extra space between paragraphs. |
float | filledWidth
Holds value of property filledWidth. |
float | firstLineY |
boolean | firstLineYDone |
protected float | fixedLeading The fixed text leading. |
protected float | followingIndent The following paragraph lines indent. |
static float | GLOBAL_SPACE_CHAR_RATIO the space char ratio |
protected float | indent The first paragraph line indent. |
boolean | lastWasNewline |
protected ArrayList | leftWall The left column bound. |
protected float | leftX |
int | linesWritten Holds value of property linesWritten. |
protected int | lineStatus The line status when trying to fit a line to a column. |
protected int | listIdx |
protected static int | LINE_STATUS_NOLINE The line cannot fit this column position. |
protected static int | LINE_STATUS_OFFLIMITS The line is out the column limits. |
protected static int | LINE_STATUS_OK The column is valid. |
protected float | maxY Upper bound of the column. |
protected float | minY Lower bound of the column. |
protected float | multipliedLeading The text leading that is multiplied by the biggest font size in the line. |
static int | NO_MORE_COLUMN Signals that there is no more column. |
static int | NO_MORE_TEXT Signals that there is no more text available. |
protected boolean | rectangularMode |
protected float | rectangularWidth The width of the line when the column is defined as a simple rectangle. |
protected float | rightIndent The right paragraph lines indent. |
protected ArrayList | rightWall The right column bound. |
protected float | rightX |
protected int | runDirection |
float | spaceCharRatio Holds value of property spaceCharRatio. |
boolean | splittedRow |
static int | START_COLUMN Initial value of the status. |
boolean | useAscender if true, first line height is adjusted so that the max ascender touches the top |
protected Phrase | waitPhrase |
protected float | yLine The current y line location. |
Constructor Summary | |
---|---|
ColumnText(PdfContentByte canvas)
Creates a ColumnText . |
Method Summary | |
---|---|
void | addElement(Element element)
Adds an element. |
void | addText(Phrase phrase)
Adds a Phrase to the current text array.
|
void | addText(Chunk chunk)
Adds a Chunk to the current text array.
|
void | addWaitingPhrase() |
void | clearChunks()
Clears the chunk array. |
protected ArrayList | convertColumn(float[] cLine)
Converts a sequence of lines representing one of the column bounds into
an internal format.
|
static ColumnText | duplicate(ColumnText org) Creates an independent duplicated of the instance org . |
protected float[] | findLimitsOneLine()
Finds the intersection between the yLine and the two
column bounds. |
protected float | findLimitsPoint(ArrayList wall)
Finds the intersection between the yLine and the column. |
protected float[] | findLimitsTwoLines()
Finds the intersection between the yLine ,
the yLine-leading and the two
column bounds. |
int | getAlignment()
Gets the alignment. |
int | getArabicOptions() Gets the arabic shaping options. |
PdfContentByte | getCanvas()
Gets the canvas. |
PdfContentByte[] | getCanvases()
Gets the canvases. |
float | getDescender() Gets the biggest descender value of the last line written. |
float | getExtraParagraphSpace()
Sets the extra space between paragraphs. |
float | getFilledWidth()
Gets the real width used by the largest line. |
float | getFollowingIndent()
Gets the following paragraph lines indent. |
float | getIndent()
Gets the first paragraph line indent. |
float | getLeading()
Gets the fixed leading |
int | getLinesWritten() Gets the number of lines written. |
float | getMultipliedLeading()
Gets the variable leading |
float | getRightIndent()
Gets the right paragraph lines indent. |
int | getRunDirection() Gets the run direction. |
float | getSpaceCharRatio() Gets the space/character extra spacing ratio for
fully justified text. |
static float | getWidth(Phrase phrase, int runDirection, int arabicOptions) Gets the width that the line will occupy after writing.
|
static float | getWidth(Phrase phrase) Gets the width that the line will occupy after writing.
|
float | getYLine()
Gets the yLine. |
int | go()
Outputs the lines to the document. |
int | go(boolean simulate)
Outputs the lines to the document. |
protected int | goComposite(boolean simulate) |
static boolean | hasMoreText(int status)
Checks the status variable and looks if there's still some text. |
boolean | isAdjustFirstLine()
Gets the first line adjustment property. |
boolean | isUseAscender()
Checks if UseAscender is enabled/disabled. |
ColumnText | setACopy(ColumnText org) Makes this instance an independent copy of org . |
void | setAdjustFirstLine(boolean adjustFirstLine)
Sets the first line adjustment. |
void | setAlignment(int alignment)
Sets the alignment. |
void | setArabicOptions(int arabicOptions) Sets the arabic shaping options. |
void | setCanvas(PdfContentByte canvas)
Sets the canvas. |
void | setCanvases(PdfContentByte[] canvases)
Sets the canvases. |
void | setColumns(float[] leftLine, float[] rightLine)
Sets the columns bounds. |
void | setExtraParagraphSpace(float extraParagraphSpace)
Sets the extra space between paragraphs. |
void | setFilledWidth(float filledWidth)
Sets the real width used by the largest line. |
void | setFollowingIndent(float indent)
Sets the following paragraph lines indent. |
void | setIndent(float indent)
Sets the first paragraph line indent. |
void | setLeading(float leading)
Sets the leading to fixed |
void | setLeading(float fixedLeading, float multipliedLeading)
Sets the leading fixed and variable. |
void | setRightIndent(float indent)
Sets the right paragraph lines indent. |
void | setRunDirection(int runDirection) Sets the run direction. |
void | setSimpleColumn(Phrase phrase, float llx, float lly, float urx, float ury, float leading, int alignment)
Simplified method for rectangular columns. |
void | setSimpleColumn(float llx, float lly, float urx, float ury, float leading, int alignment)
Simplified method for rectangular columns. |
void | setSimpleColumn(float llx, float lly, float urx, float ury)
Simplified method for rectangular columns. |
protected void | setSimpleVars(ColumnText org) |
void | setSpaceCharRatio(float spaceCharRatio) Sets the ratio between the extra word spacing and the extra character spacing
when the text is fully justified.
|
void | setText(Phrase phrase)
Replaces the current text array with this Phrase .
|
void | setUseAscender(boolean use)
Enables/Disables adjustment of first line height based on max ascender. |
void | setYLine(float yLine)
Sets the yLine. |
static void | showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation, int runDirection, int arabicOptions) Shows a line of text. |
static void | showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation) Shows a line of text. |
void | updateFilledWidth(float w)
Replaces the filledWidth if greater than the existing one. |
boolean | zeroHeightElement()
Checks if the element has a height of 0. |
PdfContent
where the text will be written to.ColumnText
.Parameters: canvas the place where the text will be written to. Can be a template.
Paragraph
,
List
, PdfPTable
, Image
and
Graphic
.
It removes all the text placed with addText()
.
Parameters: element the Element
Phrase
to the current text array.
Will not have any effect if addElement() was called before.Parameters: phrase the text
Chunk
to the current text array.
Will not have any effect if addElement() was called before.Parameters: chunk the text
go()
will always return
NO_MORE_TEXT.
Each array element will contain a float[4]
representing
the line x = ax + b.
Parameters: cLine the column array
Returns: the converted array
org
.Parameters: org the original ColumnText
Returns: the duplicated
yLine
and the two
column bounds. It will set the lineStatus
appropriately.Returns: a float[2]
with the x coordinates of the intersection
yLine
and the column. It will
set the lineStatus
appropriately.Parameters: wall the column to intersect
Returns: the x coordinate of the intersection
yLine
,
the yLine-leading
and the two
column bounds. It will set the lineStatus
appropriately.Returns: a float[4]
with the x coordinates of the intersection
Returns: the alignment
Returns: the arabic shaping options
Returns: a PdfContentByte.
Returns: an array of PdfContentByte
Returns: the biggest descender value of the last line written
Returns: the extra space between paragraphs
Returns: the real width used by the largest line
Returns: the indent
Returns: the indent
Returns: the leading
Returns: the number of lines written
Returns: the leading
Returns: the indent
Returns: the run direction
Returns: the space/character extra spacing ratio
Parameters: phrase the Phrase
containing the line runDirection the run direction arabicOptions the options for the arabic shaping
Returns: the width of the line
Parameters: phrase the Phrase
containing the line
Returns: the width of the line
Returns: the yLine
go(false)
.Returns: returns the result of the operation. It can be NO_MORE_TEXT
and/or NO_MORE_COLUMN
Throws: DocumentException on error
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
Throws: DocumentException on error
Returns: the first line adjustment property.
Returns: true is the adjustment of the first line height is based on max ascender.
org
.Parameters: org the original ColumnText
Returns: itself
true
by default but can be changed if several objects are to be placed one
after the other in the same column calling go() several times.Parameters: adjustFirstLine true
to adjust the first line, false
otherwise
Parameters: alignment the alignment
Parameters: arabicOptions the arabic shaping options
Parameters: canvas
Parameters: canvases
float[]
with the line points [x1,y1,x2,y2,...].
The array must have at least 4 elements.Parameters: leftLine the left column bound rightLine the right column bound
Parameters: extraParagraphSpace the extra space between paragraphs
Parameters: filledWidth the real width used by the largest line
Parameters: indent the indent
Parameters: indent the indent
Parameters: leading the leading
Parameters: fixedLeading the fixed leading multipliedLeading the variable leading
Parameters: indent the indent
Parameters: runDirection the run direction
Parameters: phrase a Phrase
llx the lower left x corner lly the lower left y corner urx the upper right x corner ury the upper right y corner leading the leading alignment the column alignment
Parameters: llx the lower left x corner lly the lower left y corner urx the upper right x corner ury the upper right y corner leading the leading alignment the column alignment
Parameters: llx lly urx ury
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
Phrase
.
Anything added previously with addElement() is lost.Parameters: phrase the text
Parameters: use enable adjustment if true
Parameters: yLine the yLine
Parameters: canvas where the text is to be written to alignment the alignment. It is not influenced by the run direction phrase the Phrase
with the text x the x reference position y the y reference position rotation the rotation to be applied in degrees counterclockwise runDirection the run direction arabicOptions the options for the arabic shaping
Parameters: canvas where the text is to be written to alignment the alignment phrase the Phrase
with the text x the x reference position y the y reference position rotation the rotation to be applied in degrees counterclockwise
filledWidth
if greater than the existing one.Parameters: w the new filledWidth
if greater than the existing one
Returns: true or false
Since: 2.1.2