PDF font subsetting, explained

If you have ever opened a PDF’s properties and seen a font called ABCDEF+Helvetica, that prefix is the reason editing the file may not keep its typeface.

By EasyEditPDF · Updated

What the prefix means

The six uppercase letters and the plus sign are a subset tag, defined by the PDF specification. They mark a font that has been cut down: instead of the whole typeface, the file carries only the glyphs the document actually used. The letters themselves are arbitrary — they exist so two different subsets of the same face can be told apart.

Why producers do it

A full typeface can be large, and a CJK face is far larger. Embedding only what is needed keeps files small. Font licences also frequently permit embedding a subset for viewing while not permitting redistribution of the whole face.

Why it makes editing harder

A subset contains the characters the document already had. If the word on the page is March and you type June, the file may have no J, no u and no e in that face — they were never needed, so they were never embedded. The glyph you want does not exist to draw.

What this editor does about it

It reuses the document’s own subset where the glyphs you typed are in it, and falls back only for the characters that are missing. What happens when a substitute is needed.

What this service embeds

Anything written into an export is itself subsetted, always — a full CJK face is never embedded. Variable fonts are never embedded at all: a viewer would render the wrong instance while the text still extracted correctly, which is a defect that hides from every test that only reads text.

Related: why the font changed after editing, how PDF text editing works.