Modern readers (Chrome’s PDFium, Mozilla’s pdf.js) have updated how they substitute missing cidfontf3 fonts. The new algorithm looks at /CIDSystemInfo more strictly, preventing incorrect glyph substitution (e.g., using Korean fonts for Chinese text).
In the world of digital printing, PDF generation, and high-end typography, few things cause as much confusion—and as many critical errors—as CIDFonts. If you have ever opened a PDF only to see blank boxes, missing characters, or error messages mentioning "cidfontf1," you have encountered a font mapping crisis.
This article provides a comprehensive, updated analysis of CIDFontF1, F2, F3, F4, F5, and F6—what they are, why they matter, how they have evolved, and how to troubleshoot the most common issues in 2025 and beyond.
CID-keyed fonts (CIDFonts) were created to handle large character sets—especially for East Asian languages—efficiently within PostScript and PDF workflows. This paper examines six CID font families (cidfontf1–cidfontf6), summarizes their historical design goals, and documents recent updates affecting encoding, compatibility, and performance. The aim is to provide a practical resource for font engineers, PDF tool developers, and typesetters. cidfontf1 f2 f3 f4 f5 f6 updated
Look for /ToUnicode or /CMap entries to ensure text extraction works correctly.
Use a tool like mutool info or pdf-parser.py:
mutool show pdf.pdf font
Run the following command (Ghostscript 10.03+): Modern readers (Chrome’s PDFium, Mozilla’s pdf
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.7 \
-sCIDFSubstPath=/path/to/fonts \
-sCIDFSubstFont="NotoSansCJK-Regular" \
-c "/CIDFontF1 /NotoSansCJK-Regular findfont definefont pop" \
-f input.pdf -o output_fixed.pdf
Updated flag:
-dPDFCIDSetSubstitution=trueis now default.
| CIDFont tag | Typical meaning (old workflows) | Modern reality |
|-------------|--------------------------------|----------------|
| F1 | Primary font | Any font, first referenced |
| F2 | Secondary / bold | Any font, second referenced |
| F3 | Italic | Any font, third referenced |
| F4 | Heading | Any font, fourth referenced |
| F5 | Code/mono | Any font, fifth referenced |
| F6 | Fallback | Any font, sixth referenced |
Key takeaway: Always dereference
F1–F6to the actual/BaseFontname. CID-keyed fonts (CIDFonts) were created to handle large
Create a substitution table. Example for modern environments:
| Old Alias | Recommended Replacement (OpenType) | |-----------|-------------------------------------| | CIDFontF1 | NotoSansCJK-Regular.ttc | | CIDFontF2 | NotoSerifCJK-Regular.ttc | | CIDFontF3 | NotoSansMonoCJK-Regular.ttc | | CIDFontF4 | NotoSansCJK-Bold.ttc | | CIDFontF5 | NotoSerifCJK-Bold.ttc | | CIDFontF6 | NotoSansCJK-Symbols.ttc |