Example of correct CIDFont creation (Python pdfrw style pseudo):
font_dict =
'/Type': '/Font',
'/Subtype': '/CIDFontType2',
'/BaseFont': '/NotoSansCJKjp-Regular',
'/CIDSystemInfo':
'/Registry': '(Adobe)',
'/Ordering': '(Japan1)',
'/Supplement': 6
,
'/DW': 1000,
'/W': [] # explicit widths
Do not put /Ordering (Normal) or /Fixed unless you are building a diagnostic tool.
cidfont
f1
normal
fixed
First, forget everything you know about simple fonts like Type 1 (.pfb) or TrueType (.ttf). A CIDFont (Character Identifier Font) is a font format designed for large character sets—specifically for CJK (Chinese, Japanese, Korean) scripts. cidfont f1 normal fixed
| Property | Value / Meaning |
|----------|----------------|
| /DW (default width) | Same for all glyphs (e.g., 600 for 10‑point fixed at 600 units/em) |
| /W array | Often absent or redundant for pure fixed‑pitch |
| /WMode | 0 (horizontal) |
| /CIDToGIDMap | May be Identity for direct mapping |
In Ghostscript’s source file gs_cidfn.ps, you will find:
/CIDFont /F1 /Normal /Fixed
That is a built-in fallback for when no real CIDFont is available. It activates the “CIDFallback” mechanism with Normal registry/ordering. Example of correct CIDFont creation (Python pdfrw style
Used in PDF / PostScript font dictionaries:
/F1 << /Type /Font /Subtype /Type0
/BaseFont /Courier /Encoding /Identity-H
/DescendantFonts [ /CIDFont /F1 ]
>>
/CIDFont /F1 << /Type /Font /Subtype /CIDFontType0
/BaseFont /Courier
/CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >>
/DW 600 % Default width for all glyphs (fixed pitch)
/W [ ... ]
>>
Context: PostScript Language & PDF Architecture Category: Font Definitions / Descriptors