Every font the document uses is embedded in the file
A document that carries its own fonts opens the same way on a machine that has never had that font installed. That is the first thing the standard asks for, and the one that changes the file most.
Summary
A font is a file. A document may embed that file, or only name the font. Naming it is enough as long as the machine opening the file owns that font; the day nobody owns it any more, the reading software puts a different font in its place. Line breaks move, a table stops lining up, and a signature block lands on the next page.
So an archival document carries its fonts with it. The file weighs more, and in exchange it is still the same page decades from now. It weighs a good deal less than the whole font: only the letters the document actually draws are carried, which for a letter or an invoice is a few dozen shapes out of several thousand.
The text stays text: the person who opens the file can still select it, copy it and search inside it, and so can archiving software.
Technically
Embedding is automatic and so is subsetting: the drawn glyph set is collected as the pages are laid out, and the shapes and their index tables are rebuilt around it with the glyph indices held stable. The engine writes the subset as a composite font under the Identity encoding and attaches a ToUnicode table every time, so text extraction and search still work after subsetting.
A Type 1 program is embedded whole; a Type 3 font, each of whose glyphs is a drawing written into the document, is embedded by construction. Both are accepted under an archival claim and under an accessibility claim.
The fourteen fonts every reading software is assumed to own are never embedded: the engine refuses a document that holds one, under either claim, naming the font resource at fault. The rule reads the document's font table rather than the pages, so a font that was declared and never used refuses the document just the same. Through the service, that is standard_fonts: under archive, use fonts or type1_fonts instead.
Clause by clause
Two things a checker looks at are not produced by the engine. The embedded font keeps its own PostScript name rather than gaining the six-letter prefix that marks a subset, and no list of the glyph numbers kept is written beside it. Neither is measured here.
Where the chosen font has no glyph for a character, the engine writes that font's empty glyph by default, which the archival and the accessibility standards both decline. The engine does not report it: the chain of fallback fonts is what keeps it from happening.
What the engine does on its own
The engine does all of this as soon as a document claims the standard, whatever else the calling program asks for.
- Carries the font file inside the document, without being asked, for every font handed to it.
- Keeps only the shapes the pages actually draw, and rebuilds the tables around them.
- Writes the mapping back to characters every time, so the text stays selectable, copyable and searchable.
- Refuses the document that holds one of the fourteen assumed fonts, naming it.
What you supply
The engine states what it was given and invents nothing else: without those values it refuses the document rather than choosing one for you.
- The font file itself, and the right to embed it: a licence is between you and whoever drew the letters.
- A font that covers the characters the document writes, or a chain of fonts that between them do.
The published texts behind these rules
| Published text | What it asks for |
|---|---|
ISO 19005-3 6.2.11.4.1 |
Every font used on a page is embedded in the file. |
ISO 19005-4 6.2.10.4.1 |
The same, for the part built on PDF 2.0. |
ISO 14289-1 7.21.4.1 |
The same again, asked by the accessibility standard. |
ISO 14289-2 8.4.5.5.1 |
The same, for the second part of that standard. |
The other families of requirements
Which part of the archiving standard to claim Colours that mean the same thing on every device A page that comes out the same for everyone The document says what its marks stand for A document that carries other files inside it What the file says about itself Checking the claim, before and after