Package org.apache.fop.render.ps
Class PSDocumentHandler
- java.lang.Object
-
- org.apache.fop.render.intermediate.AbstractIFDocumentHandler
-
- org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler
-
- org.apache.fop.render.ps.PSDocumentHandler
-
- All Implemented Interfaces:
IFDocumentHandler
public class PSDocumentHandler extends AbstractBinaryWritingIFDocumentHandler
IFDocumentHandlerimplementation that produces PostScript.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePSDocumentHandler.FOPPSGeneratorclassPSDocumentHandler.FOPPSGeneratorImplprivate static classPSDocumentHandler.PageDefinition
-
Field Summary
Fields Modifier and Type Field Description private static intCOMMENT_DOCUMENT_HEADERprivate static intCOMMENT_DOCUMENT_TRAILERprivate static intCOMMENT_PAGE_TRAILERprivate java.util.Collection[]commentsThis is a collection holding all document header commentsprivate PSDocumentHandler.PageDefinitioncurrentPageDefinitionprivate intcurrentPageNumberprivate java.awt.geom.Rectangle2DdocumentBoundingBoxIs used to determine the document's bounding boxprivate PSEventProducereventProducerprivate FontResourceCachefontResourcesThis is a cache of PSResource instances of all fonts definedprivate java.util.MapformResourcesThis is a map of PSResource instances of all forms (key: uri)(package private) org.apache.xmlgraphics.ps.PSGeneratorgenThe PostScript generator used to output the PostScriptprivate static org.apache.commons.logging.Logloglogging instanceprivate static intPAGE_TRAILER_CODE_BEFOREprivate org.apache.xmlgraphics.ps.PSPageDeviceDictionarypageDeviceDictionaryencapsulation of dictionary used in setpagedevice instructionprivate PSRenderingUtilpsUtilUtility class which enables all sorts of features that are not directly connected to the normal rendering process.private java.util.ListsetupCodeListUsed to temporarily store PSSetupCode instance until they can be written.private static org.apache.xmlgraphics.io.TempResourceURIGeneratorTEMP_URI_GENERATORprivate java.net.URItempURIthe temporary file in case of two-pass processing-
Fields inherited from class org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler
fontInfo, outputStream
-
-
Constructor Summary
Constructors Constructor Description PSDocumentHandler(IFContext context)Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidendDocument()Indicates the end of a document.voidendDocumentHeader()Indicates the end of the document header.voidendPage()Indicates the end of a pagevoidendPageContent()Indicates the end of the page content.voidendPageHeader()Indicates the end of the page header.voidendPageSequence()Indicates the end of a page sequence.voidendPageTrailer()Indicates the end of the page trailer.IFDocumentHandlerConfiguratorgetConfigurator()Returns the configurator for this document handler, if any.org.apache.xmlgraphics.ps.PSResourcegetFormForImage(java.lang.String uri)Returns a PSResource instance representing a image as a PostScript form.(package private) org.apache.xmlgraphics.ps.PSGeneratorgetGenerator()java.lang.StringgetMimeType()Returns the MIME type of the output format that is generated by this implementation.protected PSFontResourcegetPSResourceForFontKey(java.lang.String key)Returns the PSResource for the given font key.PSRenderingUtilgetPSUtil()voidhandleExtensionObject(java.lang.Object extension)Handles an extension object.private booleaninPage()private voidrewritePostScriptFile()Used for two-pass production.voidstartDocument()Indicates the start of a document.voidstartPage(int index, java.lang.String name, java.lang.String pageMasterName, java.awt.Dimension size)Indicates the start of a new page.IFPainterstartPageContent()Indicates the start of the page content.voidstartPageHeader()Indicates the start of the page header.voidstartPageSequence(java.lang.String id)Indicates the start of a new page sequence.voidstartPageTrailer()Indicates the start of the page trailer.booleansupportsPagesOutOfOrder()Indicates whether the painter supports to handle the pages in mixed order rather than ascending order.private voidwriteExtensions(int which)private voidwriteHeader()-
Methods inherited from class org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler
getFontInfo, setDefaultFontInfo, setFontInfo, setResult
-
Methods inherited from class org.apache.fop.render.intermediate.AbstractIFDocumentHandler
endDocumentTrailer, getContext, getDocumentNavigationHandler, getStructureTreeEventHandler, getUserAgent, setDocumentLocale, startDocumentHeader, startDocumentTrailer
-
-
-
-
Field Detail
-
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 java.net.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 java.awt.geom.Rectangle2D documentBoundingBox
Is used to determine the document's bounding box
-
setupCodeList
private java.util.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 java.util.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 java.util.Collection[] comments
This is a collection holding all document header comments
-
COMMENT_DOCUMENT_HEADER
private static final int COMMENT_DOCUMENT_HEADER
- See Also:
- Constant Field Values
-
COMMENT_DOCUMENT_TRAILER
private static final int COMMENT_DOCUMENT_TRAILER
- See Also:
- Constant Field Values
-
COMMENT_PAGE_TRAILER
private static final int COMMENT_PAGE_TRAILER
- See Also:
- Constant Field Values
-
PAGE_TRAILER_CODE_BEFORE
private static final int PAGE_TRAILER_CODE_BEFORE
- See Also:
- Constant Field Values
-
eventProducer
private PSEventProducer eventProducer
-
-
Constructor Detail
-
PSDocumentHandler
public PSDocumentHandler(IFContext context)
Default constructor.
-
-
Method Detail
-
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 java.lang.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 IFExceptionIndicates the start of a document. This method may only be called once before any other event method.- Specified by:
startDocumentin interfaceIFDocumentHandler- Overrides:
startDocumentin classAbstractBinaryWritingIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
writeHeader
private void writeHeader() throws java.io.IOException- Throws:
java.io.IOException
-
endDocumentHeader
public void endDocumentHeader() throws IFExceptionIndicates the end of the document header. This method is called before the first page sequence.- Specified by:
endDocumentHeaderin interfaceIFDocumentHandler- Overrides:
endDocumentHeaderin classAbstractIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
endDocument
public void endDocument() throws IFExceptionIndicates 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:
endDocumentin interfaceIFDocumentHandler- Overrides:
endDocumentin classAbstractBinaryWritingIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
rewritePostScriptFile
private void rewritePostScriptFile() throws java.io.IOExceptionUsed for two-pass production. This will rewrite the PostScript file from the temporary file while adding all needed resources.- Throws:
java.io.IOException- In case of an I/O error.
-
startPageSequence
public void startPageSequence(java.lang.String id) throws IFExceptionIndicates 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 IFExceptionIndicates the end of a page sequence.- Throws:
IFException- if an error occurs while handling this event
-
startPage
public void startPage(int index, java.lang.String name, java.lang.String pageMasterName, java.awt.Dimension size) throws IFExceptionIndicates 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 pagesize- 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 IFExceptionIndicates the start of the page header.- Specified by:
startPageHeaderin interfaceIFDocumentHandler- Overrides:
startPageHeaderin classAbstractIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
endPageHeader
public void endPageHeader() throws IFExceptionIndicates the end of the page header.- Specified by:
endPageHeaderin interfaceIFDocumentHandler- Overrides:
endPageHeaderin classAbstractIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
writeExtensions
private void writeExtensions(int which) throws java.io.IOException- Throws:
java.io.IOException
-
startPageContent
public IFPainter startPageContent() throws IFException
Indicates the start of the page content. The method returns anIFPainterinterface 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 IFExceptionIndicates the end of the page content. Calls to theIFPainterreturned by the respectiveIFDocumentHandler.startPageContent()method are illegal.- Throws:
IFException- if an error occurs while handling this event
-
startPageTrailer
public void startPageTrailer() throws IFExceptionIndicates 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:
startPageTrailerin interfaceIFDocumentHandler- Overrides:
startPageTrailerin classAbstractIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
endPageTrailer
public void endPageTrailer() throws IFExceptionIndicates the end of the page trailer.- Specified by:
endPageTrailerin interfaceIFDocumentHandler- Overrides:
endPageTrailerin classAbstractIFDocumentHandler- Throws:
IFException- if an error occurs while handling this event
-
endPage
public void endPage() throws IFExceptionIndicates the end of a page- Throws:
IFException- if an error occurs while handling this event
-
inPage
private boolean inPage()
-
handleExtensionObject
public void handleExtensionObject(java.lang.Object extension) throws IFExceptionHandles 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(java.lang.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(java.lang.String uri)
Returns a PSResource instance representing a image as a PostScript form.- Parameters:
uri- the image URI- Returns:
- a PSResource instance
-
-