Skip to main content

HTML to PDF streaming

Project description

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 using letterhead-page CSS attribute).

    • thead:nth-child(an+b) and tfoot: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).

0.1.6

  • Font handling bug fix.

  • More tests.

0.1.5

  • Table rendering fix.

0.1.04

  • Added missing files in MANIFEST.in

0.1.03

  • Various bug fixes and refactoring.

0.1.02

  • Table cell rendering fix.

0.1.01

  • Major rewrite of parser and drawing code to be more forgiving for broken HTML.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bericht-0.1.6.tar.gz (30.3 kB view hashes)

Uploaded Source

Built Distribution

bericht-0.1.6-py3-none-any.whl (37.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page