Package org.apache.fop.svg
Class AbstractFOPTextPainter
java.lang.Object
org.apache.fop.svg.AbstractFOPTextPainter
- All Implemented Interfaces:
org.apache.batik.bridge.TextPainter
- Direct Known Subclasses:
AFPTextPainter
public abstract class AbstractFOPTextPainter
extends Object
implements org.apache.batik.bridge.TextPainter
Renders the attributed character iterator of a
TextNode
.
This class draws the text directly into the Graphics2D so that
the text is not drawn using shapes.
If the text is simple enough to draw then it sets the font and calls
drawString. If the text is complex or the cannot be translated
into a simple drawString the StrokingTextPainter is used instead.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.commons.logging.Log
the logger for this class -
Constructor Summary
ConstructorsConstructorDescriptionAbstractFOPTextPainter
(FOPTextHandler nativeTextHandler, org.apache.batik.bridge.TextPainter proxyTextPainter) Create a new PS text painter with the given font information. -
Method Summary
Modifier and TypeMethodDescriptiongetBounds2D
(org.apache.batik.bridge.TextNode node) Get the bounds.getGeometryBounds
(org.apache.batik.bridge.TextNode node) Get the geometry bounds.getHighlightShape
(org.apache.batik.bridge.Mark beginMark, org.apache.batik.bridge.Mark endMark) Get the highlighted shape.org.apache.batik.bridge.Mark
getMark
(org.apache.batik.bridge.TextNode node, int pos, boolean all) Get the mark.getOutline
(org.apache.batik.bridge.TextNode node) Get the outline shape of the text characters.int[]
getSelected
(org.apache.batik.bridge.Mark start, org.apache.batik.bridge.Mark finish) Get selected.protected String
Extract the raw text from an ACI.protected abstract boolean
Checks whether the Graphics2D is compatible with this text painter.void
paint
(org.apache.batik.bridge.TextNode node, Graphics2D g2d) Paints the specified attributed character iterator using the specified Graphics2D and context and font context.org.apache.batik.bridge.Mark
selectAt
(double x, double y, org.apache.batik.bridge.TextNode node) Select at.org.apache.batik.bridge.Mark
selectFirst
(org.apache.batik.bridge.TextNode node) Selec first.org.apache.batik.bridge.Mark
selectLast
(org.apache.batik.bridge.TextNode node) Select last.org.apache.batik.bridge.Mark
selectTo
(double x, double y, org.apache.batik.bridge.Mark beginMark) Select to.
-
Field Details
-
log
protected org.apache.commons.logging.Log logthe logger for this class
-
-
Constructor Details
-
AbstractFOPTextPainter
public AbstractFOPTextPainter(FOPTextHandler nativeTextHandler, org.apache.batik.bridge.TextPainter proxyTextPainter) Create a new PS text painter with the given font information.- Parameters:
nativeTextHandler
- the NativeTextHandler instance used for text painting
-
-
Method Details
-
paint
Paints the specified attributed character iterator using the specified Graphics2D and context and font context.- Specified by:
paint
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the TextNode to paintg2d
- the Graphics2D to use
-
isSupportedGraphics2D
Checks whether the Graphics2D is compatible with this text painter. Batik may pass in a Graphics2D instance that paints on a special buffer image, for example for filtering operations. In that case, the text painter should be bypassed.- Parameters:
g2d
- the Graphics2D instance to check- Returns:
- true if the Graphics2D is supported
-
getText
Extract the raw text from an ACI.- Parameters:
aci
- ACI to inspect- Returns:
- the extracted text
-
getOutline
Get the outline shape of the text characters. This uses the StrokingTextPainter to get the outline shape since in theory it should be the same.- Specified by:
getOutline
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text node- Returns:
- the outline shape of the text characters
-
getBounds2D
Get the bounds. This uses the StrokingTextPainter to get the bounds since in theory it should be the same.- Specified by:
getBounds2D
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text node- Returns:
- the bounds of the text
-
getGeometryBounds
Get the geometry bounds. This uses the StrokingTextPainter to get the bounds since in theory it should be the same.- Specified by:
getGeometryBounds
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text node- Returns:
- the bounds of the text
-
getMark
public org.apache.batik.bridge.Mark getMark(org.apache.batik.bridge.TextNode node, int pos, boolean all) Get the mark. This does nothing since the output is AFP and not interactive.- Specified by:
getMark
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text nodepos
- the positionall
- select all- Returns:
- null
-
selectAt
public org.apache.batik.bridge.Mark selectAt(double x, double y, org.apache.batik.bridge.TextNode node) Select at. This does nothing since the output is AFP and not interactive.- Specified by:
selectAt
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
x
- the x positiony
- the y positionnode
- the text node- Returns:
- null
-
selectTo
public org.apache.batik.bridge.Mark selectTo(double x, double y, org.apache.batik.bridge.Mark beginMark) Select to. This does nothing since the output is AFP and not interactive.- Specified by:
selectTo
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
x
- the x positiony
- the y positionbeginMark
- the start mark- Returns:
- null
-
selectFirst
public org.apache.batik.bridge.Mark selectFirst(org.apache.batik.bridge.TextNode node) Selec first. This does nothing since the output is AFP and not interactive.- Specified by:
selectFirst
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text node- Returns:
- null
-
selectLast
public org.apache.batik.bridge.Mark selectLast(org.apache.batik.bridge.TextNode node) Select last. This does nothing since the output is AFP and not interactive.- Specified by:
selectLast
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
node
- the text node- Returns:
- null
-
getSelected
public int[] getSelected(org.apache.batik.bridge.Mark start, org.apache.batik.bridge.Mark finish) Get selected. This does nothing since the output is AFP and not interactive.- Specified by:
getSelected
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
start
- the start markfinish
- the finish mark- Returns:
- null
-
getHighlightShape
public Shape getHighlightShape(org.apache.batik.bridge.Mark beginMark, org.apache.batik.bridge.Mark endMark) Get the highlighted shape. This does nothing since the output is AFP and not interactive.- Specified by:
getHighlightShape
in interfaceorg.apache.batik.bridge.TextPainter
- Parameters:
beginMark
- the start markendMark
- the end mark- Returns:
- null
-