Skip to content

Generate PDF invoices from Python data

Choose the smallest example that matches your application.

For an interactive introduction, try the invoice notebook. Edit the sample data, render a preview, and download the PDF in Colab or local Jupyter.

To return an invoice from your app, see the FastAPI, Flask, and Django examples.

A compact JSON invoice

The agent-workflow invoice loads JSON, escapes text, builds an HTML table, embeds Inter, writes a PDF, and checks that the invoice ID, customer, and total survived rendering.

Open the PDF · View its HTML · View its CSS

To run the complete example suite:

git clone https://github.com/fullbleed-engine/fullbleed-official.git
cd fullbleed-official
python -m pip install fullbleed
python examples/agent_workflows/run_examples.py --out output/examples --json

The invoice is written to output/examples/invoice/document.pdf. Change the sample data in examples/agent_workflows/data/invoice.json and rerun.

A styled CSV invoice

The Acme invoice project separates the header, body, footer, CSS, and CSV input. Its application code calculates line amounts and totals using Python Decimal.

Generated Acme invoice with four line items and a total.

Download the PDF · Read the data contract

From the repository checkout:

cd examples/acme_invoice
python report.py

Open output/acme_sample_invoice.pdf. Edit data/invoice.csv, then inspect the regenerated PNG and component diagnostics before delivery.

Scale to multiple invoices

Use ordinary rendering when document structure changes substantially. Use compiled bindings when you have a family of documents with repeatable structure. Choose the reflow API if text or table length can change pagination.