Class PSDocumentHandler

All Implemented Interfaces:
IFDocumentHandler

public class PSDocumentHandler extends AbstractBinaryWritingIFDocumentHandler
IFDocumentHandler implementation that produces PostScript.
  • Field Details

    • log

      private static org.apache.commons.logging.Log log
      logging instance
    • psUtil

      private PSRenderingUtil psUtil
      Utility class which enables all sorts of features that are not directly connected to the normal rendering process.
    • gen

      org.apache.xmlgraphics.ps.PSGenerator gen
      The PostScript generator used to output the PostScript
    • tempURI

      private URI tempURI
      the temporary file in case of two-pass processing
    • TEMP_URI_GENERATOR

      private static final org.apache.xmlgraphics.io.TempResourceURIGenerator TEMP_URI_GENERATOR
    • currentPageNumber

      private int currentPageNumber
    • currentPageDefinition

      private PSDocumentHandler.PageDefinition currentPageDefinition
    • documentBoundingBox

      private Rectangle2D documentBoundingBox
      Is used to determine the document's bounding box
    • setupCodeList

      private List setupCodeList
      Used to temporarily store PSSetupCode instance until they can be written.
    • fontResources

      private FontResourceCache fontResources
      This is a cache of PSResource instances of all fonts defined
    • formResources

      private Map formResources
      This is a map of PSResource instances of all forms (key: uri)
    • pageDeviceDictionary

      private org.apache.xmlgraphics.ps.PSPageDeviceDictionary pageDeviceDictionary
      encapsulation of dictionary used in setpagedevice instruction
    • comments

      private Collection[] comments
      This is a collection holding all document header comments
    • COMMENT_DOCUMENT_HEADER

      private static final int COMMENT_DOCUMENT_HEADER
      See Also:
    • COMMENT_DOCUMENT_TRAILER

      private static final int COMMENT_DOCUMENT_TRAILER
      See Also:
    • COMMENT_PAGE_TRAILER

      private static final int COMMENT_PAGE_TRAILER
      See Also:
    • PAGE_TRAILER_CODE_BEFORE

      private static final int PAGE_TRAILER_CODE_BEFORE
      See Also:
    • eventProducer

      private PSEventProducer eventProducer
  • Constructor Details

    • PSDocumentHandler

      public PSDocumentHandler(IFContext context)
      Default constructor.
  • Method Details

    • supportsPagesOutOfOrder

      public boolean supportsPagesOutOfOrder()
      Indicates whether the painter supports to handle the pages in mixed order rather than ascending order.
      Returns:
      true if out-of-order handling is supported
    • getMimeType

      public String getMimeType()
      Returns the MIME type of the output format that is generated by this implementation.
      Returns:
      the MIME type
    • getGenerator

      org.apache.xmlgraphics.ps.PSGenerator getGenerator()
    • getConfigurator

      public IFDocumentHandlerConfigurator getConfigurator()
      Returns the configurator for this document handler, if any.
      Returns:
      the configurator or null if there's no configurator
    • getPSUtil

      public PSRenderingUtil getPSUtil()
    • startDocument

      public void startDocument() throws IFException
      Indicates the start of a document. This method may only be called once before any other event method.
      Specified by:
      startDocument in interface IFDocumentHandler
      Overrides:
      startDocument in class AbstractBinaryWritingIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • writeHeader

      private void writeHeader() throws IOException
      Throws:
      IOException
    • endDocumentHeader

      public void endDocumentHeader() throws IFException
      Indicates the end of the document header. This method is called before the first page sequence.
      Specified by:
      endDocumentHeader in interface IFDocumentHandler
      Overrides:
      endDocumentHeader in class AbstractIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • endDocument

      public void endDocument() throws IFException
      Indicates the end of a document. This method may only be called once after the whole document has been handled. Implementations can release resources (close streams). It is an error to call any event method after this method.
      Specified by:
      endDocument in interface IFDocumentHandler
      Overrides:
      endDocument in class AbstractBinaryWritingIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • rewritePostScriptFile

      private void rewritePostScriptFile() throws IOException
      Used for two-pass production. This will rewrite the PostScript file from the temporary file while adding all needed resources.
      Throws:
      IOException - In case of an I/O error.
    • startPageSequence

      public void startPageSequence(String id) throws IFException
      Indicates the start of a new page sequence.
      Parameters:
      id - the page sequence's identifier (or null if none is available)
      Throws:
      IFException - if an error occurs while handling this event
    • endPageSequence

      public void endPageSequence() throws IFException
      Indicates the end of a page sequence.
      Throws:
      IFException - if an error occurs while handling this event
    • startPage

      public void startPage(int index, String name, String pageMasterName, Dimension size) throws IFException
      Indicates the start of a new page.
      Parameters:
      index - the index of the page (0-based)
      name - the page name (usually the formatted page number)
      pageMasterName - the name of the simple-page-master that generated this page
      size - the size of the page (equivalent to the MediaBox in PDF)
      Throws:
      IFException - if an error occurs while handling this event
    • startPageHeader

      public void startPageHeader() throws IFException
      Indicates the start of the page header.
      Specified by:
      startPageHeader in interface IFDocumentHandler
      Overrides:
      startPageHeader in class AbstractIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • endPageHeader

      public void endPageHeader() throws IFException
      Indicates the end of the page header.
      Specified by:
      endPageHeader in interface IFDocumentHandler
      Overrides:
      endPageHeader in class AbstractIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • writeExtensions

      private void writeExtensions(int which) throws IOException
      Throws:
      IOException
    • startPageContent

      public IFPainter startPageContent() throws IFException
      Indicates the start of the page content. The method returns an IFPainter interface which is used to paint the page contents.
      Returns:
      the IFPainter for the page content
      Throws:
      IFException - if an error occurs while handling this event
    • endPageContent

      public void endPageContent() throws IFException
      Indicates the end of the page content. Calls to the IFPainter returned by the respective IFDocumentHandler.startPageContent() method are illegal.
      Throws:
      IFException - if an error occurs while handling this event
    • startPageTrailer

      public void startPageTrailer() throws IFException
      Indicates the start of the page trailer. The page trailer is used for writing down page elements which are only know after handling the page itself (like PDF targets).
      Specified by:
      startPageTrailer in interface IFDocumentHandler
      Overrides:
      startPageTrailer in class AbstractIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • endPageTrailer

      public void endPageTrailer() throws IFException
      Indicates the end of the page trailer.
      Specified by:
      endPageTrailer in interface IFDocumentHandler
      Overrides:
      endPageTrailer in class AbstractIFDocumentHandler
      Throws:
      IFException - if an error occurs while handling this event
    • endPage

      public void endPage() throws IFException
      Indicates the end of a page
      Throws:
      IFException - if an error occurs while handling this event
    • inPage

      private boolean inPage()
    • handleExtensionObject

      public void handleExtensionObject(Object extension) throws IFException
      Handles an extension object. This can be a DOM document or any arbitrary object. If an implementation doesn't know how to handle a particular extension it is simply ignored.
      Parameters:
      extension - the extension object
      Throws:
      IFException - if an error occurs while handling this event
    • getPSResourceForFontKey

      protected PSFontResource getPSResourceForFontKey(String key)
      Returns the PSResource for the given font key.
      Parameters:
      key - the font key ("F*")
      Returns:
      the matching PSResource
    • getFormForImage

      public org.apache.xmlgraphics.ps.PSResource getFormForImage(String uri)
      Returns a PSResource instance representing a image as a PostScript form.
      Parameters:
      uri - the image URI
      Returns:
      a PSResource instance