A standard font maps a character code (e.g., 0x41 for "A") directly to a glyph. That works for Latin alphabets (256 characters). But Japanese Kanji has over 6,000 common characters, and Chinese has tens of thousands. A simple 1-byte mapping is impossible.
Instead, a CIDFont uses a two-step process:
In a PDF dictionary, a CIDFont resource looks like this:
/F1 << /Type /Font
/Subtype /CIDFontType2
/BaseFont /HeiseiMin-W3
/CIDSystemInfo << /Registry (Adobe) /Ordering (Japan1) /Supplement 5 >>
/DW 1000
>>
That /DW key means "default width" – usually 1000 for em-based fonts. cidfont f1 normal fixed
Key takeaway: CIDFont is not a brand or a tool. It is a PDF font subtype (specifically CIDFontType0 for PostScript outlines or CIDFontType2 for TrueType outlines).
PDF repair tools sometimes report:
/F1 – Invalid CIDSystemInfo – forcing to /Normal /Fixed
This is where CIDFont F1 shines. Because it is often a "base 14" font or a substituted CID font within a PDF renderer: CIDToGIDMap (for Type 2 CIDFonts): Direct mapping or
In practice, /F1 is often an alias for:
Fixed width ensures:
While the string itself is a shorthand or log output, it corresponds to a PDF structure like this: A standard font maps a character code (e
7 0 obj
<< /Type /Font
/Subtype /Type0
/BaseFont /f1
/DescendantFonts [ << /Type /Font
/Subtype /CIDFontType2
/BaseFont /f1
/FontDescriptor 8 0 R
>> ]
>>
endobj
8 0 obj
<< /Type /FontDescriptor
/FontName /f1
/Flags 32 % Bit 5 (32) indicates Fixed Pitch
/FontWeight /Normal
/ItalicAngle 0
>>
endobj
| Part | Meaning | Typical values |
|------|---------|----------------|
| cidfont | Command/operator to load a CID-keyed font | cidfont, findcidfont |
| f1 | Logical font name (often a local alias) | f1–f9, F1, Ryumin-Light, GothicBBB-Medium |
| normal | Font style: upright (not italic/oblique) | normal, italic, oblique |
| fixed | Spacing: fixed-pitch (monospaced) | fixed, proportional |
Note: In standard PostScript, the correct operator is
findcidfont. The formcidfont f1 ...suggests a custom macro or wrapper (e.g.,cidfont /f1 findcidfont ...).
If you encounter problems with this string, check:
| Error message | Likely cause | Solution |
|---------------|--------------|----------|
| Error: undefinedresource --cidfont-- | No CIDFont named f1 exists in resource tree. | Define f1 via /f1 /CourierStd-CID findcidfont in prolog. |
| RangeCheck error in cidfont | CIDFont is proportional, but fixed requested. | Use proportional instead, or embed a fixed-patch CIDFont. |
| InvalidFont | The CIDFont lacks required metrics. | Recreate CIDFont with Adobe FDK or ttf2cid. |