Incremental HTML to PDF converter with support for extremely large documents. Bericht does not hold the HTML or the PDF in memory as it generates PDF pages; instead, it requires you to pass a generator which produces HTML snippets and bericht gives you a PDF stream iterator. As you iterate the PDF stream bericht will parse just enough HTML to produce a single page and return one page at a time which you can either write to a file, send over http or do whatever you need.
Main features:
- Quickly and efficiently generate on-demand PDFs from databases or other data sources.
- Use familiar HTML and CSS to define your PDF layout.
- Re-use the same code to produce HTML and PDF based reports for your users.
- Ability to generate extremely large PDF files without storing any of the parts (input or output) in memory.
- Many CSS extensions specifically for print/page related formatting:
-
@page:nth-child(an+b)
: at-rule to target/style individual pages (non-standard CSS). -
@page { letterhead-page: 1; }
: ability to apply specific pages from another PDF as a watermark/letterhead in your newly generated PDF (the other PDF must be passed as argument to bericht generator to be able to extract pages from it usingletterhead-page
CSS attribute). -
thead:nth-child(an+b)
andtfoot:nth-child(an+b)
: bericht can repeat table headers/footers on subsequent pages when the table does not fit on one page, this rule allows you to style those rows differently depending on what page they are on (non-standard CSS).
-