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 java.lang.Object implements org.apache.batik.bridge.TextPainterRenders the attributed character iterator of aTextNode. 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
Fields Modifier and Type Field Description protected org.apache.commons.logging.Loglogthe logger for this class
-
Constructor Summary
Constructors Constructor Description AbstractFOPTextPainter(FOPTextHandler nativeTextHandler, org.apache.batik.bridge.TextPainter proxyTextPainter)Create a new PS text painter with the given font information.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.awt.geom.Rectangle2DgetBounds2D(org.apache.batik.bridge.TextNode node)Get the bounds.java.awt.geom.Rectangle2DgetGeometryBounds(org.apache.batik.bridge.TextNode node)Get the geometry bounds.java.awt.ShapegetHighlightShape(org.apache.batik.bridge.Mark beginMark, org.apache.batik.bridge.Mark endMark)Get the highlighted shape.org.apache.batik.bridge.MarkgetMark(org.apache.batik.bridge.TextNode node, int pos, boolean all)Get the mark.java.awt.ShapegetOutline(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 java.lang.StringgetText(java.text.AttributedCharacterIterator aci)Extract the raw text from an ACI.protected abstract booleanisSupportedGraphics2D(java.awt.Graphics2D g2d)Checks whether the Graphics2D is compatible with this text painter.voidpaint(org.apache.batik.bridge.TextNode node, java.awt.Graphics2D g2d)Paints the specified attributed character iterator using the specified Graphics2D and context and font context.org.apache.batik.bridge.MarkselectAt(double x, double y, org.apache.batik.bridge.TextNode node)Select at.org.apache.batik.bridge.MarkselectFirst(org.apache.batik.bridge.TextNode node)Selec first.org.apache.batik.bridge.MarkselectLast(org.apache.batik.bridge.TextNode node)Select last.org.apache.batik.bridge.MarkselectTo(double x, double y, org.apache.batik.bridge.Mark beginMark)Select to.
-
-
-
Constructor Detail
-
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 Detail
-
paint
public void paint(org.apache.batik.bridge.TextNode node, java.awt.Graphics2D g2d)Paints the specified attributed character iterator using the specified Graphics2D and context and font context.- Specified by:
paintin interfaceorg.apache.batik.bridge.TextPainter- Parameters:
node- the TextNode to paintg2d- the Graphics2D to use
-
isSupportedGraphics2D
protected abstract boolean isSupportedGraphics2D(java.awt.Graphics2D g2d)
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
protected java.lang.String getText(java.text.AttributedCharacterIterator aci)
Extract the raw text from an ACI.- Parameters:
aci- ACI to inspect- Returns:
- the extracted text
-
getOutline
public java.awt.Shape getOutline(org.apache.batik.bridge.TextNode node)
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:
getOutlinein interfaceorg.apache.batik.bridge.TextPainter- Parameters:
node- the text node- Returns:
- the outline shape of the text characters
-
getBounds2D
public java.awt.geom.Rectangle2D getBounds2D(org.apache.batik.bridge.TextNode node)
Get the bounds. This uses the StrokingTextPainter to get the bounds since in theory it should be the same.- Specified by:
getBounds2Din interfaceorg.apache.batik.bridge.TextPainter- Parameters:
node- the text node- Returns:
- the bounds of the text
-
getGeometryBounds
public java.awt.geom.Rectangle2D getGeometryBounds(org.apache.batik.bridge.TextNode node)
Get the geometry bounds. This uses the StrokingTextPainter to get the bounds since in theory it should be the same.- Specified by:
getGeometryBoundsin 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:
getMarkin 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:
selectAtin 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:
selectToin 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:
selectFirstin 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:
selectLastin 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:
getSelectedin interfaceorg.apache.batik.bridge.TextPainter- Parameters:
start- the start markfinish- the finish mark- Returns:
- null
-
getHighlightShape
public java.awt.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:
getHighlightShapein interfaceorg.apache.batik.bridge.TextPainter- Parameters:
beginMark- the start markendMark- the end mark- Returns:
- null
-
-