Embedding verdict
Four states, never three: fully embedded, subset embedded, not embedded, and could not verify — plus the evidence that produced each one.
Loading the PDF Font Checker…
A PDF looks right on the machine that made it whether or not its fonts are inside the file. The difference only surfaces later: at the printer, at KDP, at IEEE PDF eXpress, in a PDF/A validator, or on a colleague’s laptop where the text has quietly rewrapped. This checker reads the document’s font structure and tells you now.
A font name on its own answers nothing. These are the eight things that decide whether the document survives its destination.
Four states, never three: fully embedded, subset embedded, not embedded, and could not verify — plus the evidence that produced each one.
A six-letter prefix alone proves nothing, so the glyph count in the embedded program, a /CharSet list and a descendant /CIDSet are weighed together, with the confidence shown.
TrueType, Type 1, Type 0/CID, Type 3 and CFF, alongside what the embedded program itself declares: internal name, glyph count, tables and its embedding-permission bit.
Whether a /ToUnicode map exists, parses, and covers the character codes the document actually uses — measured against real usage, not the font’s theoretical range.
Page ranges, text-run counts, character counts, and whether the font sits in page content, a Form XObject, a form field or an annotation.
Declared sizes and the effective sizes after the text matrix, so a nominal 1 pt that renders at 11 pt is reported as what you actually see.
Substitution risk, Type 3 glyphs, invalid metrics and text too small to print, folded into a print verdict and a separate editing-readiness assessment.
A CSV font inventory to send your printer or client, and the complete JSON report for pipelines, diffs and archives.
Short answer: a subset is embedded. If a font shows “Embedded Subset”, it is inside your file and it will print correctly.
The complete font program is stored inside the PDF.
Only the glyphs the document used are stored. Still embedded.
The file depends on a font installed on the reading machine.
The structure did not give enough evidence either way.
A subset font is named with a six-letter tag before a plus sign, such as EOODIA+Poetica. The tag consists of exactly six uppercase letters; the choice of letters is arbitrary, but different subsets of the same font in the same PDF file must have different tags.Paraphrasing the subset-tag rule in the PDF specification (ISO 32000, §9.6.4).This is where most rejections come from. Subsetting is normal, standard, and what InDesign has always done — it stores only the glyphs your document used, which is why the file is small. The one real limitation is editing: a character that never appeared in the original PDF may simply not exist in the embedded subset, so adding it later needs a compatible replacement font. That is a different problem from a font not being embedded at all, and the report keeps the two apart.
Planning to change the text? Check the fonts before editing the PDF.
Three steps, about a minute, no Acrobat Pro licence and no signup.
Drop the file on the uploader above. It is read, not converted, not repaired and not written back — there is no modified file to download because nothing is modified.
Each family shows its embedding state, copy and search reliability, editing readiness and print outlook, with a Why? disclosure listing the evidence behind every one.
Select a font to highlight its text on the page preview and step through occurrences, then download the CSV inventory or the full JSON report.
Jump back to the uploader when you are ready.
Every one of these destinations requires embedded fonts, and each announces the problem in its own words. If you arrived here holding one of these errors, the font it names is in the report above.
| Destination | Font requirement | What the rejection looks like |
|---|---|---|
| Commercial printers | All fonts embedded; many shops also accept outlined text. | “Some fonts are not embedded” — usually by email, after the deadline. |
| Amazon KDP | All interior and cover fonts embedded. Subsets are embedded, despite what support sometimes says. | “Fonts are missing from your file. In order to print your book using ‘Symbol’ you will need to embed the missing fonts.” |
| IngramSpark | All fonts embedded in the print-ready PDF. | Preflight flags the font by name — commonly a system Times New Roman or Arial. |
| IEEE PDF eXpress | Every font embedded; Type 3 fonts rejected. | “Font Helvetica is not embedded (205x)”, “Font TimesNewRomanPSMT is not embedded (817x)”. |
| arXiv | All fonts embedded, including fonts inside included figures. | Submission blocked with the offending font named. |
| USPTO Patent Center | Embedded and legally embeddable fonts only. | “The attached PDF file references a non-embedded font: Arial. Please remove file, embed the font and reattach.” |
| PDF/A (ISO 19005) | Every font used for rendering must be embedded, and legally embeddable for unlimited universal rendering. | veraPDF reports the failed clause and the font name. |
| PDF/UA (ISO 14289) | Embedded plus reliable Unicode mapping, so screen readers can speak the text. | Matterhorn Protocol checkpoint 31-009. |
Error strings are reproduced as these platforms emit them. Requirements change — confirm against the destination’s own current guidelines before a deadline.
Six failures, one cause: the file asks for a typeface it does not contain, and the machine at the other end supplies whatever it has.
The viewer picks the closest installed match. Substitutes rarely share the original widths, so spacing shifts, lines rewrap and the page count can change.
Empty rectangles — □ □ □ — appear where the substitute has no glyph for the character. Most common with CJK text, symbols, maths and accented letters.
A page can render perfectly and still copy wrong, because rendering uses glyph outlines while copying depends on the Unicode mapping. The two are reported separately here.
The same broken mapping that ruins copy and paste is what assistive technology reads aloud, which is why PDF/UA requires embedding plus Unicode mapping.
A RIP substitutes on its own terms. Colour-critical layout, tight kerning and tabular figures are where the difference becomes visible and expensive.
Printers, KDP, IngramSpark, IEEE PDF eXpress, arXiv, the USPTO and every PDF/A or PDF/UA validator refuse files with non-embedded fonts.
“Check the fonts in this PDF” means one of two things, and only one of them can be answered from the file’s structure.
A metadata question, and this tool answers it completely. The PDF states which fonts it uses and carries their programs, so embedding, subsetting, encoding and usage are all facts to be read rather than guesses.
Partly answerable. If the text is real PDF text, the report gives the family and PostScript name behind the subset prefix. If the text was outlined or scanned, the file contains shapes and no font at all — that needs a visual matching tool working from an image, not a structural reader.
| Reported | Not reported |
|---|---|
| The real family and PostScript name behind a subset prefix | The typeface of text converted to outlines |
| Embedding state, subset state and the evidence for each | The typeface inside a scanned page image |
| Font type, encoding and /ToUnicode coverage | A visual match to a similar commercial font |
| Every page, size and scope the font is used at | A downloadable copy of the embedded font file |
| The embedding permission the font program declares | The full licence terms from the foundry |
| Type 3, CID and standard-14 classification | Several PDFs checked in one batch run |
A page with no fonts at all is reported as exactly that — no standard visible font resources were found; this page may be scanned, outlined or image-based — rather than a typeface guessed from a picture.
Fix it where the PDF was made, then re-check. This tool reports; it does not rewrite your document.
Both always embed, as subsets, unless the font’s licence blocks it. If export reports “could not be embedded due to licensing restrictions”, the font’s own permission bit is the blocker — swap the typeface or outline that text.
Turn on Options → Save → Embed fonts in the file, then re-export. Be aware the checkbox is unreliable for OpenType/CFF and variable fonts; verify the result rather than trusting it.
The body text is usually fine — the culprits are fonts inside included figures from MATLAB, R, matplotlib, Visio or Inkscape. Re-export those figures with fonts embedded, or run the whole PDF through Ghostscript.
Preflight has a fix-up that embeds missing fonts when they are installed on your machine. Print Production → Preflight → PDF fixups → Embed fonts.
# check first — emb=yes means embedded, sub=yes means subset
pdffonts paper.pdf
# embed everything, then re-check
gs -o embedded.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
paper.pdf
pdffonts embedded.pdfGhostscript is the universal fallback when you cannot rebuild the source: it re-writes the PDF with every font embedded. pdffonts from Poppler prints the same columns this checker reads — emb is yes when the font is embedded, sub is yes when it is a subset, and uni is yes when an explicit ToUnicode map exists.
Re-upload the result here to confirm the fix landed, and to check that Ghostscript did not introduce a Type 3 font or break the Unicode mapping while it worked.
The vocabulary that error messages assume you already have.
More on how the format stores all of this in the PDF internals guide, or open the raw dictionaries in the PDF object explorer.
Stated up front, because finding out afterwards is worse.
Up to 100 pages per document, one document per run. For a batch, export a CSV per file and combine them afterwards.
A font resource can exist without ever being used. A six-letter prefix is not proof of subsetting. A ToUnicode map is not proof its mappings are right. Where the file is ambiguous the report says so instead of picking a side.
The PDF is inspected over an encrypted connection and deleted immediately afterwards. It is never rewritten, converted or saved back, and embedded fonts are not offered for download — foundry licences permit embedding, not extraction.
Full detail in file handling and the privacy policy.
Upload the file to the PDF Font Checker. It reads each font descriptor and its font streams (FontFile, FontFile2, FontFile3) and classifies every active font as fully embedded, subset embedded, not embedded, or could not verify — the last meaning the structure gave no reliable evidence either way.
Yes. This checker needs nothing installed and no account, and it reports more than Acrobat’s Fonts tab: subset confidence, encoding, Unicode coverage, per-page usage and print risk. Developers can get the same core data from the pdffonts command in Poppler.
The report lists every font family, style, type, page usage and embedding status, grouped by visible family with each technical font object still available underneath. Select a font to highlight its occurrences in the document preview.
Select that font in the results table. The preview highlights the text runs that use it and you can step between occurrences, which is the fastest way to hunt down a stray Helvetica in a long document.
Not in one run — the checker inspects one document at a time. Export the CSV inventory for each file and combine them in a spreadsheet if you need a single view across a batch.
It means the font is embedded, but only the glyphs the document actually used are stored rather than the complete typeface. It displays and prints correctly everywhere. Subsetting is standard practice and is the main reason PDFs stay small.
Yes. A subset is embedded, so the printer has the glyph outlines it needs for every character on the page. Support agents at some platforms claim otherwise, but the PDF specification and every preflight tool treat a subset as embedded.
That six-letter tag marks a subset. The letters are arbitrary, but different subsets of the same font in one file must use different tags so they do not collide. The checker shows the real family and PostScript name behind the prefix.
Only for editing. Viewing and printing are unaffected, but a character that never appeared in the original document may not exist in the embedded subset, so adding new text with those characters needs a compatible replacement font.
Because at least one font used on the page has no font program inside the file, so their RIP would substitute a different typeface. Run the document through this checker: the fonts flagged Not Embedded are the ones the printer is naming.
Usually a system font that slipped in — Times New Roman, Arial or Symbol used by a header, a page number, or an imported graphic. Check the file here, note the fonts marked Not Embedded, and re-export from the source application with embedding on.
In LaTeX documents the body text is normally embedded and the offenders are inside included figures exported from MATLAB, R, matplotlib, Visio or Inkscape. Re-export those figures with fonts embedded, or run the finished PDF through Ghostscript with -dEmbedAllFonts=true.
Yes, both. PDF/A (ISO 19005) requires every font used for rendering to be embedded and legally embeddable. PDF/UA (ISO 14289) requires embedding plus reliable Unicode mapping, so assistive technology can speak the text correctly.
No. They are often left out because early viewers were expected to supply the standard 14 fonts, but a PDF that relies on that is still shipping without the font. Printers, KDP, IEEE PDF eXpress, the USPTO and PDF/A validators all reject it.
The font program carries an embedding-permission flag, and some foundry licences set it to forbid embedding. That is the source of the InDesign error “This font could not be embedded due to licensing restrictions.” The checker reports what each font declares about its own permissions.
Only as a last resort. Outlining converts text to vector shapes, which guarantees appearance but removes searchable, selectable, accessible text and makes the file larger. Embed where you can; outline the handful of characters where licensing blocks it.
No. It is a read-only inspector — it reports, and your original PDF is never modified. Fix the embedding where the document was made, or run it through Ghostscript, then re-upload here to confirm the fix landed.
Because the setting handles TrueType reliably but is inconsistent with OpenType/CFF and variable fonts, which are silently left out. Turn the option on, re-export, and then verify the result rather than assuming it worked.
Those empty boxes are called tofu, and they appear when the font being used has no glyph for the character. It usually means the real font is not embedded and the substitute lacks those characters — most often with CJK text, symbols, maths or accented letters.
The font is most likely not embedded, so the other machine substitutes the closest match it has installed. Substitutes rarely share the original character widths, so spacing, line breaks and even the page count can shift.
Because the PDF lacks a dependable mapping from its displayed glyphs to Unicode characters. Custom encodings and a missing or malformed /ToUnicode map make copied, searched or extracted text come out wrong even though the page looks perfect on screen.
Yes. Embedding supplies the glyph outlines used for rendering, while copying and searching depend on encoding and Unicode mapping. One can work perfectly while the other does not, which is why this tool reports them as separate results.
A PDF can contain separate font objects for different pages, subsets, encodings, form fields or resource scopes, all representing one visible family. The report groups them under that family while keeping every technical object available for review.
A Type 3 font defines each character with PDF drawing instructions rather than a conventional typeface outline. It displays normally, but copying, searching and editing are unreliable, and publishers such as IEEE reject files that contain them.
A /ToUnicode map connects the character codes used inside a PDF to Unicode text, which is what lets copying, searching, extraction and screen readers understand the glyphs. The checker verifies that it exists, parses, and covers the codes the document actually uses.
No. A scanned page is an image and normally contains no font objects at all, so the report labels it as image-based rather than guessing. Recognising a typeface from the picture itself needs a visual font-matching service.
You can get the name. Where the page holds real text, the report gives the family and PostScript name behind any subset prefix, which is enough to license the font. Where the text was outlined or scanned there is no font in the file to name.
No. Embedded fonts are usually subsetted and technically incomplete, and foundry licences generally permit embedding in a document but not extraction and reuse. The checker reports what each font declares about its embedding permissions and stops there.
Embedding helps but is not sufficient on its own. It also depends on whether the font is subsetted, whether Unicode mapping is reliable, and whether the characters you need are present. The report combines those signals into an editing-readiness verdict per font.
No. The inspection reads document structure and produces a report without rewriting, converting or repairing anything. There is no modified file to download because nothing is modified.
No. The file is processed for the analysis and then removed — it is not kept, shared, indexed or used for training. Only structural metadata such as page and font counts is logged; document text is not.
Free, no signup, no watermark, no daily limit. Your PDF is inspected read-only and deleted straight after.
Check my PDF fontsAll PDF toolsPDF editorAccessibility checkerPDF quality checkerCompress PDF