● 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 fullbleedPython 3.10–3.14 · MIT licensed · Explore the PDFs & source ↓

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.
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))02 / The output
See what comes out.
Northstar and Common Ground: one design, two authoring paths. Compare the Python components and HTML/CSS, with matching-output checks on the pinned 2.6.0a5 alpha. Explore both sources ↗

A report with a point of view.
Editorial type, vector illustration, gradient charts, and clear allocations.

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

Personal, at every page.
One compiled layout. Three member records. Balances, charts, and a distinct identity.
03 / Choose your stack
Your application.
Your starting point.
Reusable components or existing HTML/CSS.
Choose the integration that fits your application.
Native API + CLI
Python
Function components, reusable styles, and batch documents, with bundled fonts and inspection tools.
Build with Python components Python quickstart FastAPI, Flask & DjangoWeb Worker SDK
Browser JavaScript
Generate PDFs and PNG previews in your user's browser. Author with JavaScript components or your existing HTML/CSS templates.
JavaScript & JSX components Start with the browser SDK Try the editable demoForms + automatic previews
React & Vue
Connect a form to a live PDF preview. Edit the templates and reuse a React hook or Vue composable in your app.
Get the React starter Get the Vue starterWebAssembly package
Node.js
Compose documents with JavaScript, TypeScript, or JSX. Render PDF bytes and PNG previews in Node.js 22+.
Node.js quickstart Get the Next.js starterNative .NET bindings
C# / .NET
Compose with typed components, LINQ children, and immutable styles. Render PDFs and previews on Windows, Linux, and macOS.
Build with C# components .NET quickstart Get the ASP.NET Core starter Create tagged PDFs in C#Native library
Rust
Embed the print engine directly in a Rust application. Start with a runnable example.
Rust quickstart04 / 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.

Make something worth printing.
Edit a designed example. Download your PDF. No account needed.