Package org.apache.fop.afp
Class AFPGraphics2D
- java.lang.Object
-
- java.awt.Graphics
-
- java.awt.Graphics2D
-
- org.apache.xmlgraphics.java2d.AbstractGraphics2D
-
- org.apache.fop.afp.AFPGraphics2D
-
- All Implemented Interfaces:
java.lang.Cloneable,NativeImageHandler
public class AFPGraphics2D extends org.apache.xmlgraphics.java2d.AbstractGraphics2D implements NativeImageHandler
This is a concrete implementation ofAbstractGraphics2D(and therefore ofGraphics2D) which is able to generate GOCA byte codes.- See Also:
AbstractGraphics2D
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.xmlgraphics.java2d.TextHandlercustomTextHandlerCustom text handlerprotected org.apache.xmlgraphics.java2d.TextHandlerfallbackTextHandlerFallback text handlerprivate FontInfofontInfoThe AFP FontInfoprivate org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparencygraphicsConfigAFP graphics configurationprivate GraphicsObjectgraphicsObjgraphics objectprivate static org.apache.commons.logging.LogLOGprivate AFPPaintingStatepaintingStateCurrent AFP stateprivate AFPResourceInforesourceInfoAFP resource infoprivate AFPResourceManagerresourceManagerAFP resource managerprivate static intXprivate static intX1private static intX2private static intX3private static intYprivate static intY1private static intY2private static intY3
-
Constructor Summary
Constructors Constructor Description AFPGraphics2D(boolean textAsShapes, AFPPaintingState paintingState, AFPResourceManager resourceManager, AFPResourceInfo resourceInfo, FontInfo fontInfo)Main constructorAFPGraphics2D(AFPGraphics2D g2d)Copy Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddNativeImage(org.apache.xmlgraphics.image.loader.Image image, float x, float y, float width, float height)Add a natively handled image directly to the document.private booleanapplyPaint(java.awt.Paint paint, boolean fill)Apply the java paint to the AFP.protected voidapplyStroke(java.awt.Stroke stroke)Apply the stroke to the AFP graphics object.private java.awt.image.BufferedImagebuildBufferedImage(java.awt.Dimension size)voidclearRect(int x, int y, int width, int height)doubleconvertToAbsoluteLength(double length)Converts a length value to an absolute value.voidcopyArea(int x, int y, int width, int height, int dx, int dy)java.awt.Graphicscreate()voiddispose()private voiddoDrawing(java.awt.Shape shape, boolean fill)Handle the Batik drawing eventvoiddraw(java.awt.Shape shape)private booleandrawBufferedImage(java.awt.Image img, java.awt.image.BufferedImage bufferedImage, int width, int height, java.awt.image.ImageObserver observer)Draws an AWT image into a BufferedImage using an AWT Graphics2D implementationbooleandrawImage(java.awt.Image img, int x, int y, int width, int height, java.awt.image.ImageObserver observer)booleandrawImage(java.awt.Image img, int x, int y, java.awt.image.ImageObserver observer)voiddrawRenderableImage(java.awt.image.renderable.RenderableImage img, java.awt.geom.AffineTransform xform)voiddrawRenderedImage(java.awt.image.RenderedImage img, java.awt.geom.AffineTransform xform)voiddrawString(java.lang.String str, float x, float y)voidfill(java.awt.Shape shape)private voidflush(java.util.List<java.lang.Integer> fillets)java.awt.GraphicsConfigurationgetDeviceConfiguration()FontInfogetFontInfo()Returns the FontInfojava.awt.FontMetricsgetFontMetrics(java.awt.Font f)GraphicsObjectgetGraphicsObject()Returns the GOCA graphics objectAFPPaintingStategetPaintingState()Returns the AFP painting stateprivate intgetResolution()AFPResourceManagergetResourceManager()Returns the AFP resource manager associated with thisGraphics2Dinstance.voidhandleIOException(java.io.IOException ioe)Central handler for IOExceptions for this class.private java.util.List<int[]>listToIntLists(java.util.List<java.lang.Integer> input)private voidprocessPathIterator(java.awt.geom.PathIterator iter)Processes a path iterator generating the necessary painting operations.voidsetCustomTextHandler(org.apache.xmlgraphics.java2d.TextHandler handler)Sets a custom TextHandler implementation that is responsible for painting text.private voidsetFontInfo(FontInfo fontInfo)Sets the FontInfovoidsetGraphicContext(org.apache.xmlgraphics.java2d.GraphicContext gc)Sets the GraphicContextvoidsetGraphicsObject(GraphicsObject obj)Sets the GOCA graphics objectprivate voidsetPaintingState(AFPPaintingState paintingState)Sets the AFP painting stateprivate voidsetResourceInfo(AFPResourceInfo resourceInfo)Sets the AFP resource infoprivate voidsetResourceManager(AFPResourceManager resourceManager)Sets the AFP resource managervoidsetXORMode(java.awt.Color col)-
Methods inherited from class org.apache.xmlgraphics.java2d.AbstractGraphics2D
addRenderingHints, clip, clipRect, drawArc, drawGlyphVector, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawOval, drawPolygon, drawPolyline, drawRect, drawRoundRect, drawString, drawString, drawString, fillArc, fillOval, fillPolygon, fillRect, fillRoundRect, getBackground, getClip, getClipBounds, getColor, getComposite, getFont, getFontRenderContext, getGraphicContext, getPaint, getRenderingHint, getRenderingHints, getStroke, getTransform, hit, rotate, rotate, scale, setBackground, setClip, setClip, setColor, setComposite, setFont, setPaint, setPaintMode, setRenderingHint, setRenderingHints, setStroke, setTransform, shear, transform, translate, translate
-
-
-
-
Field Detail
-
LOG
private static final org.apache.commons.logging.Log LOG
-
X
private static final int X
- See Also:
- Constant Field Values
-
Y
private static final int Y
- See Also:
- Constant Field Values
-
X1
private static final int X1
- See Also:
- Constant Field Values
-
Y1
private static final int Y1
- See Also:
- Constant Field Values
-
X2
private static final int X2
- See Also:
- Constant Field Values
-
Y2
private static final int Y2
- See Also:
- Constant Field Values
-
X3
private static final int X3
- See Also:
- Constant Field Values
-
Y3
private static final int Y3
- See Also:
- Constant Field Values
-
graphicsObj
private GraphicsObject graphicsObj
graphics object
-
fallbackTextHandler
protected org.apache.xmlgraphics.java2d.TextHandler fallbackTextHandler
Fallback text handler
-
customTextHandler
protected org.apache.xmlgraphics.java2d.TextHandler customTextHandler
Custom text handler
-
resourceManager
private AFPResourceManager resourceManager
AFP resource manager
-
resourceInfo
private AFPResourceInfo resourceInfo
AFP resource info
-
paintingState
private AFPPaintingState paintingState
Current AFP state
-
graphicsConfig
private final org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency graphicsConfig
AFP graphics configuration
-
fontInfo
private FontInfo fontInfo
The AFP FontInfo
-
-
Constructor Detail
-
AFPGraphics2D
public AFPGraphics2D(boolean textAsShapes, AFPPaintingState paintingState, AFPResourceManager resourceManager, AFPResourceInfo resourceInfo, FontInfo fontInfo)Main constructor- Parameters:
textAsShapes- if true, all text is turned into shapes in the convertion. No text is output.paintingState- painting stateresourceManager- resource managerresourceInfo- resource infofontInfo- font info
-
AFPGraphics2D
public AFPGraphics2D(AFPGraphics2D g2d)
Copy Constructor- Parameters:
g2d- a AFPGraphics2D whose properties should be copied
-
-
Method Detail
-
setResourceManager
private void setResourceManager(AFPResourceManager resourceManager)
Sets the AFP resource manager- Parameters:
resourceManager- the AFP resource manager
-
getResourceManager
public AFPResourceManager getResourceManager()
Returns the AFP resource manager associated with thisGraphics2Dinstance.- Returns:
- the resource manager
-
setResourceInfo
private void setResourceInfo(AFPResourceInfo resourceInfo)
Sets the AFP resource info- Parameters:
resourceInfo- the AFP resource info
-
getGraphicsObject
public GraphicsObject getGraphicsObject()
Returns the GOCA graphics object- Returns:
- the GOCA graphics object
-
setGraphicsObject
public void setGraphicsObject(GraphicsObject obj)
Sets the GOCA graphics object- Parameters:
obj- the GOCA graphics object
-
setPaintingState
private void setPaintingState(AFPPaintingState paintingState)
Sets the AFP painting state- Parameters:
paintingState- the AFP painting state
-
getPaintingState
public AFPPaintingState getPaintingState()
Returns the AFP painting state- Returns:
- the AFP painting state
-
setFontInfo
private void setFontInfo(FontInfo fontInfo)
Sets the FontInfo- Parameters:
fontInfo- the FontInfo
-
getFontInfo
public FontInfo getFontInfo()
Returns the FontInfo- Returns:
- the FontInfo
-
setGraphicContext
public void setGraphicContext(org.apache.xmlgraphics.java2d.GraphicContext gc)
Sets the GraphicContext- Parameters:
gc- GraphicContext to use
-
getResolution
private int getResolution()
-
convertToAbsoluteLength
public double convertToAbsoluteLength(double length)
Converts a length value to an absolute value. Please note that this only uses the "ScaleY" factor, so this will result in a bad value should "ScaleX" and "ScaleY" be different.- Parameters:
length- the length- Returns:
- the absolute length
-
applyStroke
protected void applyStroke(java.awt.Stroke stroke)
Apply the stroke to the AFP graphics object. This takes the java stroke and outputs the appropriate settings to the AFP graphics object so that the stroke attributes are handled.- Parameters:
stroke- the java stroke
-
applyPaint
private boolean applyPaint(java.awt.Paint paint, boolean fill)Apply the java paint to the AFP. This takes the java paint sets up the appropriate AFP commands for the drawing with that paint. Currently this supports the gradients and patterns from batik.- Parameters:
paint- the paint to convert to AFPfill- true if the paint should be set for filling- Returns:
- true if the paint is handled natively, false if the paint should be rasterized
-
doDrawing
private void doDrawing(java.awt.Shape shape, boolean fill)Handle the Batik drawing event- Parameters:
shape- the shape to drawfill- true if the shape is to be drawn filled
-
processPathIterator
private void processPathIterator(java.awt.geom.PathIterator iter)
Processes a path iterator generating the necessary painting operations.- Parameters:
iter- PathIterator to process
-
flush
private void flush(java.util.List<java.lang.Integer> fillets)
-
listToIntLists
private java.util.List<int[]> listToIntLists(java.util.List<java.lang.Integer> input)
-
draw
public void draw(java.awt.Shape shape)
- Specified by:
drawin classjava.awt.Graphics2D
-
fill
public void fill(java.awt.Shape shape)
- Specified by:
fillin classjava.awt.Graphics2D
-
handleIOException
public void handleIOException(java.io.IOException ioe)
Central handler for IOExceptions for this class.- Parameters:
ioe- IOException to handle
-
drawString
public void drawString(java.lang.String str, float x, float y)- Specified by:
drawStringin classjava.awt.Graphics2D
-
getDeviceConfiguration
public java.awt.GraphicsConfiguration getDeviceConfiguration()
- Specified by:
getDeviceConfigurationin classjava.awt.Graphics2D
-
create
public java.awt.Graphics create()
- Specified by:
createin classjava.awt.Graphics
-
dispose
public void dispose()
- Specified by:
disposein classjava.awt.Graphics
-
drawImage
public boolean drawImage(java.awt.Image img, int x, int y, java.awt.image.ImageObserver observer)- Specified by:
drawImagein classjava.awt.Graphics
-
buildBufferedImage
private java.awt.image.BufferedImage buildBufferedImage(java.awt.Dimension size)
-
drawBufferedImage
private boolean drawBufferedImage(java.awt.Image img, java.awt.image.BufferedImage bufferedImage, int width, int height, java.awt.image.ImageObserver observer)Draws an AWT image into a BufferedImage using an AWT Graphics2D implementation- Parameters:
img- the AWT imagebufferedImage- the AWT buffered imagewidth- the image widthheight- the image heightobserver- the image observer- Returns:
- true if the image was drawn
-
drawImage
public boolean drawImage(java.awt.Image img, int x, int y, int width, int height, java.awt.image.ImageObserver observer)- Specified by:
drawImagein classjava.awt.Graphics
-
drawRenderedImage
public void drawRenderedImage(java.awt.image.RenderedImage img, java.awt.geom.AffineTransform xform)- Specified by:
drawRenderedImagein classjava.awt.Graphics2D
-
setCustomTextHandler
public void setCustomTextHandler(org.apache.xmlgraphics.java2d.TextHandler handler)
Sets a custom TextHandler implementation that is responsible for painting text. The default TextHandler paints all text as shapes. A custom implementation can implement text painting using text painting operators.- Parameters:
handler- the custom TextHandler implementation
-
drawRenderableImage
public void drawRenderableImage(java.awt.image.renderable.RenderableImage img, java.awt.geom.AffineTransform xform)- Specified by:
drawRenderableImagein classjava.awt.Graphics2D
-
getFontMetrics
public java.awt.FontMetrics getFontMetrics(java.awt.Font f)
- Specified by:
getFontMetricsin classjava.awt.Graphics
-
setXORMode
public void setXORMode(java.awt.Color col)
- Specified by:
setXORModein classjava.awt.Graphics
-
addNativeImage
public void addNativeImage(org.apache.xmlgraphics.image.loader.Image image, float x, float y, float width, float height)Add a natively handled image directly to the document. This is used by the ImageElementBridge to draw a natively handled image (like JPEG or CCITT images) directly into the document rather than converting the image into a bitmap and increasing the size.- Specified by:
addNativeImagein interfaceNativeImageHandler- Parameters:
image- the image to drawx- the x positiony- the y positionwidth- the width to draw the imageheight- the height to draw the image
-
copyArea
public void copyArea(int x, int y, int width, int height, int dx, int dy)- Specified by:
copyAreain classjava.awt.Graphics
-
clearRect
public void clearRect(int x, int y, int width, int height)- Overrides:
clearRectin classorg.apache.xmlgraphics.java2d.AbstractGraphics2D
-
-