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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file bericht-0.1.6.tar.gz.

File metadata

  • Download URL: bericht-0.1.6.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bericht-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f428c3c8bfc6532486eb2ff76ece78dd45df2b753f0e1b5e4eca163d8e8dcf69
MD5 2826f7633a74a2a3d7ac8e4d510e8d19
BLAKE2b-256 5aa33d7129b9374050ba679fea63026487f6553c74b02114475c0afef0a440db

See more details on using hashes here.

File details

Details for the file bericht-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for bericht-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9fa3386dbb66f3453d65fcf88edcbeefdda118a87427219a63a91b16a3466712
MD5 9a761f9e243fa623a065235421370d45
BLAKE2b-256 ca13d65020302341131d905809f2fadfb75b1d53dbaa06468d183d474e0d6e4f

See more details on using hashes here.

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