| java.lang.Object com.lowagie.text.pdf.ColumnText
ColumnText | public class ColumnText (Code) | | Formats text in a columnwise form. The text is bound
on the left and on the right by a sequence of lines. This allows the column
to have any shape, not only rectangular.
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.
author: Paulo Soares (psoares@consiste.pt) |
Constructor Summary | |
public | ColumnText(PdfContentByte canvas) Creates a ColumnText .
Parameters: canvas - the place where the text will be written to. |
Method Summary | |
public void | addElement(Element element) Adds an element. | public void | addText(Phrase phrase) Adds a Phrase to the current text array. | public void | addText(Chunk chunk) Adds a Chunk to the current text array. | public 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. | public 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. | public int | getAlignment() Gets the alignment. | public int | getArabicOptions() Gets the arabic shaping options. | public PdfContentByte | getCanvas() Gets the canvas. | public PdfContentByte[] | getCanvases() Gets the canvases. | public float | getDescender() Gets the biggest descender value of the last line written. | public float | getExtraParagraphSpace() Sets the extra space between paragraphs. | public float | getFilledWidth() Gets the real width used by the largest line. | public float | getFollowingIndent() Gets the following paragraph lines indent. | public float | getIndent() Gets the first paragraph line indent. | public float | getLeading() | public int | getLinesWritten() Gets the number of lines written. | public float | getMultipliedLeading() | public float | getRightIndent() Gets the right paragraph lines indent. | public int | getRunDirection() Gets the run direction. | public float | getSpaceCharRatio() Gets the space/character extra spacing ratio for
fully justified text. | public static float | getWidth(Phrase phrase, int runDirection, int arabicOptions) Gets the width that the line will occupy after writing. | public static float | getWidth(Phrase phrase) Gets the width that the line will occupy after writing. | public float | getYLine() Gets the yLine. | public int | go() Outputs the lines to the document. | public int | go(boolean simulate) Outputs the lines to the document. | protected int | goComposite(boolean simulate) | public static boolean | hasMoreText(int status) Checks the status variable and looks if there's still some text. | public boolean | isUseAscender() Checks if UseAscender is enabled/disabled. | public ColumnText | setACopy(ColumnText org) Makes this instance an independent copy of org . | public void | setAlignment(int alignment) Sets the alignment. | public void | setArabicOptions(int arabicOptions) Sets the arabic shaping options. | public void | setCanvas(PdfContentByte canvas) Sets the canvas. | public void | setCanvases(PdfContentByte[] canvases) Sets the canvases. | public void | setColumns(float leftLine, float rightLine) Sets the columns bounds. | public void | setExtraParagraphSpace(float extraParagraphSpace) Sets the extra space between paragraphs. | public void | setFilledWidth(float filledWidth) Sets the real width used by the largest line. | public void | setFollowingIndent(float indent) Sets the following paragraph lines indent. | public void | setIndent(float indent) Sets the first paragraph line indent. | public void | setLeading(float leading) | public void | setLeading(float fixedLeading, float multipliedLeading) Sets the leading fixed and variable. | public void | setRightIndent(float indent) Sets the right paragraph lines indent. | public void | setRunDirection(int runDirection) Sets the run direction. | public void | setSimpleColumn(Phrase phrase, float llx, float lly, float urx, float ury, float leading, int alignment) Simplified method for rectangular columns. | public void | setSimpleColumn(float llx, float lly, float urx, float ury, float leading, int alignment) Simplified method for rectangular columns. | public void | setSimpleColumn(float llx, float lly, float urx, float ury) Simplified method for rectangular columns. | protected void | setSimpleVars(ColumnText org) | public void | setSpaceCharRatio(float spaceCharRatio) Sets the ratio between the extra word spacing and the extra character spacing
when the text is fully justified. | public void | setText(Phrase phrase) Replaces the current text array with this Phrase . | public void | setUseAscender(boolean use) Enables/Disables adjustment of first line height based on max ascender. | public void | setYLine(float yLine) Sets the yLine. | public static void | showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation, int runDirection, int arabicOptions) Shows a line of text. | public static void | showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation) Shows a line of text. | public void | updateFilledWidth(float w) Replaces the filledWidth if greater than the existing one. |
AR_COMPOSEDTASHKEEL | final public static int AR_COMPOSEDTASHKEEL(Code) | | Compose the tashkeel in the ligatures.
|
AR_LIG | final public static int AR_LIG(Code) | | Do some extra double ligatures.
|
AR_NOVOWEL | final public static int AR_NOVOWEL(Code) | | Eliminate the arabic vowels
|
DIGITS_AN2EN | final public static int DIGITS_AN2EN(Code) | | Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039).
|
DIGITS_EN2AN | final public static int DIGITS_EN2AN(Code) | | Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits.
|
DIGITS_EN2AN_INIT_AL | final public static int DIGITS_EN2AN_INIT_AL(Code) | | 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).
The initial state at the start of the text is assumed to be an Arabic,
letter, so European digits at the start of the text will change.
Compare to DIGITS_ALEN2AN_INT_LR.
|
DIGITS_EN2AN_INIT_LR | final public static int DIGITS_EN2AN_INIT_LR(Code) | | 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).
The initial state at the start of the text is assumed to be not an Arabic,
letter, so European digits at the start of the text will not change.
Compare to DIGITS_ALEN2AN_INIT_AL.
|
DIGIT_TYPE_AN | final public static int DIGIT_TYPE_AN(Code) | | Digit type option: Use Arabic-Indic digits (U+0660...U+0669).
|
DIGIT_TYPE_AN_EXTENDED | final public static int DIGIT_TYPE_AN_EXTENDED(Code) | | Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9).
|
GLOBAL_SPACE_CHAR_RATIO | final public static float GLOBAL_SPACE_CHAR_RATIO(Code) | | the space char ratio
|
LINE_STATUS_NOLINE | final protected static int LINE_STATUS_NOLINE(Code) | | The line cannot fit this column position.
|
LINE_STATUS_OFFLIMITS | final protected static int LINE_STATUS_OFFLIMITS(Code) | | The line is out the column limits.
|
LINE_STATUS_OK | final protected static int LINE_STATUS_OK(Code) | | The column is valid.
|
NO_MORE_COLUMN | final public static int NO_MORE_COLUMN(Code) | | Signals that there is no more column.
|
NO_MORE_TEXT | final public static int NO_MORE_TEXT(Code) | | Signals that there is no more text available.
|
START_COLUMN | final public static int START_COLUMN(Code) | | Initial value of the status.
|
alignment | protected int alignment(Code) | | The column alignment. Default is left alignment.
|
bidiLine | protected BidiLine bidiLine(Code) | | The chunks that form the text.
|
composite | protected boolean composite(Code) | | |
currentLeading | protected float currentLeading(Code) | | The leading for the current line.
|
descender | protected float descender(Code) | | |
extraParagraphSpace | protected float extraParagraphSpace(Code) | | The extra space between paragraphs.
|
fixedLeading | protected float fixedLeading(Code) | | The fixed text leading.
|
followingIndent | protected float followingIndent(Code) | | The following paragraph lines indent.
|
indent | protected float indent(Code) | | The first paragraph line indent.
|
leftX | protected float leftX(Code) | | |
lineStatus | protected int lineStatus(Code) | | The line status when trying to fit a line to a column.
|
listIdx | protected int listIdx(Code) | | |
maxY | protected float maxY(Code) | | Upper bound of the column.
|
minY | protected float minY(Code) | | Lower bound of the column.
|
multipliedLeading | protected float multipliedLeading(Code) | | The text leading that is multiplied by the biggest font size in the line.
|
rectangularMode | protected boolean rectangularMode(Code) | | |
rectangularWidth | protected float rectangularWidth(Code) | | The width of the line when the column is defined as a simple rectangle.
|
rightIndent | protected float rightIndent(Code) | | The right paragraph lines indent.
|
rightX | protected float rightX(Code) | | |
runDirection | protected int runDirection(Code) | | |
yLine | protected float yLine(Code) | | The current y line location. Text will be written at this line minus the leading.
|
ColumnText | public ColumnText(PdfContentByte canvas)(Code) | | Creates a ColumnText .
Parameters: canvas - the place where the text will be written to. Canbe a template. |
addElement | public void addElement(Element element)(Code) | | Adds an element. Elements supported are Paragraph ,
List , PdfPTable , Image and
Graphic .
It removes all the text placed with addText() .
Parameters: element - the Element |
addText | public void addText(Phrase phrase)(Code) | | Adds a Phrase to the current text array.
Will not have any effect if addElement() was called before.
Parameters: phrase - the text |
addText | public void addText(Chunk chunk)(Code) | | Adds a Chunk to the current text array.
Will not have any effect if addElement() was called before.
Parameters: chunk - the text |
clearChunks | public void clearChunks()(Code) | | Clears the chunk array. A call to go() will always return
NO_MORE_TEXT.
|
convertColumn | protected ArrayList convertColumn(float cLine)(Code) | | Converts a sequence of lines representing one of the column bounds into
an internal format.
Each array element will contain a float[4] representing
the line x = ax + b.
Parameters: cLine - the column array the converted array |
duplicate | public static ColumnText duplicate(ColumnText org)(Code) | | Creates an independent duplicated of the instance org .
Parameters: org - the original ColumnText the duplicated |
findLimitsOneLine | protected float[] findLimitsOneLine()(Code) | | Finds the intersection between the yLine and the two
column bounds. It will set the lineStatus apropriatly.
a float[2] with the x coordinates of the intersection |
findLimitsPoint | protected float findLimitsPoint(ArrayList wall)(Code) | | Finds the intersection between the yLine and the column. It will
set the lineStatus apropriatly.
Parameters: wall - the column to intersect the x coordinate of the intersection |
findLimitsTwoLines | protected float[] findLimitsTwoLines()(Code) | | Finds the intersection between the yLine ,
the yLine-leading and the two
column bounds. It will set the lineStatus apropriatly.
a float[4] with the x coordinates of the intersection |
getAlignment | public int getAlignment()(Code) | | Gets the alignment.
the alignment |
getArabicOptions | public int getArabicOptions()(Code) | | Gets the arabic shaping options.
the arabic shaping options |
getCanvases | public PdfContentByte[] getCanvases()(Code) | | Gets the canvases.
an array of PdfContentByte |
getDescender | public float getDescender()(Code) | | Gets the biggest descender value of the last line written.
the biggest descender value of the last line written |
getExtraParagraphSpace | public float getExtraParagraphSpace()(Code) | | Sets the extra space between paragraphs.
the extra space between paragraphs |
getFilledWidth | public float getFilledWidth()(Code) | | Gets the real width used by the largest line.
the real width used by the largest line |
getFollowingIndent | public float getFollowingIndent()(Code) | | Gets the following paragraph lines indent.
the indent |
getIndent | public float getIndent()(Code) | | Gets the first paragraph line indent.
the indent |
getLeading | public float getLeading()(Code) | | Gets the fixed leading
the leading |
getLinesWritten | public int getLinesWritten()(Code) | | Gets the number of lines written.
the number of lines written |
getMultipliedLeading | public float getMultipliedLeading()(Code) | | Gets the variable leading
the leading |
getRightIndent | public float getRightIndent()(Code) | | Gets the right paragraph lines indent.
the indent |
getRunDirection | public int getRunDirection()(Code) | | Gets the run direction.
the run direction |
getSpaceCharRatio | public float getSpaceCharRatio()(Code) | | Gets the space/character extra spacing ratio for
fully justified text.
the space/character extra spacing ratio |
getWidth | public static float getWidth(Phrase phrase, int runDirection, int arabicOptions)(Code) | | Gets the width that the line will occupy after writing.
Only the width of the first line is returned.
Parameters: phrase - the Phrase containing the line Parameters: runDirection - the run direction Parameters: arabicOptions - the options for the arabic shaping the width of the line |
getWidth | public static float getWidth(Phrase phrase)(Code) | | Gets the width that the line will occupy after writing.
Only the width of the first line is returned.
Parameters: phrase - the Phrase containing the line the width of the line |
getYLine | public float getYLine()(Code) | | Gets the yLine.
the yLine |
go | public int go() throws DocumentException(Code) | | Outputs the lines to the document. It is equivalent to go(false) .
returns the result of the operation. It can be NO_MORE_TEXT and/or NO_MORE_COLUMN throws: DocumentException - on error |
go | public int go(boolean simulate) throws DocumentException(Code) | | Outputs the lines to the document. The output can be simulated.
Parameters: simulate - true to simulate the writting to the document returns the result of the operation. It can be NO_MORE_TEXT and/or NO_MORE_COLUMN throws: DocumentException - on error |
hasMoreText | public static boolean hasMoreText(int status)(Code) | | Checks the status variable and looks if there's still some text.
|
isUseAscender | public boolean isUseAscender()(Code) | | Checks if UseAscender is enabled/disabled.
true is the adjustment of the first line height is based on max ascender. |
setACopy | public ColumnText setACopy(ColumnText org)(Code) | | Makes this instance an independent copy of org .
Parameters: org - the original ColumnText itself |
setAlignment | public void setAlignment(int alignment)(Code) | | Sets the alignment.
Parameters: alignment - the alignment |
setArabicOptions | public void setArabicOptions(int arabicOptions)(Code) | | Sets the arabic shaping options. The option can be AR_NOVOWEL,
AR_COMPOSEDTASHKEEL and AR_LIG.
Parameters: arabicOptions - the arabic shaping options |
setCanvases | public void setCanvases(PdfContentByte[] canvases)(Code) | | Sets the canvases.
Parameters: canvases - |
setColumns | public void setColumns(float leftLine, float rightLine)(Code) | | Sets the columns bounds. Each column bound is described by a
float[] with the line points [x1,y1,x2,y2,...].
The array must have at least 4 elements.
Parameters: leftLine - the left column bound Parameters: rightLine - the right column bound |
setExtraParagraphSpace | public void setExtraParagraphSpace(float extraParagraphSpace)(Code) | | Sets the extra space between paragraphs.
Parameters: extraParagraphSpace - the extra space between paragraphs |
setFilledWidth | public void setFilledWidth(float filledWidth)(Code) | | Sets the real width used by the largest line. Only used to set it
to zero to start another measurement.
Parameters: filledWidth - the real width used by the largest line |
setFollowingIndent | public void setFollowingIndent(float indent)(Code) | | Sets the following paragraph lines indent.
Parameters: indent - the indent |
setIndent | public void setIndent(float indent)(Code) | | Sets the first paragraph line indent.
Parameters: indent - the indent |
setLeading | public void setLeading(float leading)(Code) | | Sets the leading to fixed
Parameters: leading - the leading |
setLeading | public void setLeading(float fixedLeading, float multipliedLeading)(Code) | | Sets the leading fixed and variable. The resultant leading will be
fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the
size of the bigest font in the line.
Parameters: fixedLeading - the fixed leading Parameters: multipliedLeading - the variable leading |
setRightIndent | public void setRightIndent(float indent)(Code) | | Sets the right paragraph lines indent.
Parameters: indent - the indent |
setRunDirection | public void setRunDirection(int runDirection)(Code) | | Sets the run direction.
Parameters: runDirection - the run direction |
setSimpleColumn | public void setSimpleColumn(Phrase phrase, float llx, float lly, float urx, float ury, float leading, int alignment)(Code) | | Simplified method for rectangular columns.
Parameters: phrase - a Phrase Parameters: llx - the lower left x corner Parameters: lly - the lower left y corner Parameters: urx - the upper right x corner Parameters: ury - the upper right y corner Parameters: leading - the leading Parameters: alignment - the column alignment |
setSimpleColumn | public void setSimpleColumn(float llx, float lly, float urx, float ury, float leading, int alignment)(Code) | | Simplified method for rectangular columns.
Parameters: llx - the lower left x corner Parameters: lly - the lower left y corner Parameters: urx - the upper right x corner Parameters: ury - the upper right y corner Parameters: leading - the leading Parameters: alignment - the column alignment |
setSimpleColumn | public void setSimpleColumn(float llx, float lly, float urx, float ury)(Code) | | Simplified method for rectangular columns.
Parameters: llx - Parameters: lly - Parameters: urx - Parameters: ury - |
setSpaceCharRatio | public void setSpaceCharRatio(float spaceCharRatio)(Code) | | 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 |
setText | public void setText(Phrase phrase)(Code) | | Replaces the current text array with this Phrase .
Anything added previously with addElement() is lost.
Parameters: phrase - the text |
setUseAscender | public void setUseAscender(boolean use)(Code) | | Enables/Disables adjustment of first line height based on max ascender.
Parameters: use - enable adjustment if true |
setYLine | public void setYLine(float yLine)(Code) | | Sets the yLine. The line will be written to yLine-leading.
Parameters: yLine - the yLine |
showTextAligned | public static void showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation, int runDirection, int arabicOptions)(Code) | | Shows a line of text. Only the first line is written.
Parameters: canvas - where the text is to be written to Parameters: alignment - the alignment. It is not influenced by the run direction Parameters: phrase - the Phrase with the text Parameters: x - the x reference position Parameters: y - the y reference position Parameters: rotation - the rotation to be applied in degrees counterclockwise Parameters: runDirection - the run direction Parameters: arabicOptions - the options for the arabic shaping |
showTextAligned | public static void showTextAligned(PdfContentByte canvas, int alignment, Phrase phrase, float x, float y, float rotation)(Code) | | Shows a line of text. Only the first line is written.
Parameters: canvas - where the text is to be written to Parameters: alignment - the alignment Parameters: phrase - the Phrase with the text Parameters: x - the x reference position Parameters: y - the y reference position Parameters: rotation - the rotation to be applied in degrees counterclockwise |
updateFilledWidth | public void updateFilledWidth(float w)(Code) | | Replaces the filledWidth if greater than the existing one.
Parameters: w - the new filledWidth if greater than the existing one |
|
|