Embedded vs non-embedded fonts
Font subsetting
/FontDescriptor with a six-character random prefix in the font name (e.g., ABCDEF+TimesNewRoman) — this tells any tool processing the PDF that the font is a subset.
The subsetting trade-off — Subsetted fonts cannot be safely reused. If you want to add text using that font after the PDF is created, the new glyphs may not be in the subset. Tools that edit PDF text (including PDF editors) must either embed the additional glyphs or use a separately embedded font instance.
Subsetting thresholds — Adobe Acrobat and most PDF creation tools use a configurable subsetting threshold: "Subset fonts with less than N% of characters used." The default in Acrobat is typically 100% (always subset). Some print production workflows use a lower threshold (e.g., 35%) to avoid subsetting fonts where a large proportion is used — a complete embedding is more useful for workflows that will further process the PDF.Font types: Type 1, TrueType, CFF/OpenType
/Subtype /TrueType designation. TrueType supports Unicode encoding directly via the cmap table, making them more straightforward for multilingual documents than Type 1.
CFF (Compact Font Format) / OpenType — Modern professional fonts are typically OpenType: a container format that holds either a CFF (PostScript) or TrueType outline. In PDF, CFF outlines are stored as /Subtype /Type1 or via CIDFont dictionaries. OpenType's advanced typographic features (ligatures, small caps, old-style figures) are typically applied before PDF creation — the PDF stores only the glyphs used, not the OpenType feature tables.
CIDFonts and composite fonts — For languages with large character sets (Chinese, Japanese, Korean) and for fonts covering the full Unicode range, PDF uses CIDFont dictionaries with a ToUnicode CMap. CIDFonts avoid the 256-character-per-encoding limitation and are essential for correct text extraction. The /ToUnicode entry in a font dictionary maps glyph IDs to Unicode code points — without it, text extraction tools and screen readers cannot recover the original characters from the rendered glyphs.Auditing and fixing font issues
pdffonts command-line tool (part of Poppler and Xpdf) lists all fonts in a PDF with embedding status, encoding, and whether a ToUnicode map is present. This is the fastest way to script font auditing across large document libraries.
Fix by re-distilling or re-exporting: The most reliable fix for missing font embedding is to regenerate the PDF from the source document with embedding enabled. In the source application (Word, InDesign, etc.) ensure font embedding is on in PDF export settings.
Fix in Acrobat Pro: Acrobat Pro's Print Production > Preflight panel includes fixes that can embed fonts into existing PDFs. However, this only works if the font is available on the machine running the fix — if the original font is not installed, Acrobat cannot embed it post-hoc.
Fix with Ghostscript: Ghostscript can re-distill a PDF with font embedding: gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dEmbedAllFonts=true -sOutputFile=out.pdf in.pdf. This embeds fonts that are available in Ghostscript's font path. As with Acrobat, the font must be accessible on the processing machine.