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
    Version:
    $Id: SVGAbstractTranscoder.java 1871084 2019-12-09 12:24:18Z ssteiner $
    • Field Detail

      • DEFAULT_DEFAULT_FONT_FAMILY

        public static final java.lang.String DEFAULT_DEFAULT_FONT_FAMILY
        Value used as a default for the default font-family hint
        See Also:
        Constant Field Values
      • curAOI

        protected java.awt.geom.Rectangle2D curAOI
        Current area of interest.
      • curTxf

        protected java.awt.geom.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.
      • 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_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 java.lang.String DEFAULT_ALLOWED_SCRIPT_TYPES
        Default value for the KEY_ALLOWED_SCRIPT_TYPES key
        See Also:
        Constant Field Values
      • 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 Detail

      • SVGAbstractTranscoder

        protected SVGAbstractTranscoder()
    • Method Detail

      • createUserAgent

        protected UserAgent createUserAgent()
      • createDocumentFactory

        protected DocumentFactory createDocumentFactory​(org.w3c.dom.DOMImplementation domImpl,
                                                        java.lang.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

        protected void transcode​(org.w3c.dom.Document document,
                                 java.lang.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
      • 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(String)
      • createBridgeContext

        protected BridgeContext createBridgeContext​(java.lang.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.