Class Graphics2DRenderer

java.lang.Object
org.xhtmlrenderer.simple.Graphics2DRenderer

public final class Graphics2DRenderer extends Object

Graphics2DRenderer supports headless rendering of XHTML documents, and is useful for rendering documents directly to images.

Graphics2DRenderer supports the XHTMLPanel.setDocument(Document), RootPanel.doLayout() method from XHTMLPanel, as well as easy-to-use static utility methods. For example, to render a document in an image that is 600 pixels wide use the renderToImageAutoSize(String,int,int) method like this:


 BufferedImage img = Graphics2DRenderer.renderToImage( "test.xhtml", width);
 
  • Field Details

    • panel

      private final XHTMLPanel panel
      The panel we are using to render the document.
  • Constructor Details

    • Graphics2DRenderer

      public Graphics2DRenderer(String url)
    • Graphics2DRenderer

      public Graphics2DRenderer(Document doc, String base_url)
  • Method Details

    • layout

      public void layout(Graphics2D g2, @Nullable Dimension dim)
      Lay out the document with the specified dimensions, without rendering.
      Parameters:
      g2 - the canvas to layout on.
      dim - dimensions of the container for the document
    • render

      public void render(Graphics2D g2)
      Renders the document to the given canvas. Call layout() first.
      Parameters:
      g2 - Canvas to render to.
    • getMinimumSize

      public Rectangle getMinimumSize()
      Returns the size image needed to render the document without anything going off the side. Could be different from the dimensions passed into layout because of text that couldn't break or a table that's set to be too big.
      Returns:
      A rectangle sized to the minimum size required for the document.
    • getSharedContext

      public SharedContext getSharedContext()
      Gets the SharedContext for layout and rendering.
    • getPanel

      public XHTMLPanel getPanel()
      Returns the panel used internally for rendering.
    • renderToImage

      public static BufferedImage renderToImage(String url, int width, int height)
      A static utility method to automatically create an image from a document; the image supports transparency. To render an image that does not support transparency, use the overloaded version of this method renderToImage(String, int, int, int).
      Parameters:
      url - URL for the document to render.
      width - Width in pixels of the layout container
      height - Height in pixels of the layout container
      Returns:
      Returns an Image containing the rendered document.
    • renderToImage

      public static BufferedImage renderToImage(String url, int width, int height, int bufferedImageType)
      A static utility method to automatically create an image from a document. The buffered image type must be specified.
      Parameters:
      url - URL for the document to render.
      width - Width in pixels of the layout container
      height - Height in pixels of the layout container
      bufferedImageType - On of the pre-defined image types for a java.awt.image.BufferedImage, such as TYPE_INT_ARGB or TYPE_INT_RGB.
      Returns:
      Returns an Image containing the rendered document.
    • renderToImageAutoSize

      public static BufferedImage renderToImageAutoSize(String url, int width)
      A static utility method to automatically create an image from a document, where height is determined based on document content. To estimate a size before rendering, use getMinimumSize(). The rendered image supports transparency.
      Parameters:
      url - java.net.URL for the document to render.
      width - Width in pixels of the layout container
      Returns:
      Returns java.awt.Image containing the rendered document.
    • renderToImageAutoSize

      public static BufferedImage renderToImageAutoSize(String url, int width, int bufferedImageType)
      A static utility method to automatically create an image from a document, where height is determined based on document content. To estimate a size before rendering, use getMinimumSize().
      Parameters:
      url - java.net.URL for the document to render.
      width - Width in pixels of the layout container
      bufferedImageType - On of the pre-defined image types for a java.awt.image.BufferedImage, such as TYPE_INT_ARGB or TYPE_INT_RGB.
      Returns:
      Returns java.awt.Image containing the rendered document.