Class SVGAbstractTranscoder

All Implemented Interfaces:
Transcoder
Direct Known Subclasses:
ImageTranscoder, PrintTranscoder

public abstract class SVGAbstractTranscoder extends XMLAbstractTranscoder
This class may be the base class of all transcoders which take an SVG document as input and which need to build a DOM tree. The SVGAbstractTranscoder uses several different hints that guide it's behaviour:
  • KEY_WIDTH, KEY_HEIGHT can be used to specify how to scale the SVG image
  • Field Details

    • DEFAULT_DEFAULT_FONT_FAMILY

      public static final String DEFAULT_DEFAULT_FONT_FAMILY
      Value used as a default for the default font-family hint
      See Also:
    • curAOI

      protected Rectangle2D curAOI
      Current area of interest.
    • curTxf

      protected AffineTransform curTxf
      Transform needed to render the current area of interest
    • root

      protected GraphicsNode root
      Current GVT Tree, i.e., the GVT tree representing the page being printed currently.
    • ctx

      protected BridgeContext ctx
      Current bridge context
    • builder

      protected GVTBuilder builder
      Current gvt builder
    • width

      protected float width
      Image's width and height (init to 400x400).
    • height

      protected float height
      Image's width and height (init to 400x400).
    • userAgent

      protected UserAgent userAgent
      The user agent dedicated to an SVG Transcoder.
    • KEY_WIDTH

      public static final TranscodingHints.Key KEY_WIDTH
      The image width key.
      Key: KEY_WIDTH
      Value: float
      Default: The width of the topmost svg element
      Required: No
      Description: Specify the width of the image to create.
    • KEY_HEIGHT

      public static final TranscodingHints.Key KEY_HEIGHT
      The image height key.
      Key: KEY_HEIGHT
      Value: Float
      Default: The height of the topmost svg element
      Required: No
      Description: Specify the height of the image to create.
    • KEY_MAX_WIDTH

      public static final TranscodingHints.Key KEY_MAX_WIDTH
      The maximum width of the image key.
      Key: KEY_MAX_WIDTH
      Value: Float
      Default: The width of the topmost svg element
      Required: No
      Description: Specify the maximum width of the image to create. The value will set the maximum width of the image even when a bigger width is specified in a document or set with KEY_WIDTH.
    • KEY_MAX_HEIGHT

      public static final TranscodingHints.Key KEY_MAX_HEIGHT
      The maximux height of the image key.
      Key: KEY_MAX_HEIGHT
      Value: Float
      Default: The height of the topmost svg element
      Required: No
      Description: Specify the maximum height of the image to create. The value will set the maximum height of the image even when bigger height is specified in a document or set with KEY_HEIGHT.
    • KEY_AOI

      public static final TranscodingHints.Key KEY_AOI
      The area of interest key.
      Key: KEY_AOI
      Value: Rectangle2D
      Default: The document's size
      Required: No
      Description: Specify the area of interest to render. The rectangle coordinates must be specified in pixels and in the document coordinates system.
    • KEY_LANGUAGE

      public static final TranscodingHints.Key KEY_LANGUAGE
      The language key.
      Key: KEY_LANGUAGE
      Value: String
      Default: "en"
      Required: No
      Description: Specify the preferred language of the document.
    • KEY_MEDIA

      public static final TranscodingHints.Key KEY_MEDIA
      The media key.
      Key: KEY_MEDIA
      Value: String
      Default: "screen"
      Required: No
      Description: Specify the media to use with CSS.
    • KEY_DEFAULT_FONT_FAMILY

      public static final TranscodingHints.Key KEY_DEFAULT_FONT_FAMILY
      The default font-family key.
      Key: KEY_DEFAULT_FONT_FAMILY
      Value: String
      Default: "Arial, Helvetica, sans-serif"
      Required: No
      Description: Controls the default value used by the CSS engine for the font-family property when that property is unspecified.
    • KEY_ALTERNATE_STYLESHEET

      public static final TranscodingHints.Key KEY_ALTERNATE_STYLESHEET
      The alternate stylesheet key.
      Key: KEY_ALTERNATE_STYLESHEET
      Value: String
      Default: null
      Required: No
      Description: Specify the alternate style sheet title.
    • KEY_USER_STYLESHEET_URI

      public static final TranscodingHints.Key KEY_USER_STYLESHEET_URI
      The user stylesheet URI key.
      Key: KEY_USER_STYLESHEET_URI
      Value: String
      Default: null
      Required: No
      Description: Specify the user style sheet.
    • KEY_PIXEL_UNIT_TO_MILLIMETER

      public static final TranscodingHints.Key KEY_PIXEL_UNIT_TO_MILLIMETER
      The number of millimeters in each pixel key.
      Key: KEY_PIXEL_UNIT_TO_MILLIMETER
      Value: Float
      Default: 0.264583
      Required: No
      Description: Specify the size of a px CSS unit in millimeters.
    • KEY_PIXEL_TO_MM

      public static final TranscodingHints.Key KEY_PIXEL_TO_MM
      Deprecated.
      As of Batik Version 1.5b3
      The pixel to millimeter conversion factor key.
      See Also:
    • KEY_EXECUTE_ONLOAD

      public static final TranscodingHints.Key KEY_EXECUTE_ONLOAD
      The 'onload' execution key.
      Key: KEY_EXECUTE_ONLOAD
      Value: Boolean
      Default: false
      Required: No
      Description: Specify if scripts added on the 'onload' event attribute must be invoked.
    • KEY_SNAPSHOT_TIME

      public static final TranscodingHints.Key KEY_SNAPSHOT_TIME
      The snapshot time key.
      Key: KEY_SNAPSHOT_TIME
      Value: Float
      Default: 0
      Required: No
      Description: Specifies the document time to seek to before rasterization. Only applies if KEY_EXECUTE_ONLOAD is set to true.
    • KEY_ALLOWED_SCRIPT_TYPES

      public static final TranscodingHints.Key KEY_ALLOWED_SCRIPT_TYPES
      The set of supported script languages (i.e., the set of possible values for the <script> tag's type attribute).
      Key: KEY_ALLOWED_SCRIPT_TYPES
      Value: String (Comma separated values)
      Default: text/ecmascript, application/java-archive
      Required: No
      Description: Specifies the allowed values for the type attribute in the <script> element. This is a comma separated list. The special value '*' means that all script types are allowed.
    • DEFAULT_ALLOWED_SCRIPT_TYPES

      public static final String DEFAULT_ALLOWED_SCRIPT_TYPES
      Default value for the KEY_ALLOWED_SCRIPT_TYPES key
      See Also:
    • KEY_CONSTRAIN_SCRIPT_ORIGIN

      public static final TranscodingHints.Key KEY_CONSTRAIN_SCRIPT_ORIGIN
      Controls whether or not scripts can only be loaded from the same location as the document which references them.
      Key: KEY_CONSTRAIN_SCRIPT_ORIGIN
      Value: Boolean
      Default: true
      Required: No
      Description: When set to true, script elements referencing files from a different origin (server) than the document containing the script element will not be loaded. When set to true, script elements may reference script files from any origin.
    • KEY_ALLOW_EXTERNAL_RESOURCES

      public static final TranscodingHints.Key KEY_ALLOW_EXTERNAL_RESOURCES
  • Constructor Details

    • SVGAbstractTranscoder

      protected SVGAbstractTranscoder()
  • Method Details

    • createUserAgent

      protected UserAgent createUserAgent()
    • createDocumentFactory

      protected DocumentFactory createDocumentFactory(DOMImplementation domImpl, String parserClassname)
      Creates a DocumentFactory that is used to create an SVG DOM tree. The specified DOM Implementation is ignored and the Batik SVG DOM Implementation is automatically used.
      Overrides:
      createDocumentFactory in class XMLAbstractTranscoder
      Parameters:
      domImpl - the DOM Implementation (not used)
      parserClassname - the XML parser classname
    • transcode

      public void transcode(TranscoderInput input, TranscoderOutput output) throws TranscoderException
      Description copied from class: XMLAbstractTranscoder
      Transcodes the specified XML input in the specified output. All TranscoderException exceptions not catched previously are tagged as fatal errors (ie. call the fatalError method of the ErrorHandler).
      Specified by:
      transcode in interface Transcoder
      Overrides:
      transcode in class XMLAbstractTranscoder
      Parameters:
      input - the XML input to transcode
      output - the ouput where to transcode
      Throws:
      TranscoderException - if an error occured while transcoding
    • transcode

      protected void transcode(Document document, String uri, TranscoderOutput output) throws TranscoderException
      Transcodes the specified Document as an image in the specified output.
      Specified by:
      transcode in class XMLAbstractTranscoder
      Parameters:
      document - the document to transcode
      uri - the uri of the document or null if any
      output - the ouput where to transcode
      Throws:
      TranscoderException - if an error occured while transcoding
    • getCanvasGraphicsNode

      protected CanvasGraphicsNode getCanvasGraphicsNode(GraphicsNode gn)
    • createBridgeContext

      protected BridgeContext createBridgeContext(SVGOMDocument doc)
      Factory method for constructing an configuring a BridgeContext so subclasses can insert new/modified bridges in the context.
      Parameters:
      doc - the SVG document to create the BridgeContext for
      Returns:
      the newly instantiated BridgeContext
    • createBridgeContext

      protected BridgeContext createBridgeContext()
      Creates the default SVG 1.0/1.1 BridgeContext. Subclass this method to provide customized bridges. This method is provided for historical reasons. New applications should use createBridgeContext(String) instead.
      Returns:
      the newly instantiated BridgeContext
      See Also:
    • createBridgeContext

      protected BridgeContext createBridgeContext(String svgVersion)
      Creates the BridgeContext. Subclass this method to provide customized bridges. For example, Apache FOP uses this method to register special bridges for optimized text painting.
      Parameters:
      svgVersion - the SVG version in use (ex. "1.0", "1.x" or "1.2")
      Returns:
      the newly instantiated BridgeContext
    • setImageSize

      protected void setImageSize(float docWidth, float docHeight)
      Sets document size according to the hints. Global variables width and height are modified.
      Parameters:
      docWidth - Width of the document.
      docHeight - Height of the document.