« All posts

Emboss: A Python PDF Engine That Keeps Documents as Structured Data

Emboss is a pure-Python PDF engine delivering deterministic, PDF/UA-accessible output with embedded table data and native MCP/AI integration.

Emboss is a pure-Python typesetting engine that turns structured or LLM-generated content into accessible, print-ready PDFs. Unlike HTML-to-PDF tools or headless Chrome, it uses real typesetting (Knuth-Plass line breaking) and produces byte-identical output across runs, making every PDF hash-verifiable and diffable in CI.

The core idea is treating a PDF as structured, self-describing data rather than final ink. Tables can embed their own source CSV as an attachment, so the rendered figure and the underlying data never drift apart. Each document also carries its own spec, a per-character text index, and stable node IDs, letting generation, review, editing, signing, and verification all operate on the same underlying structure throughout the document's lifecycle.

For engineers, the appeal includes a minimal dependency footprint — fonttools is the only hard requirement, easing audits in locked-down environments. PDF/UA accessibility tagging is on by default and verified against the real veraPDF validator in CI, alongside support for PDF/A archival, Factur-X/ZUGFeRD e-invoicing, and PAdES/eIDAS signatures. An included MCP server lets LLMs query and edit documents with node-scoped precision, keeping AI-driven edits cheap and grounded in the document's actual structure.

This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work