|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.lowagie.text.pdf.ColumnText
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.
Field Summary | |
protected int |
alignment
The column alignment. |
static int |
AR_COMPOSEDTASHKEEL
|
static int |
AR_LIG
|
static int |
AR_NOVOWEL
|
private 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 int |
currentChunkMarker
Marks the chunks to be eliminated when the line is written. |
protected float |
currentLeading
The leading for the current line. |
protected PdfChunk |
currentStandbyChunk
The chunk created by the splitting. |
protected float |
extraParagraphSpace
The extra space between paragraphs. |
protected float |
fixedLeading
The fixed text leading. |
protected float |
followingIndent
The following paragraph lines indent. |
static float |
GLOBAL_SPACE_CHAR_RATIO
|
protected float |
indent
The first paragraph line indent. |
private boolean |
lastWasNewline
|
protected ArrayList |
leftWall
The left column bound. |
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 int |
lineStatus
The line status when trying to fit a line to a column. |
private int |
linesWritten
Holds value of property linesWritten. |
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 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 int |
runDirection
|
private float |
spaceCharRatio
Holds value of property spaceCharRatio. |
protected String |
splittedChunkText
The chunk created by the splitting. |
protected float |
yLine
The current y line location. |
Constructor Summary | |
ColumnText(PdfContentByte canvas)
Creates a ColumnText . |
Method Summary | |
void |
addText(Chunk chunk)
Adds a Chunk to the current text array. |
void |
addText(Phrase phrase)
Adds a Phrase to the current text array. |
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. |
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. |
float |
getExtraParagraphSpace()
Sets the extra space between paragraphs. |
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. |
float |
getYLine()
Gets the yLine. |
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 |
setArabicOptions(int arabicOptions)
Sets the arabic shaping options. |
void |
setColumns(float[] leftLine,
float[] rightLine)
Sets the columns bounds. |
void |
setExtraParagraphSpace(float extraParagraphSpace)
Sets the extra space between paragraphs. |
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(float llx,
float lly,
float urx,
float ury,
float leading,
int alignment)
Simplified method for rectangular columns. |
void |
setSimpleColumn(Phrase phrase,
float llx,
float lly,
float urx,
float ury,
float leading,
int alignment)
Simplified method for rectangular columns. |
void |
setSpaceCharRatio(float spaceCharRatio)
Sets the ratio between the extra word spacing and the extra character spacing when the text is fully justified. |
void |
setYLine(float yLine)
Sets the yLine. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int AR_NOVOWEL
public static final int AR_COMPOSEDTASHKEEL
public static final int AR_LIG
protected int runDirection
public static final float GLOBAL_SPACE_CHAR_RATIO
public static final int NO_MORE_TEXT
public static final int NO_MORE_COLUMN
protected static final int LINE_STATUS_OK
protected static final int LINE_STATUS_OFFLIMITS
protected static final int LINE_STATUS_NOLINE
protected float maxY
protected float minY
protected int alignment
protected ArrayList leftWall
protected ArrayList rightWall
protected BidiLine bidiLine
protected float yLine
protected float currentLeading
protected float fixedLeading
protected float multipliedLeading
protected PdfContentByte canvas
PdfContent
where the text will be written to.
protected int lineStatus
protected float indent
protected float followingIndent
protected float rightIndent
protected float extraParagraphSpace
protected int currentChunkMarker
protected PdfChunk currentStandbyChunk
protected String splittedChunkText
protected float rectangularWidth
private float spaceCharRatio
private boolean lastWasNewline
private int linesWritten
private int arabicOptions
Constructor Detail |
public ColumnText(PdfContentByte canvas)
ColumnText
.
canvas
- the place where the text will be written to. Can
be a template.Method Detail |
public void addText(Phrase phrase)
Phrase
to the current text array.
phrase
- the textpublic void addText(Chunk chunk)
Chunk
to the current text array.
chunk
- the textprotected ArrayList convertColumn(float[] cLine)
Each array element will contain a float[4]
representing
the line x = ax + b.
cLine
- the column array
protected float findLimitsPoint(ArrayList wall)
yLine
and the column. It will
set the lineStatus
apropriatly.
wall
- the column to intersect
protected float[] findLimitsOneLine()
yLine
and the two
column bounds. It will set the lineStatus
apropriatly.
float[2]
with the x coordinates of the intersectionprotected float[] findLimitsTwoLines()
yLine
,
the yLine-leading
and the two
column bounds. It will set the lineStatus
apropriatly.
float[4]
with the x coordinates of the intersectionpublic void setColumns(float[] leftLine, float[] rightLine)
float[]
with the line points [x1,y1,x2,y2,...].
The array must have at least 4 elements.
leftLine
- the left column boundrightLine
- the right column boundpublic void setSimpleColumn(Phrase phrase, float llx, float lly, float urx, float ury, float leading, int alignment)
phrase
- a Phrase
llx
- the lower left x cornerlly
- the lower left y cornerurx
- the upper right x cornerury
- the upper right y cornerleading
- the leadingalignment
- the column alignmentpublic void setSimpleColumn(float llx, float lly, float urx, float ury, float leading, int alignment)
llx
- the lower left x cornerlly
- the lower left y cornerurx
- the upper right x cornerury
- the upper right y cornerleading
- the leadingalignment
- the column alignmentpublic void setLeading(float leading)
leading
- the leadingpublic void setLeading(float fixedLeading, float multipliedLeading)
fixedLeading
- the fixed leadingmultipliedLeading
- the variable leadingpublic float getLeading()
public float getMultipliedLeading()
public void setYLine(float yLine)
yLine
- the yLinepublic float getYLine()
public void setAlignment(int alignment)
alignment
- the alignmentpublic int getAlignment()
public void setIndent(float indent)
indent
- the indentpublic float getIndent()
public void setFollowingIndent(float indent)
indent
- the indentpublic float getFollowingIndent()
public void setRightIndent(float indent)
indent
- the indentpublic float getRightIndent()
public int go() throws DocumentException
go(false)
.
NO_MORE_TEXT
and/or NO_MORE_COLUMN
DocumentException
- on errorpublic int go(boolean simulate) throws DocumentException
simulate
- true
to simulate the writting to the document
NO_MORE_TEXT
and/or NO_MORE_COLUMN
DocumentException
- on errorpublic float getExtraParagraphSpace()
public void setExtraParagraphSpace(float extraParagraphSpace)
extraParagraphSpace
- the extra space between paragraphspublic void clearChunks()
go()
will always return
NO_MORE_TEXT.
public float getSpaceCharRatio()
public void setSpaceCharRatio(float spaceCharRatio)
spaceCharRatio
times more than extra character spacing.
If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO
then the extra character spacing
will be zero.
spaceCharRatio
- the ratio between the extra word spacing and the extra character spacingpublic void setRunDirection(int runDirection)
runDirection
- the run directionpublic int getRunDirection()
public int getLinesWritten()
public int getArabicOptions()
public void setArabicOptions(int arabicOptions)
arabicOptions
- the arabic shaping options
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |