Class Java2DRenderer


  • public class Java2DRenderer
    extends java.lang.Object

    Renders an XML files, formatted with CSS, as an image. Input is a document in the form of file or URL, and output is a BufferedImage. A Java2DRenderer is not intended to be re-used for multiple document sources; just create new Java2DRenderers for each one you need. Java2DRenderer is not thread-safe. Standard usage pattern is

     File xhtml = ...
     Java2DRenderer rend = new Java2DRenderer(xhtml);
     BufferedImage image = rend.getImage();
     

    The document is not loaded, and layout and render don't take place, until #getImage(int) is called. Subsequent calls to getImage() don't result in a reload; create a new Java2DRenderer instance to do so.

    As with RootPanel, you can access the SharedContext instance that will be used by this renderer and change settings to control the rendering process; use getSharedContext().

    By default, this renderer will render to an RGB image which does not support transparency. To use another type of BufferedImage, either set the image type using setBufferedImageType(int) before calling getImage(), or else override the createBufferedImage(int, int) to have full control over the image we render to.

    Not thread-safe.

    See Also:
    ITextRenderer
    • Constructor Summary

      Constructors 
      Constructor Description
      Java2DRenderer​(java.io.File file, int width)
      Creates a new instance for a given File.
      Java2DRenderer​(java.io.File file, int width, int height)
      Creates a new instance for a given File.
      Java2DRenderer​(java.lang.String url, int width)
      Renderer for a given URL (which is also used as the base) and a specified width; height is calculated automatically.
      Java2DRenderer​(java.lang.String url, int width, int height)
      Renderer for a given URL and a specified width; height is calculated automatically.
      Java2DRenderer​(java.lang.String url, java.lang.String baseurl, int width)
      Renderer for a given URL and a specified width; height is calculated automatically.
      Java2DRenderer​(java.lang.String url, java.lang.String baseUrl, int width, int height)
      Creates a new instance for a given URL.
      Java2DRenderer​(org.w3c.dom.Document doc, int width, int height)
      Creates a new instance pointing to the given Document.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.image.BufferedImage getImage()
      Renders the XML document if necessary and returns the resulting image.
      SharedContext getSharedContext()
      Returns the SharedContext to be used by renderer.
      void setBufferedImageType​(int bufferedImageType)
      Sets the type for the BufferedImage used as output for this renderer; must be one of the values from BufferedImage allowed in that class' constructor as a type argument.
      void setRenderingHints​(java.util.Map hints)
      Sets the rendering hints to apply to the Graphics2D instance used by the renderer; see Graphics2D.setRenderingHints(java.util.Map).
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Java2DRenderer

        public Java2DRenderer​(java.lang.String url,
                              java.lang.String baseUrl,
                              int width,
                              int height)
        Creates a new instance for a given URL. Does not render until #getImage(int) is called for the first time.
        Parameters:
        url - The location of the document to be rendered.
        baseurl - The base url for the document, against which relative paths are resolved.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout.
      • Java2DRenderer

        public Java2DRenderer​(java.io.File file,
                              int width,
                              int height)
                       throws java.io.IOException
        Creates a new instance for a given File. Does not render until #getImage(int) is called for the first time.
        Parameters:
        file - The file to be rendered.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout.
        height - Target height, in pixels, for the image
        Throws:
        java.io.IOException
      • Java2DRenderer

        public Java2DRenderer​(org.w3c.dom.Document doc,
                              int width,
                              int height)
        Creates a new instance pointing to the given Document. Does not render until #getImage(int) is called for the first time.
        Parameters:
        doc - The document to be rendered.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout.
        height - Target height, in pixels, for the image.
      • Java2DRenderer

        public Java2DRenderer​(java.io.File file,
                              int width)
                       throws java.io.IOException
        Creates a new instance for a given File. Does not render until #getImage(int) is called for the first time.
        Parameters:
        file - The file to be rendered.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout. Heght is calculated based on content
        Throws:
        java.io.IOException
      • Java2DRenderer

        public Java2DRenderer​(java.lang.String url,
                              int width)
        Renderer for a given URL (which is also used as the base) and a specified width; height is calculated automatically.
        Parameters:
        url - The location of the document to be rendered.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout. Heght is calculated based on content
      • Java2DRenderer

        public Java2DRenderer​(java.lang.String url,
                              java.lang.String baseurl,
                              int width)
        Renderer for a given URL and a specified width; height is calculated automatically.
        Parameters:
        url - The location of the document to be rendered.
        baseurl - The base url for the document, against which relative paths are resolved.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout. Heght is calculated based on content
      • Java2DRenderer

        public Java2DRenderer​(java.lang.String url,
                              int width,
                              int height)
        Renderer for a given URL and a specified width; height is calculated automatically.
        Parameters:
        url - The location of the document to be rendered.
        baseurl - The base url for the document, against which relative paths are resolved.
        width - Target width, in pixels, for the image; required to provide horizontal bounds for the layout.
        height - Target height, in pixels, for the image
    • Method Detail

      • setRenderingHints

        public void setRenderingHints​(java.util.Map hints)
        Sets the rendering hints to apply to the Graphics2D instance used by the renderer; see Graphics2D.setRenderingHints(java.util.Map). The Map need not specify values for all properties; any settings in this map will be applied as override to the default settings, and will not replace the entire Map for the Graphics2D instance.
        Parameters:
        hints - values to override in default rendering hints for Graphics2D we are rendering to
      • setBufferedImageType

        public void setBufferedImageType​(int bufferedImageType)
        Sets the type for the BufferedImage used as output for this renderer; must be one of the values from BufferedImage allowed in that class' constructor as a type argument. See docs for the type parameter in BufferedImage(int, int, int). Defaults to RGB with no support for transparency. The type is used when the image is first created, so to change the default type do so before calling getImage().
        Parameters:
        bufferedImageType - the BufferedImage type to be used to create the image on which the document will be rendered.
      • getSharedContext

        public SharedContext getSharedContext()
        Returns the SharedContext to be used by renderer. Is instantiated along with the class, so can be accessed before getImage() is called to tune the rendering process.
        Returns:
        the SharedContext instance that will be used by this renderer
      • getImage

        public java.awt.image.BufferedImage getImage()
        Renders the XML document if necessary and returns the resulting image. If already rendered, same image reference will be returned. #getImage(int) with the target width.
        Returns:
        The XML rendered as a BufferedImage.