Package org.apache.fop.svg
Class NativeTextPainter
- java.lang.Object
-
- org.apache.batik.bridge.BasicTextPainter
-
- org.apache.batik.bridge.StrokingTextPainter
-
- org.apache.fop.svg.NativeTextPainter
-
- All Implemented Interfaces:
org.apache.batik.bridge.TextPainter
- Direct Known Subclasses:
PDFTextPainter
,PSTextPainter
public abstract class NativeTextPainter extends org.apache.batik.bridge.StrokingTextPainter
Abstract base class for text painters that use specialized text commands native to an output format to render text.
-
-
Field Summary
Fields Modifier and Type Field Description private static org.apache.batik.bridge.TextLayoutFactory
COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY
private static boolean
DEBUG
protected Font
font
protected org.apache.batik.bridge.FontFamilyResolver
fontFamilyResolver
protected FontInfo
fontInfo
the font collectionprotected static org.apache.commons.logging.Log
log
the logger for this classprotected org.apache.batik.gvt.text.TextPaintInfo
tpi
-
Fields inherited from class org.apache.batik.bridge.StrokingTextPainter
ADJUST_ALL, ADJUST_SPACING, ALT_GLYPH_HANDLER, ANCHOR_TYPE, BIDI_LEVEL, FLOW_PARAGRAPH, FLOW_REGIONS, GVT_FONT, GVT_FONTS, PAINT_INFO, singleton, TEXT_COMPOUND_ID, TEXTPATH, WRITING_MODE, WRITING_MODE_RTL, WRITING_MODE_TTB, XPOS, YPOS
-
-
Constructor Summary
Constructors Constructor Description NativeTextPainter(FontInfo fontInfo)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
beginTextObject()
protected abstract void
clip(java.awt.Shape clip)
protected java.lang.CharSequence
collectCharacters(java.text.AttributedCharacterIterator runaci)
Collects all characters from anAttributedCharacterIterator
.java.util.List
computeTextRuns(org.apache.batik.bridge.TextNode node, java.text.AttributedCharacterIterator nodeACI, java.text.AttributedCharacterIterator[] chunkACIs)
protected abstract void
endTextObject()
protected org.apache.batik.bridge.FontFamilyResolver
getFontFamilyResolver()
protected org.apache.batik.bridge.TextLayoutFactory
getTextLayoutFactory()
protected java.util.Set
getTextRunBoundaryAttributes()
protected abstract boolean
isSupported(java.awt.Graphics2D g2d)
Indicates whether the givenGraphics2D
instance if compatible with this text painter implementation.protected void
logCharacter(char ch, org.apache.batik.bridge.TextSpanLayout layout, int index, boolean visibleChar)
protected void
logTextRun(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun)
protected void
paintTextRun(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun, java.awt.Graphics2D g2d)
Paints a single text run.protected void
paintTextRuns(java.util.List textRuns, java.awt.Graphics2D g2d)
protected abstract void
positionGlyph(java.awt.geom.Point2D prevPos, java.awt.geom.Point2D glyphPos, boolean reposition)
protected abstract void
preparePainting(java.awt.Graphics2D g2d)
private java.util.List
reorderRuns(java.util.List runs, int level)
protected java.util.List
reorderTextRuns(org.apache.batik.bridge.StrokingTextPainter.TextChunk chunk, java.util.List runs)
protected abstract void
restoreGraphicsState()
private void
reverseGlyphs(java.util.List runs, boolean mirror)
private java.util.List
reverseRuns(java.util.List runs, int s, int e)
protected abstract void
saveGraphicsState()
protected abstract void
setInitialTransform(java.awt.geom.AffineTransform transform)
protected abstract void
writeGlyph(char glyph, java.awt.geom.AffineTransform transform)
protected void
writeGlyphs(FOPGVTGlyphVector gv, java.awt.geom.GeneralPath debugShapes)
-
Methods inherited from class org.apache.batik.bridge.StrokingTextPainter
adjustChunkOffsets, computeTextRuns, createModifiedACIForFontMatching, getBounds2D, getDecorationOutline, getDecorationStrokeOutline, getHighlightShape, getInstance, getMark, getOutline, getSelected, getTextChunk, getTextChunkACIs, getTextRuns, hitTest, paint, paintDecorations, printAttrs, selectFirst, selectLast
-
-
-
-
Field Detail
-
log
protected static final org.apache.commons.logging.Log log
the logger for this class
-
DEBUG
private static final boolean DEBUG
- See Also:
- Constant Field Values
-
fontInfo
protected final FontInfo fontInfo
the font collection
-
fontFamilyResolver
protected final org.apache.batik.bridge.FontFamilyResolver fontFamilyResolver
-
font
protected Font font
-
tpi
protected org.apache.batik.gvt.text.TextPaintInfo tpi
-
COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY
private static final org.apache.batik.bridge.TextLayoutFactory COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY
-
-
Constructor Detail
-
NativeTextPainter
public NativeTextPainter(FontInfo fontInfo)
Creates a new instance.- Parameters:
fontInfo
- the font collection
-
-
Method Detail
-
isSupported
protected abstract boolean isSupported(java.awt.Graphics2D g2d)
Indicates whether the givenGraphics2D
instance if compatible with this text painter implementation.- Parameters:
g2d
- the instance to check- Returns:
- true if the instance is compatible.
-
paintTextRun
protected final void paintTextRun(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun, java.awt.Graphics2D g2d) throws java.io.IOException
Paints a single text run.- Parameters:
textRun
- the text rung2d
- the target Graphics2D instance- Throws:
java.io.IOException
- if an I/O error occurs while rendering the text
-
writeGlyphs
protected void writeGlyphs(FOPGVTGlyphVector gv, java.awt.geom.GeneralPath debugShapes) throws java.io.IOException
- Throws:
java.io.IOException
-
paintTextRuns
protected void paintTextRuns(java.util.List textRuns, java.awt.Graphics2D g2d)
- Overrides:
paintTextRuns
in classorg.apache.batik.bridge.StrokingTextPainter
-
collectCharacters
protected java.lang.CharSequence collectCharacters(java.text.AttributedCharacterIterator runaci)
Collects all characters from anAttributedCharacterIterator
.- Parameters:
runaci
- the character iterator- Returns:
- the characters
-
computeTextRuns
public java.util.List computeTextRuns(org.apache.batik.bridge.TextNode node, java.text.AttributedCharacterIterator nodeACI, java.text.AttributedCharacterIterator[] chunkACIs)
- Overrides:
computeTextRuns
in classorg.apache.batik.bridge.StrokingTextPainter
-
getTextRunBoundaryAttributes
protected java.util.Set getTextRunBoundaryAttributes()
- Overrides:
getTextRunBoundaryAttributes
in classorg.apache.batik.bridge.StrokingTextPainter
-
reorderTextRuns
protected java.util.List reorderTextRuns(org.apache.batik.bridge.StrokingTextPainter.TextChunk chunk, java.util.List runs)
- Overrides:
reorderTextRuns
in classorg.apache.batik.bridge.StrokingTextPainter
-
reorderRuns
private java.util.List reorderRuns(java.util.List runs, int level)
-
reverseRuns
private java.util.List reverseRuns(java.util.List runs, int s, int e)
-
reverseGlyphs
private void reverseGlyphs(java.util.List runs, boolean mirror)
-
preparePainting
protected abstract void preparePainting(java.awt.Graphics2D g2d)
-
saveGraphicsState
protected abstract void saveGraphicsState() throws java.io.IOException
- Throws:
java.io.IOException
-
restoreGraphicsState
protected abstract void restoreGraphicsState() throws java.io.IOException
- Throws:
java.io.IOException
-
setInitialTransform
protected abstract void setInitialTransform(java.awt.geom.AffineTransform transform) throws java.io.IOException
- Throws:
java.io.IOException
-
clip
protected abstract void clip(java.awt.Shape clip) throws java.io.IOException
- Throws:
java.io.IOException
-
beginTextObject
protected abstract void beginTextObject() throws java.io.IOException
- Throws:
java.io.IOException
-
endTextObject
protected abstract void endTextObject() throws java.io.IOException
- Throws:
java.io.IOException
-
positionGlyph
protected abstract void positionGlyph(java.awt.geom.Point2D prevPos, java.awt.geom.Point2D glyphPos, boolean reposition)
-
writeGlyph
protected abstract void writeGlyph(char glyph, java.awt.geom.AffineTransform transform) throws java.io.IOException
- Throws:
java.io.IOException
-
logTextRun
protected final void logTextRun(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun)
-
logCharacter
protected final void logCharacter(char ch, org.apache.batik.bridge.TextSpanLayout layout, int index, boolean visibleChar)
- Parameters:
ch
- a characterlayout
- a text span layoutindex
- an indexvisibleChar
- visible character flag
-
getFontFamilyResolver
protected org.apache.batik.bridge.FontFamilyResolver getFontFamilyResolver()
- Overrides:
getFontFamilyResolver
in classorg.apache.batik.bridge.StrokingTextPainter
-
getTextLayoutFactory
protected org.apache.batik.bridge.TextLayoutFactory getTextLayoutFactory()
- Overrides:
getTextLayoutFactory
in classorg.apache.batik.bridge.BasicTextPainter
-
-