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
IFDocumentHandler
implementation that produces PostScript.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
PSDocumentHandler.FOPPSGenerator
class
PSDocumentHandler.FOPPSGeneratorImpl
private static class
PSDocumentHandler.PageDefinition
-
Field Summary
Fields Modifier and Type Field Description private static int
COMMENT_DOCUMENT_HEADER
private static int
COMMENT_DOCUMENT_TRAILER
private static int
COMMENT_PAGE_TRAILER
private java.util.Collection[]
comments
This is a collection holding all document header commentsprivate PSDocumentHandler.PageDefinition
currentPageDefinition
private int
currentPageNumber
private java.awt.geom.Rectangle2D
documentBoundingBox
Is used to determine the document's bounding boxprivate PSEventProducer
eventProducer
private FontResourceCache
fontResources
This is a cache of PSResource instances of all fonts definedprivate java.util.Map
formResources
This is a map of PSResource instances of all forms (key: uri)(package private) org.apache.xmlgraphics.ps.PSGenerator
gen
The PostScript generator used to output the PostScriptprivate static org.apache.commons.logging.Log
log
logging instanceprivate static int
PAGE_TRAILER_CODE_BEFORE
private org.apache.xmlgraphics.ps.PSPageDeviceDictionary
pageDeviceDictionary
encapsulation of dictionary used in setpagedevice instructionprivate PSRenderingUtil
psUtil
Utility class which enables all sorts of features that are not directly connected to the normal rendering process.private java.util.List
setupCodeList
Used to temporarily store PSSetupCode instance until they can be written.private static org.apache.xmlgraphics.io.TempResourceURIGenerator
TEMP_URI_GENERATOR
private java.net.URI
tempURI
the 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 void
endDocument()
Indicates the end of a document.void
endDocumentHeader()
Indicates the end of the document header.void
endPage()
Indicates the end of a pagevoid
endPageContent()
Indicates the end of the page content.void
endPageHeader()
Indicates the end of the page header.void
endPageSequence()
Indicates the end of a page sequence.void
endPageTrailer()
Indicates the end of the page trailer.IFDocumentHandlerConfigurator
getConfigurator()
Returns the configurator for this document handler, if any.org.apache.xmlgraphics.ps.PSResource
getFormForImage(java.lang.String uri)
Returns a PSResource instance representing a image as a PostScript form.(package private) org.apache.xmlgraphics.ps.PSGenerator
getGenerator()
java.lang.String
getMimeType()
Returns the MIME type of the output format that is generated by this implementation.protected PSFontResource
getPSResourceForFontKey(java.lang.String key)
Returns the PSResource for the given font key.PSRenderingUtil
getPSUtil()
void
handleExtensionObject(java.lang.Object extension)
Handles an extension object.private boolean
inPage()
private void
rewritePostScriptFile()
Used for two-pass production.void
startDocument()
Indicates the start of a document.void
startPage(int index, java.lang.String name, java.lang.String pageMasterName, java.awt.Dimension size)
Indicates the start of a new page.IFPainter
startPageContent()
Indicates the start of the page content.void
startPageHeader()
Indicates the start of the page header.void
startPageSequence(java.lang.String id)
Indicates the start of a new page sequence.void
startPageTrailer()
Indicates the start of the page trailer.boolean
supportsPagesOutOfOrder()
Indicates whether the painter supports to handle the pages in mixed order rather than ascending order.private void
writeExtensions(int which)
private void
writeHeader()
-
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 IFException
Indicates the start of a document. This method may only be called once before any other event method.- Specified by:
startDocument
in interfaceIFDocumentHandler
- Overrides:
startDocument
in 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 IFException
Indicates the end of the document header. This method is called before the first page sequence.- Specified by:
endDocumentHeader
in interfaceIFDocumentHandler
- Overrides:
endDocumentHeader
in classAbstractIFDocumentHandler
- 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 interfaceIFDocumentHandler
- Overrides:
endDocument
in classAbstractBinaryWritingIFDocumentHandler
- Throws:
IFException
- if an error occurs while handling this event
-
rewritePostScriptFile
private void rewritePostScriptFile() throws java.io.IOException
Used 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 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, java.lang.String name, java.lang.String pageMasterName, java.awt.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 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 IFException
Indicates the start of the page header.- Specified by:
startPageHeader
in interfaceIFDocumentHandler
- Overrides:
startPageHeader
in classAbstractIFDocumentHandler
- 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 interfaceIFDocumentHandler
- Overrides:
endPageHeader
in 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 anIFPainter
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 theIFPainter
returned by the respectiveIFDocumentHandler.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 interfaceIFDocumentHandler
- Overrides:
startPageTrailer
in classAbstractIFDocumentHandler
- 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 interfaceIFDocumentHandler
- Overrides:
endPageTrailer
in classAbstractIFDocumentHandler
- 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(java.lang.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(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
-
-