How to pdf font errors: what this tool fixes (and what it doesn't)
- Step 1Diagnose with the Fonts panel first — Open the PDF in Acrobat → File → Properties → Fonts. Each font shows 'Embedded', 'Embedded Subset', or nothing. A font with no embedded marker is the genuine 'not embedded' case — note its name.
- Step 2Decide which problem you actually have — If every font shows Embedded/Embedded Subset, your display issue isn't a missing font — this tool's re-save may help with bloat or a messy structure. If a font shows as NOT embedded, this tool can't add it; jump to step 5.
- Step 3If fonts are embedded, run the optimiser — Drop the PDF into the PDF Font Subsetter and press Process. There are no options. It analyses the embedded fonts and re-saves the document with packed object streams.
- Step 4Verify the text still renders and copies — Open the output and confirm headings and body text look right and that selecting/copying a paragraph returns the correct characters.
- Step 5For a genuinely non-embedded font, regenerate the source — Go back to the application that produced the PDF (Word, InDesign, your print pipeline) and re-export with 'embed all fonts' / 'embed fonts: all' enabled. That puts the glyph data into the file. Then run this tool to optimise the now-embedded result.
- Step 6If the file is corrupt, repair it first — If the PDF won't open cleanly or fonts error because of structural damage, run PDF Repair to rebuild the document, then re-check the Fonts panel.
Two font problems, two different fixes
The single most important diagnosis in PDF font troubleshooting: is the font missing, or just embedded badly? They need different tools.
| Symptom | Acrobat Fonts panel shows | Right fix |
|---|---|---|
| Text reflows / wrong typeface on other machines | Font name with NO embedded marker | Regenerate the PDF with font embedding enabled (source app) |
| Looks right everywhere but the file is huge | Embedded (full) | This tool: analyse + object-stream re-save |
| Looks right, file already lean | Embedded Subset | Nothing needed — already optimal |
| Boxes/garbage where glyphs should be, file won't open right | Errors / can't read fonts | PDF Repair first, then re-check |
| Scanned page, no selectable text | No fonts at all (it's an image) | PDF OCR to add a text layer |
What this tool can and cannot do for font errors
Set expectations correctly before you process.
| Capability | Supported? | Detail |
|---|---|---|
| Optimise an already-embedded font | Yes | fontkit analysis + object-stream re-save |
| Embed a font that's missing from the file | No | Glyph data isn't present to recover |
| Pull a font from your installed system fonts | No | No such feature in this tool |
| Preserve selectable text | Yes | ToUnicode maps kept on the round-trip |
| Repair a corrupt PDF structure | No | Use PDF Repair instead |
| Add a text layer to a scan | No | Use PDF OCR instead |
Cookbook
Diagnosis-first scenarios. The fix you need depends on what the Fonts panel tells you — these examples show how to read it.
Genuine 'not embedded' — the case this tool can't fix
A Word export references Calibri but didn't embed it. On a Mac without Calibri, the text substitutes and reflows. The glyph data simply isn't in the PDF.
Acrobat → Properties → Fonts:
Calibri ............... (no 'Embedded' marker)
Font Subsetter: cannot add Calibri — it was never in the file.
Fix: Word → Save As PDF → Options → 'Embed all fonts' ON
→ re-export, THEN run the subsetter to optimise.Embedded but bloated — the case this tool helps
An InDesign export embedded the full font families. Display is correct everywhere but the file is large. The re-save repacks it.
Acrobat → Properties → Fonts: MinionPro-Regular .... Embedded MinionPro-Bold ....... Embedded Process: Font Subsetter Result: structure repacked, text unchanged, smaller file
Boxes everywhere — actually a corrupt file
A PDF downloaded from a flaky source shows tofu boxes and throws font errors. The fonts panel itself errors. This is corruption, not a font gap.
Symptom: □□□ where text should be; Fonts panel won't load
Wrong tool: Font Subsetter (it needs a parseable document)
Right tool: /pdf-tools/pdf-repair → rebuild structure
then re-open and re-check the Fonts panelVerifying embedding after a source re-export
After re-exporting with embedding enabled, confirm in Acrobat, then run the subsetter to slim the now-embedded fonts.
1. Re-export from source app with 'embed all fonts' 2. Acrobat → Properties → Fonts → all show Embedded/Embedded Subset 3. /pdf-tools/pdf-font-subsetter → optimise 4. Re-check Fonts panel → still Embedded Subset, file smaller
A scan that has no fonts at all
The 'missing font' you think you see is actually a flat image — there are no fonts because the page is a picture of text.
Acrobat → Properties → Fonts: (empty — no fonts listed) This is a scan. There's no font error to fix. To get selectable text: /pdf-tools/pdf-ocr first, then the OCR-added text can be optimised.
Edge cases and what actually happens
The font was never embedded in the source
Cannot embedIf Acrobat shows a font with no embedded marker, the glyph data isn't in the file and no tool here can recover it. This subsetter analyses and re-saves embedded fonts only. The real fix is to regenerate the PDF from its source application with font embedding enabled.
You expected the tool to use your installed fonts
No such featureThere is no option to substitute or embed a font from your operating system's font folder. The tool works strictly with what's already inside the PDF. To match a missing font, you have to re-create the document where that font is installed and embed it on export.
The PDF is corrupt and fonts error on open
Repair firstTofu boxes plus a Fonts panel that won't load usually means structural corruption, not a font gap. This tool needs a parseable document. Run PDF Repair to rebuild the structure first, then diagnose fonts again.
It's a scanned image, not text
No fonts presentA scan has no embedded fonts because the page is an image. There's no font error to fix and nothing for the subsetter to analyse. Use PDF OCR to add a real text layer if you need selectable text.
Display looks fine but you ran it 'to be safe'
By designIf every font is already embedded and the file is lean, the output will be nearly identical to the input. That's correct — there was no error to fix and little to optimise.
An embedded font fails to parse
PreservedIf fontkit can't parse one embedded program, that font is left untouched and the rest of the document is re-saved normally. A parse failure never strips or corrupts the font.
Encrypted PDF you're troubleshooting
SupportedThe tool reads with encryption ignored, so most protected files process. If a strongly encrypted file won't load, remove the password with Remove Password first.
File over the tier size/page limit
rejectedFree rejects PDFs over 2 MB or 50 pages before processing. If you're troubleshooting a large file, use Pro (50 MB / 500 pages) or split it first with PDF Split.
Frequently asked questions
Will this tool fix a 'font not embedded' error?
Only indirectly. If the font genuinely isn't embedded, the glyph data isn't in the file and this tool cannot add it — there's no 'embed from my system' feature. The real fix is to re-export the PDF from its source application with font embedding enabled. Once the font is embedded, this tool can optimise it.
How do I tell if my font is actually missing or just bloated?
Open the PDF in Acrobat → File → Properties → Fonts. A font with no 'Embedded' or 'Embedded Subset' label is genuinely missing (regenerate the source). A font marked Embedded (full) is present but heavy — this tool's re-save can help. A font marked Embedded Subset is already lean.
Why does my text look different on someone else's computer?
Almost always because a font isn't embedded, so their reader substitutes a different typeface and the text reflows. The fix is to embed the font at export time in the source application. This tool can't substitute a font that isn't in the file.
Can the tool pull a missing font from my installed fonts?
No. It only operates on font programs already inside the PDF. There is no path to read your operating system's font folder. To embed a missing font, re-create or re-export the document on a machine where that font is installed.
My PDF shows boxes/garbage everywhere — will this fix it?
Probably not directly. Widespread tofu boxes plus a Fonts panel that errors usually means the file is corrupt, not that a font is missing. Run PDF Repair to rebuild the structure first, then re-diagnose the fonts.
Does processing change how my text looks?
No. The glyphs in use are preserved and the ToUnicode map is kept, so text renders identically and stays selectable. The tool repacks the document; it doesn't re-typeset it.
How do I confirm fonts are embedded after I fix the source?
Re-open in Acrobat → File → Properties → Fonts. Every font should now read 'Embedded' or 'Embedded Subset'. Then you can run this tool to slim the embedded data.
Is the file uploaded anywhere while I troubleshoot?
No. All analysis and re-saving happens in your browser via pdf-lib, pdfjs, and fontkit. The document never leaves your device, which matters when you're debugging a sensitive file.
What if only one font fails and the rest are fine?
If fontkit can't parse a single embedded font, that one is left intact and the rest of the document is re-saved normally. You won't end up with a broken font from a parse failure — worst case, that one font just isn't optimised.
My page has no fonts listed at all — what's wrong?
Nothing is wrong font-wise: an empty Fonts panel means the page is a scanned image, not text. There's no font error to fix. Run PDF OCR if you want a selectable text layer.
Does it work on encrypted PDFs I'm investigating?
Yes for most — it reads with encryption ignored. If a strongly encrypted file won't parse, remove the password with the Remove Password tool first, then process.
After regenerating with embedding, do I still need this tool?
Optionally. Re-exporting with embedding fixes the display error; running this tool afterward can shrink the now-embedded fonts and repack the structure. It's a size optimisation on top of the fix, not part of the fix itself.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.