Package com.openhtmltopdf.pdfboxout
Class PdfBoxRenderer
java.lang.Object
com.openhtmltopdf.pdfboxout.PdfBoxRenderer
- All Implemented Interfaces:
PageSupplier
,Closeable
,AutoCloseable
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate byte[]
private byte
private Document
private final List
<FSDOMMutator> private final float
private final int
private PDFCreationListener
private SVGDrawer
private OutputStream
private final PdfBoxOutputDevice
private PageSupplier
private org.apache.pdfbox.pdmodel.PDDocument
private org.apache.pdfbox.pdmodel.encryption.PDEncryption
private boolean
private float
private String
private BidiReorderer
private BlockBox
private final SharedContext
private BidiSplitterFactory
private SVGDrawer
private boolean
private final boolean
private static final int
private static final float
private static final int
private final Closeable
private final Comparator
<PagePosition<?>> Start page to end page and then top to bottom on page. -
Constructor Summary
ConstructorsConstructorDescriptionPdfBoxRenderer
(BaseDocument doc, UnicodeImplementation unicode, PageDimensions pageSize, PdfRendererBuilderState state, Closeable diagnosticConsumer) This method is constantly changing as options are added to the builder. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addPdfASchema
(org.apache.pdfbox.pdmodel.PDDocument document, PdfRendererBuilder.PdfAConformance pdfAConformance, boolean isPdfUa) void
cleanup()
Deprecated.Use close instead.void
close()
Cleanup thread resources.private <T> PagePosition
<T> createPagePosition
(String id, T element, int pageNo, float x, float y, float w, float h) void
Creates a PDF with setup specified by builder.void
Deprecated.Use builder to set output stream.void
createPDF
(OutputStream os, boolean finish) Deprecated.Use builder to set output stream.void
createPDF
(OutputStream os, boolean finish, int initialPageNo) Deprecated.Use builder to set output stream.private org.apache.xmpbox.schema.XMPSchema
createPdfaProperty
(String category, String description, String name, String valueType) private org.apache.xmpbox.schema.XMPSchema
createPdfaSchema
(String schema, String namespace, String prefix, List<org.apache.xmpbox.schema.XMPSchema> properties) private void
createPdfFast
(boolean finish, int initialPageNo) Go fast!void
Creates a PDF with setup specified by builder.private String
createXPacket
(String metadata) void
exportText
(Writer writer) Deprecated.unused and untested.private int
findEndPage
(RenderingContext c, Layer layer, List<PageBox> pages) Returns the end page number for a layer.findPagePositionsByID
(Pattern pattern) private int
findStartPage
(RenderingContext c, Layer layer, List<PageBox> pages) Returns the start page for a layer.void
Deprecated.private void
private void
private void
firePreWrite
(int pageCount) float
private static Element
getFirstChildElement
(Element element) Get the PDF-BOX font resolver.private Rectangle
float
Returns the bottom Y postion in bottom-up PDF units on the last page of content.private List
<PagePosition<Layer>> getLayerPagePositions
(Layer layer, List<PageBox> pages, RenderingContext ctx) getLayerPositions
(Layer layer) Returns a list of page positions for a single layer.Returns a list of page positions for all layers in the document.org.apache.pdfbox.pdmodel.PDDocument
Returns the PDDocument or null if it has been closed.float
void
layout()
private Document
loadDocument
(String uri) private LayoutContext
private RenderingContext
private void
paintPage
(RenderingContext c, PageBox page) private void
paintPageFast
(RenderingContext c, PageBox page, DisplayListContainer.DisplayListPageContainer pageOperations, int additionalTranslateX) org.apache.pdfbox.pdmodel.PDPage
requestPage
(org.apache.pdfbox.pdmodel.PDDocument doc, float pageWidth, float pageHeight, int pageNumber, int shadowPageNumber) Called whenever a page or shadow-page is needed.private void
setDidValues
(org.apache.pdfbox.pdmodel.PDDocument doc) private void
setDocumentFromStringP
(String content, String baseUrl) private void
setDocumentP
(File file) private void
setDocumentP
(String uri) private void
setDocumentP
(Document doc, String url) private void
setDocumentP
(Document doc, String url, NamespaceHandler nsh) void
setListener
(PDFCreationListener listener) private String
stringfyMetadata
(Element element) void
Deprecated.Doubt this still works as untested.void
writeNextDocument
(int initialPageNo) Deprecated.Doubt this still works as untested.private void
writePDF
(List<PageBox> pages, RenderingContext c, Rectangle2D firstPageSize, org.apache.pdfbox.pdmodel.PDDocument doc) private void
writePDFFast
(List<PageBox> pages, RenderingContext c, Rectangle2D firstPageSize, org.apache.pdfbox.pdmodel.PDDocument doc)
-
Field Details
-
DEFAULT_DOTS_PER_POINT
private static final float DEFAULT_DOTS_PER_POINT- See Also:
-
DEFAULT_DOTS_PER_PIXEL
private static final int DEFAULT_DOTS_PER_PIXEL- See Also:
-
DEFAULT_PDF_POINTS_PER_INCH
private static final int DEFAULT_PDF_POINTS_PER_INCH- See Also:
-
_outputDevice
-
_domMutators
-
_doc
-
_root
-
_dotsPerPoint
private final float _dotsPerPoint -
_pdfDoc
private org.apache.pdfbox.pdmodel.PDDocument _pdfDoc -
_pdfEncryption
private org.apache.pdfbox.pdmodel.encryption.PDEncryption _pdfEncryption -
_producer
-
_pdfVersion
private float _pdfVersion -
_pdfAConformance
-
_pdfUaConformance
private boolean _pdfUaConformance -
_colorProfile
private byte[] _colorProfile -
_testMode
private boolean _testMode -
_listener
-
_os
-
_svgImpl
-
_mathmlImpl
-
_splitterFactory
-
_defaultTextDirection
private byte _defaultTextDirection -
_reorderer
-
_useFastMode
private final boolean _useFastMode -
_pageSupplier
-
diagnosticConsumer
-
_initialPageNumber
private final int _initialPageNumber -
PAGE_POSITION_COMPARATOR
Start page to end page and then top to bottom on page.
-
-
Constructor Details
-
PdfBoxRenderer
PdfBoxRenderer(BaseDocument doc, UnicodeImplementation unicode, PageDimensions pageSize, PdfRendererBuilderState state, Closeable diagnosticConsumer) This method is constantly changing as options are added to the builder.
-
-
Method Details
-
getDocument
-
getPdfDocument
public org.apache.pdfbox.pdmodel.PDDocument getPdfDocument()Returns the PDDocument or null if it has been closed. -
getFontResolver
Get the PDF-BOX font resolver. Can be used to add fonts in code.- Returns:
-
loadDocument
-
setDocumentP
-
setDocumentP
-
setDocumentP
- Throws:
IOException
-
setDocumentFromStringP
-
setDocumentP
-
getPDFVersion
public float getPDFVersion() -
layout
public void layout() -
getInitialExtents
-
newRenderingContext
-
newLayoutContext
-
createPDF
Creates a PDF with setup specified by builder. On finsihing or failing, saves (if successful) and closes the PDF document.- Throws:
IOException
-
createPDFWithoutClosing
Creates a PDF with setup specified by builder. On finsihing or failing, DOES NOT save or close the PDF document. Useful for post-processing the PDDocument which can be retrieved by getPdfDocument().- Throws:
IOException
-
createPDF
Deprecated.Use builder to set output stream.- Parameters:
os
-- Throws:
IOException
-
writeNextDocument
Deprecated.Doubt this still works as untested.- Throws:
IOException
-
writeNextDocument
Deprecated.Doubt this still works as untested.- Throws:
IOException
-
finishPDF
Deprecated.- Throws:
IOException
-
createPDF
Deprecated.Use builder to set output stream.- Throws:
IOException
-
createPDF
@Deprecated public void createPDF(OutputStream os, boolean finish, int initialPageNo) throws IOException Deprecated.Use builder to set output stream. NOTE: Caller is responsible for cleaning up the OutputStream.- Throws:
IOException
-
createPdfFast
Go fast!- Throws:
IOException
-
firePreOpen
private void firePreOpen() -
firePreWrite
private void firePreWrite(int pageCount) -
fireOnClose
private void fireOnClose() -
writePDFFast
private void writePDFFast(List<PageBox> pages, RenderingContext c, Rectangle2D firstPageSize, org.apache.pdfbox.pdmodel.PDDocument doc) throws IOException - Throws:
IOException
-
writePDF
private void writePDF(List<PageBox> pages, RenderingContext c, Rectangle2D firstPageSize, org.apache.pdfbox.pdmodel.PDDocument doc) throws IOException - Throws:
IOException
-
addPdfASchema
private void addPdfASchema(org.apache.pdfbox.pdmodel.PDDocument document, PdfRendererBuilder.PdfAConformance pdfAConformance, boolean isPdfUa) -
createPdfaSchema
-
createPdfaProperty
-
setDidValues
private void setDidValues(org.apache.pdfbox.pdmodel.PDDocument doc) -
paintPageFast
private void paintPageFast(RenderingContext c, PageBox page, DisplayListContainer.DisplayListPageContainer pageOperations, int additionalTranslateX) -
paintPage
-
stringfyMetadata
-
getFirstChildElement
-
createXPacket
-
getOutputDevice
-
exportText
Deprecated.unused and untested.- Parameters:
writer
-- Throws:
IOException
-
getRootBox
-
getDotsPerPoint
public float getDotsPerPoint() -
findPagePositionsByID
-
getListener
-
setListener
-
cleanup
Deprecated.Use close instead. -
close
public void close()Cleanup thread resources. MUST be called after finishing with the renderer.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
requestPage
public org.apache.pdfbox.pdmodel.PDPage requestPage(org.apache.pdfbox.pdmodel.PDDocument doc, float pageWidth, float pageHeight, int pageNumber, int shadowPageNumber) Description copied from interface:PageSupplier
Called whenever a page or shadow-page is needed.- Specified by:
requestPage
in interfacePageSupplier
- Parameters:
doc
-PDDocument
the page belongs topageWidth
- Width of page in PDF points (1/72 inch)pageHeight
- Height of page in PDF pointspageNumber
- Number of the layout page - this may differ from the PDF document page if there are previous shadow pages.shadowPageNumber
- Number of the shadow-page or -1 if on a main page.- Returns:
PDPage
-
getLastContentBottom
public float getLastContentBottom()Returns the bottom Y postion in bottom-up PDF units on the last page of content. WARNING: NOT transform aware. -
getLayersPositions
Returns a list of page positions for all layers in the document. The page positions are sorted from first page to last and then top to bottom. The page position values are in bottom-up PDF units. WARNING: NOT transform aware. Transformed layers will return page positions that are not correct. -
getLayerPositions
Returns a list of page positions for a single layer. The page positions are sorted from first page to last and then top to bottom. The page position values are in bottom-up PDF units. Compare togetLayersPositions()
which will return page positions for all layers. WARNING: NOT transform aware. A transformed layer will return page positions that are not correct. -
getLayerPagePositions
private List<PagePosition<Layer>> getLayerPagePositions(Layer layer, List<PageBox> pages, RenderingContext ctx) -
createPagePosition
private <T> PagePosition<T> createPagePosition(String id, T element, int pageNo, float x, float y, float w, float h) -
findStartPage
Returns the start page for a layer. Transform aware. -
findEndPage
Returns the end page number for a layer. Transform aware.
-