Everything the library does, said in plain words

One engine writes all of it, and the same engine runs on Linux, on Windows and on macOS. Your own program calls it, whether that program is written in Rust or in Python: the two say the same things and produce the same documents, to the byte.

Below is the whole of it, group by group, with what each thing gives you on the finished document. Where an example shows one at work, the line leads to it: the document it produced and the code that produced it, in both languages.

Text and typefaces

Paragraphs, lists and columns

Tables

Images

Colour and printing

Drawing

Barcodes and square codes

Forms

Archiving and accessibility

Reading a PDF you already have

Signing

The file itself

Some of these deserve a page of their own

What it does not do

Nobody is served by a list that only says yes. The engine writes PDFs and can take pages out of one that already exists; it does not pull the text or the pictures back out of somebody else's file, it does not put a password on a document, and it will not open one that already has a password on it.

See the prices See the examples

Glossary

Factur-X
An invoice that is a page for a person and a data file for a machine, in one document. The page looks like any invoice; inside, the same amounts are attached in a form accounting software reads without anybody retyping them. French law requires this exchange between companies.
CMYK
The four inks a printing press lays down: cyan, magenta, yellow and black. A screen mixes light instead, so a document going to a press states its colours in inks, not in screen colours.
QR Code
The square of black and white dots you point a telephone at: on a poster, on a restaurant table, at the foot of a bill. It carries a web address, or the exact details of a payment, so nobody has to type anything in. On an invoice it turns paying into one tap.
DataMatrix
A tiny square code, sometimes smaller than a grain of rice, for things with no room for anything bigger: a box of medicine, an electronic part, a parcel. It is still read when a corner of it is scratched or smudged, which is why factories and pharmacies print it.
Aztec
The code with a little target in the middle, the one on a train ticket or on a boarding pass held up on a telephone screen. It was made to be read off a lit screen and through a scratched window, and it takes less room than the others for the same text.
PDF417
A wide, flat code made of stacked bars, the one on the back of a driving licence, on an airline boarding pass or on a shipping label. It holds several hundred characters — a whole identity, a whole delivery line — where an ordinary striped code holds a number.
signature
A seal inside the document that proves two things at once: who approved it, and that not one byte has changed since. A reader shows it as a banner at the top of the page.

Where this information comes from

Every text below was read on July 27, 2026, and is linked here so you can read it yourself. Rules change and dates written into law get moved, so if you are reading this a long time after that day, go and look.

ISO 32000-1:2008 — Document management — Portable document format — Part 1: PDF 1.7
International Organization for Standardization — July 2008
What we do about it: The format itself. It is what the engine writes, clause by clause.
ISO/IEC 18004:2024 — Information technology — Automatic identification and data capture techniques — QR code bar code symbology specification
International Organization for Standardization — August 2024
What we do about it: The QR Code the engine draws, in byte mode, at the middle level of error correction.
ISO/IEC 16022:2024 — Information technology — Automatic identification and data capture techniques — Data Matrix bar code symbology specification
International Organization for Standardization — May 2024
What we do about it: The DataMatrix the engine draws, in the ECC 200 form.
ISO/IEC 24778:2024 — Information technology — Automatic identification and data capture techniques — Aztec Code bar code symbology specification
International Organization for Standardization — April 2024
What we do about it: The Aztec code the engine draws.
ISO/IEC 15438:2015 — Information technology — Automatic identification and data capture techniques — PDF417 bar code symbology specification
International Organization for Standardization — September 2015
What we do about it: The PDF417 the engine draws.
ISO/IEC 15417:2007 — Information technology — Automatic identification and data capture techniques — Code 128 bar code symbology specification
International Organization for Standardization — June 2007
What we do about it: Code 128, the striped one for any text.
ISO/IEC 15420:2025 — Information technology — Automatic identification and data capture techniques — EAN/UPC bar code symbology specification
International Organization for Standardization — November 2025
What we do about it: EAN-13, UPC-A and EAN-8, the striped ones a shop till reads.