Class PdfRendererBuilder

java.lang.Object
com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder<PdfRendererBuilder,​PdfRendererBuilderState>
com.openhtmltopdf.pdfboxout.PdfRendererBuilder

public class PdfRendererBuilder
extends com.openhtmltopdf.outputdevice.helper.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

    com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder.BaseRendererBuilderState, com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder.FontStyle, com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder.PageSizeUnits, com.openhtmltopdf.outputdevice.helper.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

    Modifier and Type Method Description
    PdfBoxRenderer buildPdfRenderer()
    Build a PdfBoxRenderer for further customization.
    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, com.openhtmltopdf.extend.FSCacheEx<String,​com.openhtmltopdf.extend.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)
    PdfRendererBuilder useFont​(PDFontSupplier supplier, String fontFamily, Integer fontWeight, com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder.FontStyle fontStyle, boolean subset)
    Like BaseRendererBuilder.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-memory PDDocument.
    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 withProducer​(String producer)
    Set a producer on the output document

    Methods inherited from class com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder

    addDOMMutator, defaultTextDirection, testMode, useDefaultPageSize, useDocumentBuilderFactoryImplementationClass, useFastMode, useFont, useFont, useFont, useFont, useHttpStreamImplementation, useMathMLDrawer, useObjectDrawerFactory, useProtocolsStreamImplementation, useProtocolsStreamImplementation, useReplacementText, useSVGDrawer, useTransformerFactoryImplementationClass, useUnicodeBidiReorderer, useUnicodeBidiSplitter, useUnicodeCharacterBreaker, useUnicodeLineBreaker, useUnicodeToLowerTransformer, useUnicodeToTitleTransformer, useUnicodeToUpperTransformer, useUriResolver, withFile, withHtmlContent, withUri, withW3cDocument

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • 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 call PdfBoxRenderer.cleanup() after use.
      Returns:
    • 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-memory PDDocument. The user can use this method to create a document either entirely on-disk or a mix of in-memory and on-disk using the PDDocument constructor that takes a MemoryUsageSetting.
      Parameters:
      doc - a (usually empty) PDDocument
      Returns:
      this for method chaining
    • useFont

      public PdfRendererBuilder useFont​(PDFontSupplier supplier, String fontFamily, Integer fontWeight, com.openhtmltopdf.outputdevice.helper.BaseRendererBuilder.FontStyle fontStyle, boolean subset)
      Like BaseRendererBuilder.useFont(FSSupplier, String, Integer, FontStyle, boolean) but allows to supply a PDFont directly. Subclass PDFontSupplier if you need special font-loading rules (like using a font-cache).
    • useFont

      public PdfRendererBuilder useFont​(PDFontSupplier supplier, String fontFamily)
    • 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, com.openhtmltopdf.extend.FSCacheEx<String,​com.openhtmltopdf.extend.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.