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
IFDocumentHandler
implementation that produces PDF.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
PDFDocumentHandler.PageReference
-
Field Summary
Fields Modifier and Type Field Description private boolean
accessEnabled
private java.util.Map<java.lang.String,PDFReference>
contents
private PDFPage
currentPage
the current page to add annotations toprivate PDFDocumentHandler.PageReference
currentPageRef
the current page's PDF referenceprivate PDFDocumentNavigationHandler
documentNavigationHandler
private PDFContentGenerator
generator
The current content generatorprivate static org.apache.commons.logging.Log
log
logging instanceprivate PDFLogicalStructureHandler
logicalStructureHandler
private java.util.Map<java.lang.Integer,PDFArray>
pageNumbers
private java.util.Map<java.lang.Integer,PDFDocumentHandler.PageReference>
pageReferences
Used for bookmarks/outlines.private PDFDocument
pdfDoc
the PDF Document being createdprivate PDFResources
pdfResources
the /Resources object of the PDF document being createdprivate PDFRenderingUtil
pdfUtil
Utility class which enables all sorts of features that are not directly connected to the normal rendering process.private PDFStructureTreeBuilder
structureTreeBuilder
private 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 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
endPageSequence()
Indicates the end of a page sequence.IFDocumentHandlerConfigurator
getConfigurator()
Returns the configurator for this document handler, if any.(package private) PDFPage
getCurrentPage()
(package private) PDFDocumentHandler.PageReference
getCurrentPageRef()
IFDocumentNavigationHandler
getDocumentNavigationHandler()
Returns a document navigation handler if this feature is supported.(package private) PDFContentGenerator
getGenerator()
(package private) PDFLogicalStructureHandler
getLogicalStructureHandler()
java.lang.String
getMimeType()
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.PageReference
getPageReference(int pageIndex)
(package private) PDFDocument
getPDFDocument()
StructureTreeEventHandler
getStructureTreeEventHandler()
java.util.Map<java.lang.String,java.lang.Object>
getUsedFieldNames()
void
handleExtensionObject(java.lang.Object extension)
Handles an extension object.(package private) void
mergeRendererOptionsConfig(PDFRendererOptionsConfig config)
void
setDocumentLocale(java.util.Locale locale)
private void
setupAccessibility()
private void
setUpContents()
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
startPageSequence(java.lang.String id)
Indicates the start of a new page sequence.boolean
supportsPagesOutOfOrder()
Indicates whether the painter supports to handle the pages in mixed order rather than ascending order.private java.awt.geom.Rectangle2D
toPDFCoordSystem(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
-
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
-
-
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:
getDocumentNavigationHandler
in interfaceIFDocumentHandler
- Overrides:
getDocumentNavigationHandler
in 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 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
-
setupAccessibility
private void setupAccessibility()
-
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
-
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
-
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 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
-
endPage
public void endPage() throws IFException
Indicates 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 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
-
setDocumentLocale
public void setDocumentLocale(java.util.Locale locale)
- Specified by:
setDocumentLocale
in interfaceIFDocumentHandler
- Overrides:
setDocumentLocale
in classAbstractIFDocumentHandler
- Parameters:
locale
- Locale of the document.
-
getPageReference
PDFDocumentHandler.PageReference getPageReference(int pageIndex)
-
getStructureTreeEventHandler
public StructureTreeEventHandler getStructureTreeEventHandler()
Description copied from class:AbstractIFDocumentHandler
- Specified by:
getStructureTreeEventHandler
in interfaceIFDocumentHandler
- Overrides:
getStructureTreeEventHandler
in 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()
-
-