Icon with a gear, a PDF document, and a PDF with a dog and code symbols, representing document or file conversion or processing

● A rendering engine designed from the ground up

● No Chrome, WebKit, or headless browsers

● Built for concurrency and deterministic output

Create invoices, reports, statements, and print documents from Python and HTML/CSS. One install includes the Rust engine, fonts, and CLI. MIT licensed, including commercial use.

pip install fullbleed

HTML/CSS → PDF

From code
to paper.

Invoices, statements, and reports.
Render HTML/CSS in Python, JavaScript, C#, or Rust.

pip install fullbleed

Python 3.10–3.14 · MIT licensed · Explore the PDFs & source ↓

For WooCommerce & Shopify: explore Commerce ↗

invoice.pdf01 / 01
Northstar Studio invoice with editorial typography, vermilion rules, and a forest-green total panel for USD 1,870.00
HTML/CSS INVOICEOpen PDF ↗

Built for the page.

Static HTML/CSS, pagination, and typography. A dedicated engine for print documents.

Repeatable by design.

Pin your engine, inputs, assets, and metadata. Compare the resulting PDF bytes.

Yours to build with.

Open source under MIT. Free for personal projects and commercial applications.

01 / The authoring

A document.
Made of components.

Write a function. Pass it data. Compose headings, rich text, and layouts with ordinary Python. Styles belong to your document; fonts are bundled with the engine.

This example uses the stable Python API and the install command above. Reuse OrderSummary for each customer.

Learn components & styling ↗
order.py · stable Python
from importlib.resources import files
from pathlib import Path
import fullbleed
from fullbleed.ui import Document, Heading, Paragraph, Stack, Strong

@Document(title="Order summary", styles={
    "@page": {"size": "A4", "margin": "18mm"},
    "body": {"font_family": "Inter", "color": "#18372e"},
    "h1": {"font_size": "32pt", "margin": 0},
    "p": {"margin": 0},
})
def OrderSummary(customer):
    return Stack(
        Heading("Made for you", level=1),
        Paragraph("Prepared for ", Strong(customer)),
        gap="12pt",
    )

font = files("fullbleed_assets").joinpath("fonts/Inter-Variable.ttf")
engine = fullbleed.PdfEngine(font_files=[str(font)])
order = OrderSummary("Moss & Fern")
Path("order.pdf").write_bytes(order.render_pdf(engine))
$ python order.py   →   order.pdf

02 / The output

See what comes out.

All examples & source ↗
Common Ground report cover with bold typography and a native vector landscape

A report with a point of view.

Editorial type, vector illustration, gradient charts, and clear allocations.

3-PAGE REPORT · ALPHABoth authoring paths ↗
Common Ground guide with an illustrated shared garden, program cards, and forest-green typography

Designed to be read.

Headings, image descriptions, and table headers. A two-page component guide with PDF/UA-1 validation evidence.

COMMUNITY GUIDE · ALPHASource & checks ↗
Hillside statement with plum serif typography, a lilac balance panel, and contribution bars

Personal, at every page.

One compiled layout. Three member records. Balances, charts, and a distinct identity.

3 MEMBER RECORDSPDF & source ↗

03 / Choose your stack

Your application.
Your starting point.

Reusable components or existing HTML/CSS.
Choose the integration that fits your application.

Native library

Rust

Embed the print engine directly in a Rust application. Start with a runnable example.

Rust quickstart

04 / Beyond hello world

A print engine.
In your stack.

From request to download.

Serve PDF bytes from FastAPI, Flask, or Django with runnable examples.

Build an invoice endpoint ↗

One layout. Many records.

Use fixed or reflow bindings for variable-data documents and statement batches.

Explore variable data ↗

Inspect what you ship.

Preview finalized PDFs and retain structured diagnostics alongside the output.

Render, preview, inspect ↗

Know the boundaries.

A dedicated print engine with documented CSS support and explicit validation workflows.

Supported CSS & known gaps ↗

05 / Fullbleed Commerce · Preview

Your store's paperwork.
Your design.

Give order summaries and packing slips the same care as your storefront. Start with a designed template, edit visually or paste HTML/CSS, and preview the actual PDF.

  • Design it once.The free WooCommerce editor runs in your browser. No account, watermark or document quota.
  • Connect it to the order.Evaluate Pro email attachments and customer account downloads in WooCommerce, or document links in Shopify Flow.

The free preview is available now. Automation is for staging and development stores; paid plans and marketplace listings are not live.

Cedar and Form order summary with warm paper, serif headings and rust-colored rules, generated from a fictional WooCommerce order.
REAL WOOCOMMERCE OUTPUTOpen PDF ↗

Make something worth printing.

Edit a designed example. Download your PDF. No account needed.

Open the playground