Package org.apache.fop.pdf
Class PDFTextUtil
java.lang.Object
org.apache.fop.pdf.PDFTextUtil
- Direct Known Subclasses:
PDFTextUtil
Utility class for generating PDF text objects. It needs to be subclassed to add writing
functionality (see
write(String)
).-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
PDF text rendering mode: Add text to path for clippingstatic final int
PDF text rendering mode: Fill textstatic final int
PDF text rendering mode: Fill text and add to path for clippingstatic final int
PDF text rendering mode: Fill, then stroke textstatic final int
PDF text rendering mode: Fill, then stroke text and add to path for clippingstatic final int
PDF text rendering mode: Neither fill nor stroke text (invisible)static final int
PDF text rendering mode: Stroke textstatic final int
PDF text rendering mode: Stroke text and add to path for clipping -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
adjustGlyphTJ
(double adjust) Writes a glyph adjust value to the "TJ-Buffer".void
Called when a new text object should be started.void
Creates a "cm" command.void
Called when a text object should be ended.protected void
Resets the state fields.boolean
Indicates whether we are in a text object or not.void
setTextRenderingMode
(boolean fill, boolean stroke, boolean addToClip) Sets the text rendering mode.void
setTextRenderingMode
(int mode) Sets the text rendering mode.void
Updates the current font.protected abstract void
Writes PDF code.protected abstract void
write
(StringBuffer code) Writes PDF code.void
writeTd
(double x, double y) Writes a "Td" command with specified x and y coordinates.void
writeTextMatrix
(AffineTransform localTransform) Writes a "Tm" command, setting a new text transformation matrix.void
Writes a "Tf" command, setting a new current font.void
writeTj
(int ch, boolean multibyte, boolean cid) Writes a "Tj" command with specified character code.void
writeTJ()
Writes a "TJ" command, writing out the accumulated buffer with the characters and glyph positioning values.void
writeTJMappedChar
(char ch) Writes a char to the "TJ-Buffer".void
writeTJMappedCodePoint
(int codePoint) Writes a codepoint to the "TJ-Buffer".
-
Field Details
-
TR_FILL
public static final int TR_FILLPDF text rendering mode: Fill text- See Also:
-
TR_STROKE
public static final int TR_STROKEPDF text rendering mode: Stroke text- See Also:
-
TR_FILL_STROKE
public static final int TR_FILL_STROKEPDF text rendering mode: Fill, then stroke text- See Also:
-
TR_INVISIBLE
public static final int TR_INVISIBLEPDF text rendering mode: Neither fill nor stroke text (invisible)- See Also:
-
TR_FILL_CLIP
public static final int TR_FILL_CLIPPDF text rendering mode: Fill text and add to path for clipping- See Also:
-
TR_STROKE_CLIP
public static final int TR_STROKE_CLIPPDF text rendering mode: Stroke text and add to path for clipping- See Also:
-
TR_FILL_STROKE_CLIP
public static final int TR_FILL_STROKE_CLIPPDF text rendering mode: Fill, then stroke text and add to path for clipping- See Also:
-
TR_CLIP
public static final int TR_CLIPPDF text rendering mode: Add text to path for clipping- See Also:
-
-
Constructor Details
-
PDFTextUtil
public PDFTextUtil()Main constructor.
-
-
Method Details
-
write
Writes PDF code.- Parameters:
code
- the PDF code to write
-
write
Writes PDF code.- Parameters:
code
- the PDF code to write
-
isInTextObject
public boolean isInTextObject()Indicates whether we are in a text object or not.- Returns:
- true if we are in a text object
-
beginTextObject
public void beginTextObject()Called when a new text object should be started. Be sure to call setFont() before issuing any text painting commands. -
endTextObject
public void endTextObject()Called when a text object should be ended. -
initValues
protected void initValues()Resets the state fields. -
concatMatrix
Creates a "cm" command.- Parameters:
at
- the transformation matrix
-
writeTf
Writes a "Tf" command, setting a new current font.- Parameters:
fontName
- the name of the font to selectfontSize
- the font size (in points)
-
updateTf
Updates the current font. This method only writes a "Tf" if the current font changes.- Parameters:
fontName
- the name of the font to selectfontSize
- the font size (in points)multiByte
- true indicates the font is a multi-byte font, false means single-byte
-
setTextRenderingMode
public void setTextRenderingMode(int mode) Sets the text rendering mode.- Parameters:
mode
- the rendering mode (value 0 to 7, see PDF Spec, constants: TR_*)
-
setTextRenderingMode
public void setTextRenderingMode(boolean fill, boolean stroke, boolean addToClip) Sets the text rendering mode.- Parameters:
fill
- true if the text should be filledstroke
- true if the text should be strokedaddToClip
- true if the path should be added for clipping
-
writeTextMatrix
Writes a "Tm" command, setting a new text transformation matrix.- Parameters:
localTransform
- the new text transformation matrix
-
writeTJMappedChar
public void writeTJMappedChar(char ch) Writes a char to the "TJ-Buffer".- Parameters:
ch
- the mapped character (code point/character code)
-
writeTJMappedCodePoint
public void writeTJMappedCodePoint(int codePoint) Writes a codepoint to the "TJ-Buffer".- Parameters:
codePoint
- the mapped character (code point/character code)
-
adjustGlyphTJ
public void adjustGlyphTJ(double adjust) Writes a glyph adjust value to the "TJ-Buffer".Assumes the following:
- if buffer is currently empty, then this is the start of the array object that encodes the adjustment and character values, and, therfore, a LEFT SQUARE BRACKET '[' must be prepended; and
- otherwise (the buffer is not empty), then the last element written to the buffer was a mapped character, and, therefore, a terminating '>' or ')' followed by a space must be appended to the buffer prior to appending the adjustment value.
- Parameters:
adjust
- the glyph adjust value in thousands of text unit space.
-
writeTJ
public void writeTJ()Writes a "TJ" command, writing out the accumulated buffer with the characters and glyph positioning values. The buffer is reset afterwards. -
writeTd
public void writeTd(double x, double y) Writes a "Td" command with specified x and y coordinates.- Parameters:
x
- coordinatey
- coordinate
-
writeTj
public void writeTj(int ch, boolean multibyte, boolean cid) Writes a "Tj" command with specified character code.- Parameters:
ch
- character code to write
-