Skip to main content

Native HTML/CSS-to-PDF engine with a Jinja-compatible templating DSL (PyO3 binding over the turbo-pdf Rust core).

Project description

turbo-html2pdf (Python)

Native HTML/CSS-to-PDF engine with a Jinja-compatible templating DSL. PyO3 binding over the turbo-pdf Rust core; mirrors the Node turbo-html2pdf package 1:1.

import turbo_html2pdf as t

# Compile once, render many times.
prog = t.compile("<p>Hello {{ data.name }}</p>")
pdf = prog.render(data={"name": "world"})       # -> bytes, starts with b"%PDF"

# Warm fonts once, reuse the handle across renders.
fonts = t.Fonts.load([open(p, "rb").read() for p in font_paths])
pdf = prog.render(
    data={"name": "world"},
    css="body { font-family: font0 }",
    fonts=fonts,
)

# One-shot: compile + render in a single call.
pdf = t.render("<p>{{ data.x }}</p>", data={"x": 1})

# Inspect non-fatal lints + page count.
pdf, diagnostics, page_count = prog.render_full(data={"name": "world"})

Fatal compile/render faults raise TurboPdfError carrying .code (a stable string such as "TemplateSyntax") and .span ({"line", "col", "byte_offset"}). Non-fatal lints are returned by render_full, never raised.

API

Surface Signature
compile(template_html, opts=None) -> Program
Program.render(data=None, css="", fonts=None, images=None, meta=None, now=None) -> bytes
Program.render_full(...) -> (bytes, list[dict], int)
Program.has_header() / Program.has_footer() -> bool
render(template_html, ...) one-shot -> bytes
Fonts.load([bytes, ...]) warm registry -> Fonts

Building from source

pip install maturin
maturin develop --manifest-path crates/turbo-pdf-py/Cargo.toml
python -m pytest crates/turbo-pdf-py/tests

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

turbo_html2pdf-0.1.7.tar.gz (3.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

turbo_html2pdf-0.1.7-cp38-abi3-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.8+Windows x86-64

turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

turbo_html2pdf-0.1.7-cp38-abi3-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

Details for the file turbo_html2pdf-0.1.7.tar.gz.

File metadata

  • Download URL: turbo_html2pdf-0.1.7.tar.gz
  • Upload date:
  • Size: 3.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.0

File hashes

Hashes for turbo_html2pdf-0.1.7.tar.gz
Algorithm Hash digest
SHA256 5beabe0d6bdf4f10d8e6d0e987faac6916d37746bceffe0c4b19daadfebef858
MD5 ae5d4b0b766d7aad72d240170bccdbea
BLAKE2b-256 98b8e3e511c5e5667037dddf764dd237b893affb5bfcf07d911b76505335ff72

See more details on using hashes here.

File details

Details for the file turbo_html2pdf-0.1.7-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for turbo_html2pdf-0.1.7-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 82e18b4c9eed12ebead73da8e082c3e416c99d921a4b36709505f91cdc707180
MD5 133af07dffdde2428a2900b1a46bb9d4
BLAKE2b-256 08a6b589e50bb8ea00b4b1b80a42fcab2c93f9a064e3c5d636bbb56cc8dda460

See more details on using hashes here.

File details

Details for the file turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ac8416b9b5bf11bc6c6d1a9ef0ef49754fcbbf0dc3484af46b3c8fb6a1b7ccd
MD5 65bc6ddf081b9fed24ef5b1b8286ac8a
BLAKE2b-256 ae054bdaa0305ac3e6e2f275a16c1feab5b63ea6d6551fef97da8797f3985cf9

See more details on using hashes here.

File details

Details for the file turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for turbo_html2pdf-0.1.7-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 46611c0daabed4d210757517d712e9f035271853bd6261b915a6549c9e7ef0ce
MD5 0f8b602ea8cd18d3da3cb8988ffc7399
BLAKE2b-256 5e4d2fb84cf41fc5c3cea3ee5329eedfa618f689e6fcbbfd02091ea121d9591d

See more details on using hashes here.

File details

Details for the file turbo_html2pdf-0.1.7-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turbo_html2pdf-0.1.7-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 116538b690bac06e39dbc39b38b044bfeeff9d1fd4644d45dcad4d61a049b567
MD5 e17bbfcd034452bc7366f546738b6cfa
BLAKE2b-256 4f8c96d912e7ce4a186ff2c4ab1311bb020bef910ffcd883489c9ddfad583bb1

See more details on using hashes here.

Supported by

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