Cid Font F1 F2 F3 F4 Better

Standard Base 14 fonts are often not embedded (relying on the PDF reader's internal versions). This causes visual inconsistency. If you try to subset a standard font to include unique characters, the old format lacks the sophisticated subsetting mechanisms native to CID formats.


Before we can understand why "F1, F2, F3, F4 better" matters, we must understand CID (Character Identifier) fonts.

Unlike simple fonts (Type 1 or TrueType) that map a single byte to a glyph, CID fonts are designed for large character sets. A CID font separates the character collection (the set of glyphs) from the CMAP (character map). The PDF specification uses numeric labels—often F1, F2, F3, F4—as font aliases or internal names for these CID-keyed fonts when the original font name is missing or when subsetting occurs.

Before we tackle F1-F4, we must understand CID (Character Identifier) fonts. Unlike traditional fonts (Type 1 or TrueType) that map a single byte to a single character (max 256 glyphs), CID fonts are designed for large character sets. A single CJK font can contain over 20,000 glyphs. cid font f1 f2 f3 f4 better

CID fonts use a two-part system:

When you embed a CID font in a PDF, the software (Adobe Acrobat, InDesign, etc.) often assigns internal names to these font instances. Enter: F1, F2, F3, F4.

CID Font F2 or F4 might use a CMap (Character Map) that doesn’t align with the text’s actual encoding. For instance, a PDF might claim F3 uses UniCNS-UCS2-H (Traditional Chinese), but the content is actually Simplified Chinese. The result? Wrong characters or nothing at all. Standard Base 14 fonts are often not embedded

For developers, manual fixes are impossible at scale. Use this Python snippet to detect and rename CID fonts:

import fitz  # PyMuPDF

doc = fitz.open("bad_fonts.pdf") for page in doc: for block in page.get_text("dict")["blocks"]: for line in block["lines"]: for span in line["spans"]: if span["font"].startswith(("F1","F2","F3","F4")): print(f"Found CID alias span['font'] at span['bbox']") # Fix: Re-encode page or extract text manually doc.close()

From here, you can extract the raw CIDs and remap them using a known Unicode table, producing a better output than relying on the broken original.

While the numbers are arbitrary (they simply count fonts), they often correlate with the order of appearance or role of the font in a structured document. Here is how advanced users interpret them to build better workflows:


cid font f1 f2 f3 f4 better

Important Note: Material found in the Online Christian Library Theological Virtual - NTSLibrary does not necessarily represent the views of any specific organization or person outside of the NTSLibrary. Information is provided solely for research and as a resource to students and guests of library. The information found in the online Christian library website has as a sole purpose the distribution of gathered data for research purpose, and its contents in no way reflect the beliefs or positions of any person or organization in or outside of the NTSLibrary.

Copyright � 2005-2019 NTSLibrary. All rights reserved.

Copyright Information / Webmaster Resources / Library References / Online Library Resources 
Online Theology Library  / Theology Journal / Site Map / Online Christian Library

Online Christian Library is maintained regularly providing updated resources and references.

Christian PDF Books are offered at no cost. However, individual copyrights need to be followed at all times.