A PDF does not borrow fonts from your computer the way a word processor does. Each run of text names a font, and the file does one of three things with it: it carries the whole font program inside, it carries a subset holding only the letters the document uses, named with a six-letter tag such as AAAAAC+, or it carries only the font’s name and widths and leaves every viewer to find a match. Which of the three a file uses decides whether it looks the same on every screen, whether its text copies out correctly, and whether an editor can type new letters in the original font.

This guide explains each part in turn, with a real example from the demo documents of PDF Textfix, and ends with what a careful editor does when the font it needs is not all there.

What is a font inside a PDF file?

Inside a PDF, a page’s text is a list of drawing instructions in the page’s content stream. One says which font to use, by a short resource name such as /TT3; the next draws a run of character codes with it. The codes are numbers, not letters. The font object the name points to says how to turn each code into a glyph, the shape drawn, and how wide each glyph is, so the viewer knows where the next one goes. How a PDF stores text walks through those instructions on a demo file.

So a “font” in a PDF is three things: a dictionary that describes the font, a table of widths, and, when the file carries it, the font program: the outlines of the glyphs. The difference between a glyph and a character matters for everything below. The file always knows which glyph to draw. It does not always know which letter that glyph is, and it does not always hold the glyph’s shape.

What is the difference between an embedded and a referenced font?

The PDF standard says: “A font program may be embedded in a PDF file as data contained in a PDF stream object.” When it is, the shapes travel with the document, and every viewer draws the text with the same outlines. That is an embedded font.

When it is not, the file holds only the font’s name, its widths and a few metrics such as weight, slant and whether it has serifs. A viewer then looks for a font of that name on the computer it runs on, and if it finds none, it draws the text with a substitute shaped by those metrics. The page keeps its layout, because the widths are in the file, but the letters can look different from one computer to the next. Font not embedded in PDF covers that case and its fixes.

Fourteen fonts are a special case. The standard names Times, Helvetica, Courier, Symbol and ZapfDingbats in their styles, and of those it says: “These fonts, or their font metrics and suitable substitution fonts, shall be available to the conforming reader.” A file can name Helvetica without embedding it and still expect a reasonable result anywhere. A font report that lists Helvetica or Times as not embedded is rarely a problem on screen.

What does ABCDEF+ in front of a font name mean?

It means the font is a subset: the file embeds only the glyphs its pages draw, not the whole face. The standard marks a subset by its name: the name starts with a tag and a plus sign, and “The tag shall consist of exactly six uppercase letters; the choice of letters is arbitrary, but different subsets in the same PDF file shall have different tags.”

Here is what pdffonts, a free command-line tool from the Poppler project, printed for the demo invoice on October 13, 2026:

name                                 type              encoding         emb sub uni
------------------------------------ ----------------- ---------------- --- --- ---
AAAAAB+IBMPlexSans-SmBld             TrueType          MacRoman         yes yes no
AAAAAC+IBMPlexSans                   TrueType          MacRoman         yes yes no
AAAAAD+IBMPlexMono                   TrueType          MacRoman         yes yes no

Three faces. Each is embedded (emb yes), each is a subset (sub yes), and each has its own tag. The six demo documents were all made by the Mac’s own PDF engine, and all six show the same pattern.

Producers subset because it keeps files small: a typeface can hold hundreds of glyphs, and an invoice uses a few dozen. Acrobat’s help lists the two choices a PDF maker has: “Embedding the entire font” and “Embedding a subset containing only the characters used in the file”. The cost of a subset shows up only when someone edits the text, because the letters the author never typed have no shape in the file.

A full font next to the subset a PDF embeds On the left, the font as installed on a computer, with every glyph of the face, accented letters included. On the right, the subset of the SemiBold weight the demo cover letter embeds under a tagged name: only the glyphs the cover letter draws in that weight, such as the name Renee Okafor. The letter e with an acute accent, which the cover letter never uses, has no shape in the subset. Installed font IBM Plex Serif SemiBold every glyph ABCDEFGHIJKL abcdefghijklm nopqrstuvwxyz àçéñü0123456 Subset in the PDF AAAAAB+ IBMPlexSerif-SemiBold Renee Okafor é never typed, so no shape A subset holds only the glyphs the pages draw.
A subset carries the glyphs the document uses. Letters the author never typed, here the é, have no outline in the file.

One more detail: a file can hold more than one subset of the same face. Merging two documents set in the same font is a common way to get there, because each document’s pages keep drawing with their own subset. A glyph missing from one subset can sit in the other, which is why “another copy of the same font in the file” is the first place an editor should look. The demo cover letter has no such second copy: it embeds one subset per weight, AAAAAB+IBMPlexSerif-SemiBold and AAAAAC+IBMPlexSerif-Regular. The embedded subset font entry has more on tags and subsets.

How does a PDF know which letter a glyph is?

Through two maps. The encoding turns each character code into a glyph: a simple font uses a one-byte encoding such as WinAnsi or MacRoman, shown in the encoding column above, and a CID font uses two-byte codes, usually with the Identity-H encoding, where a code is simply a glyph number. The font encoding entry lists the common ones.

The second map turns codes into Unicode, so that search, copy and screen readers get letters rather than numbers. When the encoding is a standard one, a viewer can work that out by itself. When it is not, the standard says “the glyphs can still be shown, but the characters cannot be converted to Unicode values without additional information”. That information is the ToUnicode map, a small table in the file. pdffonts reports it in the uni column; its manual adds that the absence of the map does not mean the text cannot be converted. The demo invoice above has no map and copies correctly, because MacRoman is a standard encoding.

When the map is missing or wrong on a font with a custom encoding, the page looks right and copied text comes out as symbols. An editor faces the same problem in reverse: to type a letter, it must know which code draws it.

What types of fonts can a PDF contain?

Kind What it is In PDF Textfix
TrueType (simple) Outlines in TrueType form, one-byte codes. All six demo documents use it. Editable, with WinAnsi, MacRoman or a custom encoding, with or without a Unicode map.
Type 1 and CFF PostScript outlines, in the older form or the compact one (CFF). Editable: the line reuses the font’s own glyphs and a missing character comes from a fallback font.
CID-keyed (Type 0) Two-byte codes into a large glyph collection, usually Identity-H. Editable with CID TrueType and CID CFF programs. Predefined Chinese, Japanese and Korean encodings and vertical text stay locked.
Type 3 Glyphs drawn as small pictures with PDF drawing operators. Locked: the line says it is drawn with a font made of pictures.
Not embedded Only the name and widths are in the file. Editable in the standard 14 fonts and in the core TrueType fonts that stand in for them, such as Arial and Times New Roman; the Issues pane counts the lines that use a font the file does not embed.

Type 3 is the odd one out. The standard says “In Type 3 fonts, glyphs shall be defined by streams of PDF graphics operators.” There is no font program to type with, only a set of drawings, so no editor can type new letters in the same font. The Type 3 font entry explains where these come from.

Why can’t an editor just add the missing letter?

Because the shape is not in the file. A subset of IBM Plex Serif that never held “é” has no outline for it, and no editor can derive the right curves of a letter from the other letters. An editor that needs that letter has four honest choices: find the glyph in another copy of the same font in the file, use the same font installed on your computer, draw it with another font that looks close, or refuse the edit.

There is also a rule against building new fonts out of embedded ones. The standard’s default is strict: “In the absence of explicit information to the contrary, embedded font programs shall be used only to view and print the document and not for any other purposes.” The explicit information is usually in the font itself, as its embedding permissions.

What do font embedding permissions (fsType) allow?

OpenType and TrueType fonts carry a field, fsType, that says what the vendor allows when the font travels inside a document. Microsoft’s specification defines four levels: Installable, Restricted License, Preview & Print and Editable embedding. Two of them limit what an editor may do:

  • “Restricted License embedding: the font must not be modified, embedded or exchanged in any manner without first obtaining explicit permission of the legal owner.”
  • “Preview & Print embedding: the font may be embedded, and may be temporarily loaded on other systems for purposes of viewing or printing the document. Documents containing Preview & Print fonts must be opened “read-only”; no edits may be applied to the document.”

The same field has a bit that forbids subsetting. The font embedding permissions entry lists every value.

Microsoft’s wording asks that a document with a Preview & Print font be opened read-only. PDF Textfix does not lock such a document. It reads the field, edits a line in a Restricted or Preview & Print font only with the glyphs the file already has for it, and never builds new font data from that font: no extended copy, no other subset of the face. A missing character then comes from another font when one fits; otherwise the edit is refused, and the bar under the pages names the font and gives its licence as the reason. The Issues pane flags the licence limit and takes you to the first line in that font. Whether you may edit such a document at all is a question for the font’s licence, so check it before you edit. In the other direction, PDF Textfix does not embed an installed font whose own settings forbid it.

What happens when a font lacks a letter you type?

A careful editor types with the glyphs the file already has, looks for a missing one elsewhere in a fixed order (another copy of the same font in the file, the same font installed on your Mac, then the closest standard font as a fallback font), and marks every character that needed help. PDF Textfix works that way: the fonts already in the file are never modified, and the file gains a font only when a character you typed was not in the line’s own font. Why editing a PDF changes the font explains the order step by step, with the marks the editor shows and what other editors do in the same situation.

The bar under the pages of PDF Textfix while the heading of the demo cover letter is edited. It reads: Characters in orange are drawn with another font (fallback: Times-Bold). Font: IBMPlexSerif-SemiBold (embedded subset), 20 pt.
The editor bar names the line's font, says that it is an embedded subset, and names the fallback font that drew the one missing letter.

How to edit a PDF and keep the same font shows the whole procedure on the demo cover letter.

What do emb, sub and uni mean in pdffonts?

They are the three questions this guide has answered, one column each. The pdffonts manual defines emb as “yes” if the font is embedded, sub as “yes” if it is a subset, and uni as “yes” if the file has a ToUnicode map. pdffonts comes with Poppler, which Homebrew installs with brew install poppler.

Acrobat Reader shows a similar list under File > Document Properties > Fonts.

In PDF Textfix, the bar under the pages names the font of the line you are editing, such as “Font: IBMPlexMono (embedded subset), 9.5 pt”. How to find which fonts a PDF uses on a Mac goes through each tool step by step.

Questions people ask about PDF fonts

Why are the fonts in my PDF not displaying correctly?

Usually because a font is not embedded: the computer showing the file does not have it and draws a substitute. Check the font list for a font marked as not embedded. If every font is embedded and the text still looks wrong, the file may be damaged; ask its sender for a new copy.

Is a subset font a problem?

Not for reading or printing: the subset holds every glyph the pages draw. It becomes a problem only when you add letters the author never typed, because their shapes are not in the file.

Can I take a font out of a PDF and install it?

You should not count on it. A subset is incomplete by design, and the PDF standard says embedded fonts are for viewing and printing the document unless the font’s licence says otherwise. Buy or download the font from its vendor instead. Some faces are free: IBM Plex, the typeface of the demo documents, is published under the SIL Open Font License.

What is CIDFont+F1?

A name some producers write for a CID font in place of the typeface’s real name, so the font list cannot tell you which face it is. The CID font entry explains what it means for copying and editing.