Package org.apache.fop.render.pdf
Class PDFDocumentHandler
- java.lang.Object
-
- org.apache.fop.render.intermediate.AbstractIFDocumentHandler
-
- org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler
-
- org.apache.fop.render.pdf.PDFDocumentHandler
-
- All Implemented Interfaces:
IFDocumentHandler
public class PDFDocumentHandler extends AbstractBinaryWritingIFDocumentHandler
IFDocumentHandlerimplementation that produces PDF.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classPDFDocumentHandler.PageReference
-
Field Summary
Fields Modifier and Type Field Description private booleanaccessEnabledprivate java.util.Map<java.lang.String,PDFReference>contentsprivate PDFPagecurrentPagethe current page to add annotations toprivate PDFDocumentHandler.PageReferencecurrentPageRefthe current page's PDF referenceprivate PDFDocumentNavigationHandlerdocumentNavigationHandlerprivate PDFContentGeneratorgeneratorThe current content generatorprivate static org.apache.commons.logging.Logloglogging instanceprivate PDFLogicalStructureHandlerlogicalStructureHandlerprivate java.io.OutputStreamorgOutputStreamprivate java.util.Map<java.lang.Integer,PDFArray>pageNumbersprivate java.util.Map<java.lang.Integer,PDFDocumentHandler.PageReference>pageReferencesUsed for bookmarks/outlines.private PDFDocumentpdfDocthe PDF Document being createdprivate PDFResourcespdfResourcesthe /Resources object of the PDF document being createdprivate PDFSignaturepdfSignatureprivate PDFRenderingUtilpdfUtilUtility class which enables all sorts of features that are not directly connected to the normal rendering process.private static org.apache.xmlgraphics.io.TempResourceURIGeneratorSIGN_TEMP_URI_GENERATORprivate java.net.URIsignTempURIprivate PDFStructureTreeBuilderstructureTreeBuilderprivate java.util.Map<java.lang.String,java.lang.Object>usedFieldNames-
Fields inherited from class org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler
fontInfo, outputStream
-
-
Constructor Summary
Constructors Constructor Description PDFDocumentHandler(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.voidendPageSequence()Indicates the end of a page sequence.IFDocumentHandlerConfiguratorgetConfigurator()Returns the configurator for this document handler, if any.(package private) PDFPagegetCurrentPage()(package private) PDFDocumentHandler.PageReferencegetCurrentPageRef()IFDocumentNavigationHandlergetDocumentNavigationHandler()Returns a document navigation handler if this feature is supported.(package private) PDFContentGeneratorgetGenerator()(package private) PDFLogicalStructureHandlergetLogicalStructureHandler()java.lang.StringgetMimeType()Returns the MIME type of the output format that is generated by this implementation.java.util.Map<java.lang.Integer,PDFArray>getPageNumbers()(package private) PDFDocumentHandler.PageReferencegetPageReference(int pageIndex)(package private) PDFDocumentgetPDFDocument()StructureTreeEventHandlergetStructureTreeEventHandler()java.util.Map<java.lang.String,java.lang.Object>getUsedFieldNames()voidhandleExtensionObject(java.lang.Object extension)Handles an extension object.(package private) voidmergeRendererOptionsConfig(PDFRendererOptionsConfig config)voidsetDocumentLocale(java.util.Locale locale)private voidsetupAccessibility()private voidsetUpContents()private voidsetupPDFSigning()private voidsignPDF()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.voidstartPageSequence(java.lang.String id)Indicates the start of a new page sequence.booleansupportsPagesOutOfOrder()Indicates whether the painter supports to handle the pages in mixed order rather than ascending order.private java.awt.geom.Rectangle2DtoPDFCoordSystem(java.awt.Rectangle box, java.awt.geom.AffineTransform transform)-
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, endPageHeader, endPageTrailer, getContext, getUserAgent, startDocumentHeader, startDocumentTrailer, startPageHeader, startPageTrailer
-
-
-
-
Field Detail
-
log
private static org.apache.commons.logging.Log log
logging instance
-
SIGN_TEMP_URI_GENERATOR
private static final org.apache.xmlgraphics.io.TempResourceURIGenerator SIGN_TEMP_URI_GENERATOR
-
accessEnabled
private boolean accessEnabled
-
logicalStructureHandler
private PDFLogicalStructureHandler logicalStructureHandler
-
structureTreeBuilder
private PDFStructureTreeBuilder structureTreeBuilder
-
pdfDoc
private PDFDocument pdfDoc
the PDF Document being created
-
pdfUtil
private final PDFRenderingUtil pdfUtil
Utility class which enables all sorts of features that are not directly connected to the normal rendering process.
-
pdfResources
private PDFResources pdfResources
the /Resources object of the PDF document being created
-
generator
private PDFContentGenerator generator
The current content generator
-
currentPage
private PDFPage currentPage
the current page to add annotations to
-
currentPageRef
private PDFDocumentHandler.PageReference currentPageRef
the current page's PDF reference
-
pageReferences
private java.util.Map<java.lang.Integer,PDFDocumentHandler.PageReference> pageReferences
Used for bookmarks/outlines.
-
documentNavigationHandler
private final PDFDocumentNavigationHandler documentNavigationHandler
-
usedFieldNames
private java.util.Map<java.lang.String,java.lang.Object> usedFieldNames
-
pageNumbers
private java.util.Map<java.lang.Integer,PDFArray> pageNumbers
-
contents
private java.util.Map<java.lang.String,PDFReference> contents
-
pdfSignature
private PDFSignature pdfSignature
-
signTempURI
private java.net.URI signTempURI
-
orgOutputStream
private java.io.OutputStream orgOutputStream
-
-
Constructor Detail
-
PDFDocumentHandler
public PDFDocumentHandler(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
-
getConfigurator
public IFDocumentHandlerConfigurator getConfigurator()
Returns the configurator for this document handler, if any.- Returns:
- the configurator or null if there's no configurator
-
getDocumentNavigationHandler
public IFDocumentNavigationHandler getDocumentNavigationHandler()
Returns a document navigation handler if this feature is supported.- Specified by:
getDocumentNavigationHandlerin interfaceIFDocumentHandler- Overrides:
getDocumentNavigationHandlerin classAbstractIFDocumentHandler- Returns:
- the document navigation handler or null if not supported
-
mergeRendererOptionsConfig
void mergeRendererOptionsConfig(PDFRendererOptionsConfig config)
-
getLogicalStructureHandler
PDFLogicalStructureHandler getLogicalStructureHandler()
-
getPDFDocument
PDFDocument getPDFDocument()
-
getCurrentPage
PDFPage getCurrentPage()
-
getCurrentPageRef
PDFDocumentHandler.PageReference getCurrentPageRef()
-
getGenerator
PDFContentGenerator getGenerator()
-
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
-
setupPDFSigning
private void setupPDFSigning() throws java.io.IOException- Throws:
java.io.IOException
-
setupAccessibility
private void setupAccessibility()
-
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
-
signPDF
private void signPDF()
-
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
-
toPDFCoordSystem
private java.awt.geom.Rectangle2D toPDFCoordSystem(java.awt.Rectangle box, java.awt.geom.AffineTransform transform)
-
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
-
endPage
public void endPage() throws IFExceptionIndicates the end of a page- Throws:
IFException- if an error occurs while handling this event
-
setUpContents
private void setUpContents() throws java.io.IOException- Throws:
java.io.IOException
-
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
-
setDocumentLocale
public void setDocumentLocale(java.util.Locale locale)
- Specified by:
setDocumentLocalein interfaceIFDocumentHandler- Overrides:
setDocumentLocalein classAbstractIFDocumentHandler- Parameters:
locale- Locale of the document.
-
getPageReference
PDFDocumentHandler.PageReference getPageReference(int pageIndex)
-
getStructureTreeEventHandler
public StructureTreeEventHandler getStructureTreeEventHandler()
Description copied from class:AbstractIFDocumentHandler- Specified by:
getStructureTreeEventHandlerin interfaceIFDocumentHandler- Overrides:
getStructureTreeEventHandlerin classAbstractIFDocumentHandler- Returns:
- the structure tree builder
-
getUsedFieldNames
public java.util.Map<java.lang.String,java.lang.Object> getUsedFieldNames()
-
getPageNumbers
public java.util.Map<java.lang.Integer,PDFArray> getPageNumbers()
-
-