fop 2.0

org.apache.fop.render
Class AbstractGenericSVGHandler

java.lang.Object
  extended by org.apache.fop.render.AbstractGenericSVGHandler
All Implemented Interfaces:
RendererContextConstants, XMLHandler
Direct Known Subclasses:
AFPSVGHandler, Java2DSVGHandler, PCLSVGHandler, PDFSVGHandler, PSSVGHandler

public abstract class AbstractGenericSVGHandler
extends java.lang.Object
implements XMLHandler, RendererContextConstants

Generic XML handler for SVG. Uses Apache Batik for SVG processing and simply paints to a Graphics2DAdapter and thus ultimatively to Graphics2D interface that is presented.

To use this class, subclass it and implement the missing methods (supportsRenderer, for example).


Field Summary
 
Fields inherited from interface org.apache.fop.render.XMLHandler
HANDLE_ALL
 
Fields inherited from interface org.apache.fop.render.RendererContextConstants
FOREIGN_ATTRIBUTES, HANDLER_CONFIGURATION, HEIGHT, OUTPUT_STREAM, PAGE_VIEWPORT, WIDTH, XPOS, YPOS
 
Constructor Summary
AbstractGenericSVGHandler()
           
 
Method Summary
protected  org.apache.batik.gvt.GraphicsNode buildGraphicsNode(FOUserAgent userAgent, org.apache.batik.bridge.BridgeContext ctx, org.w3c.dom.Document doc)
          Builds the GVT root.
protected  org.apache.xmlgraphics.java2d.Graphics2DImagePainter createGraphics2DImagePainter(org.apache.batik.gvt.GraphicsNode root, org.apache.batik.bridge.BridgeContext ctx, java.awt.Dimension imageSize)
          Creates a graphics 2D image painter implementation
protected  java.lang.String getDocumentURI(org.w3c.dom.Document doc)
          Gets the document URI from a Document instance if possible.
protected  java.awt.Dimension getImageSize(RendererContext.RendererContextWrapper wrappedContext)
          Returns the image size
 java.lang.String getNamespace()
          
 void handleXML(RendererContext context, org.w3c.dom.Document doc, java.lang.String ns)
          Handle an external xml document inside a Foreign Object Area.
protected  void renderSVGDocument(RendererContext rendererContext, org.w3c.dom.Document doc)
          Render the SVG document.
protected  void updateRendererContext(RendererContext context)
          Override this method to update the renderer context if it needs special settings for certain conditions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.fop.render.XMLHandler
supportsRenderer
 

Constructor Detail

AbstractGenericSVGHandler

public AbstractGenericSVGHandler()
Method Detail

handleXML

public void handleXML(RendererContext context,
                      org.w3c.dom.Document doc,
                      java.lang.String ns)
               throws java.lang.Exception

Handle an external xml document inside a Foreign Object Area.

This may throw an exception if for some reason it cannot be handled. The caller is expected to deal with this exception.

The implementation may convert the XML document internally to another XML dialect (SVG, for example) and call renderXML() on the AbstractRenderer again (which can be retrieved through the RendererContext).

Specified by:
handleXML in interface XMLHandler
Parameters:
context - The RendererContext (contains the user agent)
doc - A DOM containing the foreign object to be processed
ns - The Namespace of the foreign object
Throws:
java.lang.Exception - If an error occurs during processing.

createGraphics2DImagePainter

protected org.apache.xmlgraphics.java2d.Graphics2DImagePainter createGraphics2DImagePainter(org.apache.batik.gvt.GraphicsNode root,
                                                                                            org.apache.batik.bridge.BridgeContext ctx,
                                                                                            java.awt.Dimension imageSize)
Creates a graphics 2D image painter implementation

Parameters:
root - the batik graphics node root
ctx - the batik bridge context
imageSize - the image size
Returns:
a new graphics 2D image painter implementation

buildGraphicsNode

protected org.apache.batik.gvt.GraphicsNode buildGraphicsNode(FOUserAgent userAgent,
                                                              org.apache.batik.bridge.BridgeContext ctx,
                                                              org.w3c.dom.Document doc)
Builds the GVT root.

Parameters:
userAgent - the user agent
ctx - the batik bridge context
doc - the document
Returns:
a built GVT root tree

getImageSize

protected java.awt.Dimension getImageSize(RendererContext.RendererContextWrapper wrappedContext)
Returns the image size

Parameters:
wrappedContext - renderer context wrapper
Returns:
the image size

renderSVGDocument

protected void renderSVGDocument(RendererContext rendererContext,
                                 org.w3c.dom.Document doc)
                          throws java.io.IOException
Render the SVG document.

Parameters:
rendererContext - the renderer context
doc - the SVG document
Throws:
java.io.IOException - In case of an I/O error while painting the image

getDocumentURI

protected java.lang.String getDocumentURI(org.w3c.dom.Document doc)
Gets the document URI from a Document instance if possible.

Parameters:
doc - the Document
Returns:
the URI or null

updateRendererContext

protected void updateRendererContext(RendererContext context)
Override this method to update the renderer context if it needs special settings for certain conditions.

Parameters:
context - the renderer context

getNamespace

public java.lang.String getNamespace()

Specified by:
getNamespace in interface XMLHandler
Returns:
the XML namespace for the XML dialect this XMLHandler supports, null if all XML content is handled by this instance.

fop 2.0

Copyright 1999-2015 The Apache Software Foundation. All Rights Reserved.