Class AFPGraphics2D

java.lang.Object
java.awt.Graphics
java.awt.Graphics2D
org.apache.xmlgraphics.java2d.AbstractGraphics2D
org.apache.fop.afp.AFPGraphics2D
All Implemented Interfaces:
Cloneable, NativeImageHandler

public class AFPGraphics2D extends org.apache.xmlgraphics.java2d.AbstractGraphics2D implements NativeImageHandler
This is a concrete implementation of AbstractGraphics2D (and therefore of Graphics2D) which is able to generate GOCA byte codes.
See Also:
  • AbstractGraphics2D
  • Field Details

    • LOG

      private static final org.apache.commons.logging.Log LOG
    • X

      private static final int X
      See Also:
    • Y

      private static final int Y
      See Also:
    • X1

      private static final int X1
      See Also:
    • Y1

      private static final int Y1
      See Also:
    • X2

      private static final int X2
      See Also:
    • Y2

      private static final int Y2
      See Also:
    • X3

      private static final int X3
      See Also:
    • Y3

      private static final int Y3
      See Also:
    • 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 Details

    • 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 state
      resourceManager - resource manager
      resourceInfo - resource info
      fontInfo - font info
    • AFPGraphics2D

      public AFPGraphics2D(AFPGraphics2D g2d)
      Copy Constructor
      Parameters:
      g2d - a AFPGraphics2D whose properties should be copied
  • Method Details

    • 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 this Graphics2D instance.
      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(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(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 AFP
      fill - 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(Shape shape, boolean fill)
      Handle the Batik drawing event
      Parameters:
      shape - the shape to draw
      fill - true if the shape is to be drawn filled
    • processPathIterator

      private void processPathIterator(PathIterator iter)
      Processes a path iterator generating the necessary painting operations.
      Parameters:
      iter - PathIterator to process
    • flush

      private void flush(List<Integer> fillets)
    • listToIntLists

      private List<int[]> listToIntLists(List<Integer> input)
    • draw

      public void draw(Shape shape)
      Specified by:
      draw in class Graphics2D
    • fill

      public void fill(Shape shape)
      Specified by:
      fill in class Graphics2D
    • handleIOException

      public void handleIOException(IOException ioe)
      Central handler for IOExceptions for this class.
      Parameters:
      ioe - IOException to handle
    • drawString

      public void drawString(String str, float x, float y)
      Specified by:
      drawString in class Graphics2D
    • getDeviceConfiguration

      public GraphicsConfiguration getDeviceConfiguration()
      Specified by:
      getDeviceConfiguration in class Graphics2D
    • create

      public Graphics create()
      Specified by:
      create in class Graphics
    • dispose

      public void dispose()
      Specified by:
      dispose in class Graphics
    • drawImage

      public boolean drawImage(Image img, int x, int y, ImageObserver observer)
      Specified by:
      drawImage in class Graphics
    • buildBufferedImage

      private BufferedImage buildBufferedImage(Dimension size)
    • drawBufferedImage

      private boolean drawBufferedImage(Image img, BufferedImage bufferedImage, int width, int height, ImageObserver observer)
      Draws an AWT image into a BufferedImage using an AWT Graphics2D implementation
      Parameters:
      img - the AWT image
      bufferedImage - the AWT buffered image
      width - the image width
      height - the image height
      observer - the image observer
      Returns:
      true if the image was drawn
    • drawImage

      public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
      Specified by:
      drawImage in class Graphics
    • drawRenderedImage

      public void drawRenderedImage(RenderedImage img, AffineTransform xform)
      Specified by:
      drawRenderedImage in class 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(RenderableImage img, AffineTransform xform)
      Specified by:
      drawRenderableImage in class Graphics2D
    • getFontMetrics

      public FontMetrics getFontMetrics(Font f)
      Specified by:
      getFontMetrics in class Graphics
    • setXORMode

      public void setXORMode(Color col)
      Specified by:
      setXORMode in class 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:
      addNativeImage in interface NativeImageHandler
      Parameters:
      image - the image to draw
      x - the x position
      y - the y position
      width - the width to draw the image
      height - the height to draw the image
    • copyArea

      public void copyArea(int x, int y, int width, int height, int dx, int dy)
      Specified by:
      copyArea in class Graphics
    • clearRect

      public void clearRect(int x, int y, int width, int height)
      Overrides:
      clearRect in class org.apache.xmlgraphics.java2d.AbstractGraphics2D