Everything the library knows how to do
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 give back exactly the same file.
Text and fonts
- Put your own font into the document, so it reads the same on every screen and every printer, even where nobody installed that font. See the example: Fonts embedded in the file
- Only the letters the document actually draws travel with it. A font holds thousands of shapes and a one-page letter uses a few dozen, and it is the few dozen that are carried. See the example: A whole novel in English
- The text stays text: whoever opens the file can select it, copy it and search it, and so can a search engine. See the example: Fonts embedded in the file
- Ask how wide a piece of text will come out before drawing it, so nothing overruns the box you meant it for. See the example: A landscape certificate
- Ask for the biggest size at which a title still fits across a given width: it shrinks rather than spills. See the example: Shrunk headings and a turned label
- Turn a block of text to any angle, around any point of the page. See the example: Shrunk headings and a turned label
- Run a line of words along a curve — round a seal, over an arch — with every letter standing on the curve and the spacing even wherever it bends. See the example: Words that follow a curve
- Spread the letters, the words or the lines apart, lift a figure above the line, or draw the text hollow.
Paragraphs, lists and columns
- Hand over a paragraph and a width, and the engine works out where every line breaks. See the example: Breaking a paragraph up, and aligning it
- Line the text up on the left, on the right, centred, or flush against both edges, with the last line treated in its own way. See the example: Paragraph indents and spacing
- Indent the first line, indent the whole block, and leave air above it and below it. See the example: Paragraph indents and spacing
- Decide what becomes of a word too long for the column: let it stick out, or cut it and carry on underneath. See the example: Breaking an overlong word
- Break after a slash or a hyphen, so a long web address or a double-barrelled name fits where it should. See the example: Break points after a slash or a hyphen
- Honour the hyphen a writer marked as optional, and the space that must never be broken. See the example: Soft hyphens and no-break spaces
- Fill the gap before a page number with a row of dots, the way a table of contents does. See the example: A contents page with dot leaders
- Set the stops a tab jumps to, lined up left, centre, right or on the decimal point. See the example: Tabs and tab stops
- Bulleted lists, numbered lists and lists inside lists, the text hanging neatly under its marker. See the example: Lists made from an indent and a tab stop
- Ask how much of a text fits in a given height, and pour what is left into the next column or onto the next page. See the example: Text poured into columns
- Change font, size, colour or underlining in the middle of a sentence, and the line still sits properly. See the example: Changing style in the middle of a paragraph
- Lay a word across the page like a rubber stamp, scaled to the room it is given and set at an angle. See the example: Stamps fitted to a rectangle
Tables
- Set a column's width outright, as a share of the table, or let the engine measure the widest thing standing in it. See the example: Columns measured from their cells
- A table longer than the page carries on over as many pages as it needs, asked for once. See the example: A self-paginating table
- The heading rows, and the rows at the foot, come back at the top and the bottom of every page. See the example: A multi-page invoice table
- Keep a group of rows together, so a total never lands alone at the top of a page. See the example: A self-paginating table
- Merge cells across several columns and down several rows. See the example: Cells merged down the rows
- Choose which lines are drawn at all — the frame, one row, every other row — and how thick and what colour each of them is. See the example: A cell's margin, border, inner room and fill
- Give a single cell its own border one side at a time, each side with its own thickness and its own colour. See the example: Coloured cell borders and fills
- Colour the background of the heading, of the foot, of every other row, of one row or of one column. See the example: A colour chart the drawing points into
- Line figures up on the decimal point, so a column of amounts reads straight down. See the example: A payslip
- Put a picture in a cell, fitted whole and never squashed. See the example: Pictures inside table cells
- Cut a cell's text at the edge of its column rather than let it spill over its neighbour. See the example: Overlong text in a narrow cell
- Ask afterwards where a row, a column or a cell ended up, and draw or link on top of it. See the example: A delivery note
Images
- Place a photograph or a picture anywhere on the page, at any size, from a JPEG, a PNG, a BMP or a TIFF file. See the example: Images on a page
- Open a TIFF holding several pictures at once, which is what a scanner and a fax machine write, and take each of them in turn. See the example: Every picture a scanner put in one file
- A photograph inside such a file is copied across untouched, so it comes out as sharp as it went in. See the example: Every picture a scanner put in one file
- Fit a picture into a box: at its own size, contained inside it, covering it, stretched to it, or shrunk only if it is too big. See the example: A picture fitted into a rectangle
- Anchor it in that box — a corner, a side, the middle — turn it a quarter, a half or any angle at all, and mirror it. See the example: A picture fitted into a rectangle
- Read the resolution the file declares, and place the picture at the size it will actually print. See the example: A gallery of picture formats
- Respect the way round a camera recorded a photograph, so one taken sideways is not shown sideways. See the example: A gallery of picture formats
- Keep a picture's transparency, knock one colour out of it, or paint its shape in a colour you choose. See the example: One colour, seen through four stencils
- Carry the picture's own colour description with it, so its colours still mean the same thing on a press. See the example: The embedded ICC profile
Colour and printing
- State a colour in shades of grey, in screen colours, or in the four inks a press lays down. See the example: Grey, screen and printing colours
- State it as a measurement instead, owing nothing to any particular screen or press. See the example: Colour the document defines
- Carry the description of your colours inside the file, so what you chose is what comes out at the other end. See the example: The embedded ICC profile
- Name a spot colour — a house colour, a varnish, a metallic — printed on a plate of its own. See the example: Inks on plates of their own
- Name several inks at once, each at its own strength. See the example: Several plates at once, each at its own strength
- Declare which press or which screen the document was made for. See the example: The device a file's colours are meant for
- Mark where the blade has to cut the sheet, and how far the colour has to run past that line. See the example: A sheet as it goes to the press
- Force a document to print at its true size, and take the shrink-to-fit option away from whoever opens it. See the example: A sheet that measures what it says
- Ask for double-sided printing, a paper tray, a number of copies and the pages the print dialog offers by default. See the example: A handbook that says how it wants to be read
Drawing
- Lines, rectangles and curves, filled, outlined, or both at once. See the example: One drawing, placed many times
- Cut what you draw to a shape so nothing paints outside it — even to the shape of the letters themselves. See the example: Cutting out what you draw
- One colour fading into another, along a line or outward from a circle, through as many steps as you like. See the example: Gradients in a line, in a circle, and read from a function
- Fill a shape, or a word, with that fade. See the example: Text and shapes filled with a gradient
- Draw one small motif and have it repeat over any area. See the example: One pattern, repeated across whatever it fills
- Make anything partly see-through, and choose how it blends into what lies under it. See the example: Transparency and blend modes
- Fade one drawing out using another as its mask. See the example: One colour, seen through four stencils
- Draw something once and place it again and again, without the file growing each time. See the example: One drawing, placed many times
- Layers whoever opens the file can show and hide, each with its own state on screen and on paper. See the example: One drawing, and each reader sees their own
Barcodes and square codes
- The striped kind, for a shop till, a warehouse scanner or a workshop bench: Code 128, Code 39, Code 93, ITF-14, Codabar, EAN-13, UPC-A, EAN-8, UPC-E, the GS1 DataBar of a loose trade item, and the two add-ons that stand beside a retail code. See the example: Code 128 and retail barcodes
- A QR code holding a web address, a payment, or anything else a phone should pick up in one go. See the example: QR codes
- A DataMatrix, for a label with almost no room on it. See the example: Data Matrix codes
- A PDF417, the wide flat one on a driving licence or a boarding pass. See the example: PDF417 codes
- An Aztec, the one on a train ticket read off a lit screen. See the example: Aztec codes
- A QR code carrying the line your banking application reads, so an invoice is settled without anybody retyping an account number. The line is yours to compose; the example shows one. See the example: A commercial invoice
Forms
- Boxes a reader types into, boxes they tick, lists they pick from, and sets of round buttons where only one may be chosen. See the example: An interactive form
- Each with its own frame and colour, what it says to start with, and whether it may be left empty. See the example: An interactive form
- An area set aside for a signature, framed on the page or leaving no mark at all. See the example: A two-page services contract
- A form that still looks right in reading software that draws nothing itself, because every box carries its own picture. See the example: An archivable PDF/A-3 form
Archiving and accessibility
- Write a file made to be opened decades from now, carrying everything it needs inside itself. See the example: Factur-X: the electronic invoice
- Mark the text up so a screen reader tells a heading from a paragraph and says the page in the right order. See the example: A document that can be read aloud
- Describe a picture in words for somebody who cannot see it, and say which cell heads which column of a table. See the example: A list whose pictures speak too
- Attach any file inside the document — an invoice's figures, a spreadsheet, a source file — and say what it is there for. See the example: Factur-X: the electronic invoice
- Write the electronic invoice: one file carrying the page a person reads and, inside it, the machine-readable half you supply. See the example: Factur-X: the electronic invoice
- Say who made the document, when, and what it is about, in the packet that archives and search engines read. See the example: A register whose pages say where they came from
- Describe facts of your own — a batch number, an internal reference — in a way an archive checker still accepts. See the example: A file that explains its own entries
Reading a PDF you already have
- Open a PDF that already exists and count its pages. See the example: An invoice laid on a letterhead template
- Take a whole page out of it and put it into a new document, its fonts and its colours exactly as they were. See the example: An invoice laid on a letterhead template
- Lay your own text over that page, so an invoice lands on the letterhead your printer supplied. See the example: An invoice laid on a letterhead template
- Reopen a damaged file that other software turns away, by reading it through from one end to the other.
- Open a protected document you have the password for, however old the protection put on it. See the example: A document that asks for a password before it opens
Signing
- Seal a document with your own certificate, so whoever receives it can prove who sent it and that nothing has changed since. See the example: A document signed with a demonstration certificate
- Seal a PDF that already exists, and add a second signature after the first without disturbing it.
- State what the seal still allows afterwards: nothing at all, filling in a form, or adding notes.
The file itself
- Every usual page size, from the largest poster down to a postcard, plus any size you name, upright or on its side. See the example: A landscape certificate
- The same pages, up to twelve times lighter and 84.6 per cent lighter over the whole set, because what nothing reads is no longer carried.
- Choose how hard the file is squeezed, or leave it unsqueezed to read it with your own eyes. See the example: A sheet that measures what it says
- Choose which version of the PDF format the file announces, and ask the engine which is the oldest one that can carry what you used. See the example: A sheet that measures what it says
- The same figures give back exactly the same file, every time: the engine never looks at the clock.
- Scramble every word and every picture of a document under a key of two hundred and fifty-six bits, and ask the reading software to allow printing while refusing copying. See the example: A document that reads freely and asks not to be copied
- Ask for a password before the document shows a single page, so a file handed to the wrong person shows nothing whatever. See the example: A document that asks for a password before it opens
- Mark what must come out before a document is released, measured on the very words it covers, and say what word stands in the gap it leaves. The words themselves leave the file when reading software applies the mark. See the example: A statement released in part
- Lay a highlight, an underline, a strike-out or a squiggle on a passage of text, each on the words it covers; the letters stay legible under a highlight. See the example: A statement released in part
- Carry whole files inside the document — a spreadsheet, an XML, another PDF — and say the columns reading software lists them under and the order it sorts them in. See the example: A tender pack of three lots
- Leave notes for your own program under the document, under a page or under a drawing, filed under your program's name, where no reading software shows them. See the example: The notes a program leaves itself
- The library never needs the internet. Only the offer where we run it for you sends anything anywhere, and then it is you who sends it.
Some of these deserve a page of their own
- The electronic invoice: what is compulsory now, and what comes next
- Signing a document, and what a seal proves
- Documents that still open decades from now, and that everybody can read
- Colour profiles: which ones the engine works with, and whose profile travels in your document
- A file ready for the press, and the part of the standard the engine writes
- Every worked example, by subject
What it does not do
It cannot reach inside a page of an existing document and pull a paragraph or a photograph back out of it: a page comes out whole or not at all. Everything else on this page, it does.
Where this information comes from
Texts read on 27 July 2026.
- The PDF format itself, version 1.7
-
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.
- The catalogue of every character every writing system uses
-
The Unicode Standard, Version 17.0.0
Unicode Consortium — 9 September 2025
What we do about it: The numbering every letter of every alphabet is filed under. The engine writes each drawn letter down under its number as well as its shape, which is what lets the finished file be selected, copied and searched instead of read as a picture of words.
- The standard for the QR code
-
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: the four levels of error correction the standard sets out, and the three ways it holds of spelling what the code carries.
- The standard for the DataMatrix code
-
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.
- The standard for the Aztec code
-
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.
- The standard for the PDF417 code
-
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.
- The standard for the Code 128 barcode
-
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.
- The standard for the barcode printed on shop goods
-
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, EAN-8 and UPC-E, the striped ones a shop till reads, and the two- and five-digit add-ons that stand beside them.