Package com.openhtmltopdf.pdfboxout
Class PdfRendererBuilder
- java.lang.Object
-
- com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder<PdfRendererBuilder,PdfRendererBuilderState>
-
- com.openhtmltopdf.pdfboxout.PdfRendererBuilder
-
public class PdfRendererBuilder extends BaseRendererBuilder<PdfRendererBuilder,PdfRendererBuilderState>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PdfRendererBuilder.CacheStore
List of caches available.static class
PdfRendererBuilder.PdfAConformance
Various level of PDF/A conformance: PDF/A-1, PDF/A-2 and PDF/A-3-
Nested classes/interfaces inherited from class com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder
BaseRendererBuilder.BaseRendererBuilderState, BaseRendererBuilder.FontStyle, BaseRendererBuilder.FSFontUseCase, BaseRendererBuilder.PageSizeUnits, BaseRendererBuilder.TextDirection
-
-
Field Summary
-
Fields inherited from class com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder
PAGE_SIZE_LETTER_HEIGHT, PAGE_SIZE_LETTER_UNITS, PAGE_SIZE_LETTER_WIDTH, state
-
-
Constructor Summary
Constructors Constructor Description PdfRendererBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description PdfBoxRenderer
buildPdfRenderer()
Build a PdfBoxRenderer for further customization.PdfBoxRenderer
buildPdfRenderer(Closeable diagnosticConsumer)
void
run()
Run the XHTML/XML to PDF conversion and output to an output stream set by toStream.PdfRendererBuilder
toStream(OutputStream out)
An output stream to output the resulting PDF.PdfRendererBuilder
useCacheStore(PdfRendererBuilder.CacheStore which, FSCacheEx<String,FSCacheValue> cache)
Use a specific cache.PdfRendererBuilder
useColorProfile(byte[] colorProfile)
Sets the color profile, needed for PDF/A conformance.PdfRendererBuilder
useFont(PDFontSupplier supplier, String fontFamily)
Simpler overload foruseFont(PDFontSupplier, String, Integer, FontStyle, boolean)
PdfRendererBuilder
useFont(PDFontSupplier supplier, String fontFamily, Integer fontWeight, BaseRendererBuilder.FontStyle fontStyle, boolean subset)
LikeBaseRendererBuilder.useFont(FSSupplier, String, Integer, FontStyle, boolean)
but allows to supply a PDFont directly.PdfRendererBuilder
usePageSupplier(PageSupplier pageSupplier)
Set a PageSupplier that is called whenever a new page is needed.PdfRendererBuilder
usePDDocument(org.apache.pdfbox.pdmodel.PDDocument doc)
By default, this project creates an entirely in-memoryPDDocument
.PdfRendererBuilder
usePdfAConformance(PdfRendererBuilder.PdfAConformance pdfAConformance)
Set the PDF/A conformance, typically we use PDF/A-1 Note: PDF/A documents require fonts to be embedded.PdfRendererBuilder
usePdfUaAccessbility(boolean pdfUaAccessibility)
Whether to conform to PDF/UA or Accessible PDF.PdfRendererBuilder
usePdfVersion(float version)
Set the PDF version, typically we use 1.7.PdfRendererBuilder
useSlowMode()
Deprecated.PdfRendererBuilder
withProducer(String producer)
Set a producer on the output document-
Methods inherited from class com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder
addDOMMutator, applyDiagnosticConsumer, defaultTextDirection, testMode, useDefaultPageSize, useDocumentBuilderFactoryImplementationClass, useExternalResourceAccessControl, useFastMode, useFont, useFont, useFont, useFont, useFont, useFont, useHttpStreamImplementation, useMathMLDrawer, useObjectDrawerFactory, useProtocolsStreamImplementation, useProtocolsStreamImplementation, useReplacementText, useSVGDrawer, useTransformerFactoryImplementationClass, useUnicodeBidiReorderer, useUnicodeBidiSplitter, useUnicodeCharacterBreaker, useUnicodeLineBreaker, useUnicodeToLowerTransformer, useUnicodeToTitleTransformer, useUnicodeToUpperTransformer, useUriResolver, withDiagnosticConsumer, withFile, withHtmlContent, withUri, withW3cDocument
-
-
-
-
Method Detail
-
run
public void run() throws IOException
Run the XHTML/XML to PDF conversion and output to an output stream set by toStream.- Throws:
IOException
-
buildPdfRenderer
public PdfBoxRenderer buildPdfRenderer()
Build a PdfBoxRenderer for further customization. Remember to callPdfBoxRenderer.cleanup()
after use.- Returns:
-
buildPdfRenderer
public PdfBoxRenderer buildPdfRenderer(Closeable diagnosticConsumer)
-
toStream
public PdfRendererBuilder toStream(OutputStream out)
An output stream to output the resulting PDF. The caller is required to close the output stream after calling run.- Parameters:
out
-- Returns:
-
usePdfVersion
public PdfRendererBuilder usePdfVersion(float version)
Set the PDF version, typically we use 1.7. If you set a lower version, it is your responsibility to make sure no more recent PDF features are used.- Parameters:
version
-- Returns:
-
usePdfAConformance
public PdfRendererBuilder usePdfAConformance(PdfRendererBuilder.PdfAConformance pdfAConformance)
Set the PDF/A conformance, typically we use PDF/A-1 Note: PDF/A documents require fonts to be embedded. So if this is not set to NONE, the built-in fonts will not be available and currently any text without a specified and embedded font will cause the renderer to crash with an exception.- Parameters:
pdfAConformance
-- Returns:
-
usePdfUaAccessbility
public PdfRendererBuilder usePdfUaAccessbility(boolean pdfUaAccessibility)
Whether to conform to PDF/UA or Accessible PDF. False by default.- Parameters:
pdfUaAccessibility
-- Returns:
- this for method chaining
-
useColorProfile
public PdfRendererBuilder useColorProfile(byte[] colorProfile)
Sets the color profile, needed for PDF/A conformance. You can use the sRGB.icc from https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/resources/org/apache/pdfbox/resources/pdfa/- Parameters:
colorProfile
-- Returns:
-
usePDDocument
public PdfRendererBuilder usePDDocument(org.apache.pdfbox.pdmodel.PDDocument doc)
By default, this project creates an entirely in-memoryPDDocument
. The user can use this method to create a document either entirely on-disk or a mix of in-memory and on-disk using thePDDocument
constructor that takes aMemoryUsageSetting
.- Parameters:
doc
- a (usually empty) PDDocument- Returns:
- this for method chaining
-
useFont
public PdfRendererBuilder useFont(PDFontSupplier supplier, String fontFamily, Integer fontWeight, BaseRendererBuilder.FontStyle fontStyle, boolean subset)
LikeBaseRendererBuilder.useFont(FSSupplier, String, Integer, FontStyle, boolean)
but allows to supply a PDFont directly. SubclassPDFontSupplier
if you need special font-loading rules (like using a font-cache).
-
useFont
public PdfRendererBuilder useFont(PDFontSupplier supplier, String fontFamily)
Simpler overload foruseFont(PDFontSupplier, String, Integer, FontStyle, boolean)
-
withProducer
public PdfRendererBuilder withProducer(String producer)
Set a producer on the output document- Parameters:
producer
- the name of the producer to set defaults to openhtmltopdf.com- Returns:
- this for method chaining
-
useCacheStore
public PdfRendererBuilder useCacheStore(PdfRendererBuilder.CacheStore which, FSCacheEx<String,FSCacheValue> cache)
Use a specific cache. Cache values should be thread safe, so provided your cache store itself is thread safe can be used accross threads.- Returns:
- this for method chaining.
- See Also:
PdfRendererBuilder.CacheStore
-
usePageSupplier
public PdfRendererBuilder usePageSupplier(PageSupplier pageSupplier)
Set a PageSupplier that is called whenever a new page is needed.- Parameters:
pageSupplier
-PageSupplier
to use- Returns:
- this for method chaining.
-
useSlowMode
@Deprecated public PdfRendererBuilder useSlowMode()
Deprecated.Fast mode is the default from version 1.0.5. You can call this temporary method to use the slow renderer until it is removed in a near future version. This method is marked deprecated to prompt you to upgrade to the fast renderer.- Returns:
- this for method chaining.
-
-