Class AbstractPSDocumentGraphics2D

All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
EPSDocumentGraphics2D, PSDocumentGraphics2D

public abstract class AbstractPSDocumentGraphics2D extends PSGraphics2D
This class is a wrapper for the PSGraphics2D that is used to create a full document around the PostScript rendering from PSGraphics2D.
Version:
$Id$
See Also:
  • Field Details

    • ZERO

      protected static final Integer ZERO
    • width

      protected int width
    • height

      protected int height
    • viewportWidth

      protected float viewportWidth
    • viewportHeight

      protected float viewportHeight
    • pagecount

      protected int pagecount
    • pagePending

      protected boolean pagePending
    • initialClip

      protected Shape initialClip
    • initialTransform

      protected AffineTransform initialTransform
  • Constructor Details

    • AbstractPSDocumentGraphics2D

      public AbstractPSDocumentGraphics2D(boolean textAsShapes, OutputStream stream, int width, int height) throws IOException
      Create a new AbstractPSDocumentGraphics2D. This is used to create a new PostScript document of the given height and width. The resulting document is written to the stream after rendering.
      Parameters:
      textAsShapes - set this to true so that text will be rendered using curves and not the font.
      stream - the stream that the final document should be written to.
      width - the width of the document
      height - the height of the document
      Throws:
      IOException - an io exception if there is a problem writing to the output stream
    • AbstractPSDocumentGraphics2D

      public AbstractPSDocumentGraphics2D(AbstractPSDocumentGraphics2D g)
      This constructor supports the create method
      Parameters:
      g - the PostScript document graphics to make a copy of
  • Method Details

    • setupDocument

      public void setupDocument(OutputStream stream, int width, int height) throws IOException
      Setup the document.
      Parameters:
      stream - the output stream to write the document
      width - the width of the page
      height - the height of the page
      Throws:
      IOException - an io exception if there is a problem writing to the output stream
    • writeFileHeader

      protected abstract void writeFileHeader() throws IOException
      Writes the file header.
      Throws:
      IOException - if an I/O error occurs
    • setViewportDimension

      public void setViewportDimension(float w, float h) throws IOException
      Set the dimensions of the document that will be drawn. This is useful if the dimensions of the document are different from the PostScript document that is to be created. The result is scaled so that the document fits correctly inside the PostScript document.
      Parameters:
      w - the width of the page
      h - the height of the page
      Throws:
      IOException - in case of an I/O problem
    • setBackgroundColor

      public void setBackgroundColor(Color col)
      Set the background of the PostScript document. This is used to set the background for the PostScript document Rather than leaving it as the default white.
      Parameters:
      col - the background colour to fill
    • getPageCount

      public int getPageCount()
      Returns the number of pages generated so far.
      Returns:
      the number of pages
    • nextPage

      public void nextPage() throws IOException
      Closes the current page and prepares to start a new one.
      Throws:
      IOException - if an I/O error occurs
    • closePage

      protected void closePage() throws IOException
      Closes the current page.
      Throws:
      IOException - if an I/O error occurs
    • writePageHeader

      protected abstract void writePageHeader() throws IOException
      Writes the page header for a page.
      Throws:
      IOException - In case an I/O error occurs
    • writePageTrailer

      protected abstract void writePageTrailer() throws IOException
      Writes the page trailer for a page.
      Throws:
      IOException - In case an I/O error occurs
    • writeProcSets

      protected void writeProcSets() throws IOException
      Writes the ProcSets ending up in the prolog to the PostScript file. Override to add your own ProcSets if so desired.
      Throws:
      IOException - In case an I/O error occurs
    • preparePainting

      public void preparePainting()
      This method is used by AbstractPSDocumentGraphics2D to prepare a new page if necessary.
      Overrides:
      preparePainting in class PSGraphics2D
    • startPage

      protected void startPage() throws IOException
      Starts a new page.
      Throws:
      IOException - if an I/O error occurs
    • finish

      public void finish() throws IOException
      The rendering process has finished. This should be called after the rendering has completed as there is no other indication it is complete. This will then write the results to the output stream.
      Throws:
      IOException - an io exception if there is a problem writing to the output stream