Long-term archiving · Python
Create PDF/A in Python
Generate archival-grade PDF/A from Python with one method call. rust-pdf embeds the sRGB ICC profile, adds the output intent, writes the XMP metadata and document ID, and enforces the rules, so the output validates under veraPDF, the reference validator.
Why Python needs this
ReportLab handles layout (its strongest parts are paid) while pikepdf and pypdf cover slices, so archival PDF/A and signatures stay a recurring pain in Python.
PDF/A is the version of PDF built to last: every font and color profile is sealed inside the file so it renders identically decades from now. It is mandatory for e-invoicing, public-sector archiving, legal, healthcare and finance. rust-pdf produces and validates PDF/A-1b, 2b, 2a, 3b and 3a.
- Levels A-1b, A-2b, A-2a, A-3b and A-3a, with the accessible a-levels building a full tagged structure tree.
- Fonts embedded and subset automatically, ICC profile and output intent added for you.
- XMP metadata kept in sync with the document info, validated by veraPDF.
Create PDF/A in Python with rust-pdf
Install the package, then call the same idiomatic API every rust-pdf binding shares. The snippet below is real Python code from the reference docs.
from rustpdf import Document, PdfaLevel
with Document() as doc:
doc.pdfa(PdfaLevel.A2B).set_info(title="Q3 Report", author="Acme Inc.")
f = doc.add_font_file("Roboto-Regular.ttf")
doc.add_page()
doc.show_text(f, 20, 72, 760, "Archival report")
doc.save("report_pdfa.pdf") # raises PdfError without a license granting PDF/A
Python basic generation is free. PDF/A is a corporate feature, unlocked by one offline license token. See pricing & licensing.
Full Python reference in the documentation.
PDF/A in Python: FAQ
Which PDF/A levels are supported in Python?
rust-pdf creates PDF/A-1b, 2b, 2a, 3b and 3a. Use a basic b-level for visual fidelity, an a-level for an accessible tagged structure, or a 3-level when you need to embed source files such as an e-invoice XML.
How is conformance verified?
Output is validated with veraPDF, the open-source reference validator for PDF/A, plus qpdf and mutool for structure. The claim is backed by validators, not adjectives.
Do I need a license to create PDF/A in Python?
PDF/A is a corporate feature and requires an active license token. Basic generation in Python is free. One offline token unlocks PDF/A in every supported language.
Create PDF/A in Python (Archival PDF)
One Rust core, the same output across every language. Prototype for free, license the corporate features when you ship.