About PDF font inspector
There is one bug that accounts for most of the "it looked fine on my machine" support traffic in PDF work, and it is always the same bug: a font that is referenced but not embedded. When a PDF names a font without carrying its program, the reader has to find something locally to draw the text with. On the machine where the file was made, the real font is installed and everything looks right. On a client's laptop, a print bureau's workstation or a headless renderer, it is not installed, so the reader substitutes — and the substitute has different glyph widths. Lines rewrap, tables shift a column, a heading that fitted on one line breaks onto two, and a design that was signed off comes back wrong. This tool lists every font object in the document with the facts that decide whether that can happen: the name, the subtype, the encoding, whether a font program is embedded, and whether that program is a subset or the full face.
How to PDF font inspector
- 01
Load the PDF
Font dictionaries are collected from every page resource dictionary in the document.
- 02
Look at the embedded column first
Anything not embedded is a candidate for the substitution bug. That is the one column that decides portability.
- 03
Check subtypes and encodings
Type0 composite fonts with CID descendants behave differently from simple Type1 and TrueType fonts, particularly for non-Latin text.
- 04
Fix at the source
Re-export from the authoring application with font embedding switched on. Embedding cannot be added after the fact if the program was never included.
What this tool does
- Every font object listed with its base font name, including the six-letter subset prefix when present
- Subtype reported: Type1, TrueType, Type3, Type0 composite, plus CIDFontType0 and CIDFontType2 descendants
- Embedded versus referenced stated explicitly per font, which is the single most useful fact in the report
- Subset versus full face, inferred from the name prefix and the descriptor
- Encoding and ToUnicode presence, which determines whether text can be copied and searched correctly
- The fourteen standard fonts flagged separately, since readers are required to provide them
Limitations worth knowing
Every PDF tool has constraints. Stating them plainly is more useful than discovering them halfway through your work.
- This reports font properties. It cannot embed a missing font — that has to happen in the application that produced the PDF.
- It does not extract installable font files. Embedded subsets are incomplete by design and extracting them raises licensing questions.
- A subset font cannot be edited freely afterwards: glyphs the document never used are simply not present.
- Type3 fonts define glyphs as content streams rather than as a font program, so embedded-or-not is not a meaningful question for them.
- Whether a substitution will actually look wrong depends on the reader and the fonts installed on it, which cannot be determined from the file alone.
How your file is handled
This tool runs entirely inside this browser tab. When you choose a file, your browser reads it from your own disk and hands the bytes to JavaScript running on this page — no network request carries your document anywhere. You can confirm that yourself: open your browser’s developer tools, switch to the Network panel, and run the tool. You will see no upload.
Nothing is stored after the fact. Closing or reloading this tab discards the file, the result and everything derived from them, because none of it ever left your machine. Read how local processing works.
Questions about PDF font inspector
Why does my PDF render differently on another machine?
Almost always because a font is referenced but not embedded. The file names the font and assumes the reader has it. Where it is installed, text draws correctly; where it is not, the reader substitutes a different face with different glyph widths, so text reflows — lines break in new places, table columns shift, headings wrap. Check the embedded column in this report: if a font used for body text is not embedded, that is your answer.
What does "subset" mean, and is it a problem?
A subset font contains only the glyphs the document actually uses, and its name carries a six-letter prefix such as ABCDEF+Minion-Regular. It is the normal, desirable case because it keeps files small. It becomes a problem only when someone needs to edit the text later and types a character the subset never included, at which point the editor has to substitute for that character.
Are the standard fourteen fonts safe to leave unembedded?
They are safe in the narrow sense that every conforming reader must provide Helvetica, Times, Courier, Symbol and ZapfDingbats, so the text will draw. They are not safe in the sense a designer means: the metrics a reader uses for a substitute of Helvetica are not guaranteed to match the Helvetica you designed with. For anything going to print, embed.
What is the difference between a Type0 font and a TrueType font here?
Type0 is a composite font: it maps multi-byte codes through a CMap to a descendant CIDFont, which is what makes large character sets such as Chinese, Japanese and Korean possible, and it is also what modern producers use for Unicode text generally. A simple TrueType font maps single-byte codes through a much smaller encoding. If you are debugging text that extracts as garbage, the Type0 CMap and the ToUnicode map are where to look.
Can I download the fonts from a PDF with this?
No, deliberately. The report lists fonts and their properties. Embedded programs are usually subsets missing most of their glyphs, so they are of little use installed, and font licences generally permit embedding for viewing and printing while prohibiting redistribution as an installable file.
My text extracts as gibberish but looks fine. Why?
Because drawing and decoding are separate. The font maps character codes to glyphs for drawing, while copying text requires a ToUnicode map back to characters. If a producer omits or bungles ToUnicode, the page draws perfectly and the text copies as nonsense. This report shows which fonts lack ToUnicode; running OCR is the practical workaround.
Tools that pair with this one
- PDF InspectorA complete technical report on any PDF, produced without uploading it.
- Extract PDF Font ListExport a PDF font inventory — names and properties, not installable font files.
- Extract Text from PDFLift the text layer out of a PDF and keep it in reading order.
- OCR PDFTurn a scanned PDF into something you can search — without uploading it.
- PDF Size AnalyzerA byte-level breakdown of where your PDF weight actually is.
- PDF/A CheckerCheck the archival indicators in a PDF — clearly labelled as indicators, not certification.