Custom CMaps must be embedded
PDF/UA check
FONT_CMAP_EMBEDDED· Fonts & text encoding · severity High · PDF/UA 8.4.5.4 CMaps · advanced check
Advanced check. This is a file-internals rule. It is hidden from the standard report view and generally indicates a problem with the tool that produced the PDF rather than something an author did.
Why it matters
Non-embedded custom CMaps depend on external resources that may not be available, causing text extraction failure.
What you will see
A font relies on a non-standard CMap that is not embedded in the file.
How to fix
Embed each non-predefined CMap as a stream object referenced from the font's Encoding entry. Alternatively, switch the font to a predefined CMap such as Identity-H or Identity-V, which does not need embedding.
Step-by-step guide
- Identify Type 0 fonts whose Encoding names a CMap that is not predefined. Predefined CMaps are those in ISO 32000-2 Table 116: Identity-H, Identity-V, and the standard Adobe CJK CMaps (e.g. UniJIS-UCS2-H, UniGB-UCS2-H). Anything else must be embedded.
- Path 1 - embed the CMap: store the CMap program as a stream object with Type /CMap plus CMapName, CIDSystemInfo, and WMode entries, and make the font's Encoding entry an indirect reference to that stream instead of a bare name.
- Ensure the embedded CMap references no other CMap via usecmap except the predefined ones in ISO 32000-2 Table 116, as clause 8.4.5.4 requires - EQChecker also flags transitive UseCMap references to non-predefined names.
- Path 2 - switch to a predefined CMap: change the font's Encoding to Identity-H or Identity-V, which never needs embedding. This requires the content-stream character codes to be rewritten to match, which Acrobat cannot do - in practice this path means re-exporting from the source application.
- Prefer fixing at the source: re-export from the authoring application with a current exporter, which either uses predefined CMaps or embeds custom ones automatically.
- Acrobat Pro has no UI for embedding CMaps. A file failing this check was generated incorrectly by its producing application - the font's Encoding names a CMap the file never embeds - and the only reliable fix is regenerating it from source with a compliant export pipeline.
Verify: Re-run the EQChecker advanced scan and confirm FONT_CMAP_EMBEDDED reports zero errors. CJK or custom-encoded text should still extract correctly.
Note: The rule passes on either path: the CMap is predefined (Table 116) or it is embedded in the file. Custom CMaps typically appear in older CJK workflows; modern exporters almost always use Identity encodings, so re-export usually clears this rule.
WCAG success criteria
No WCAG success criterion maps cleanly to this check — it is a PDF/UA structural requirement. The PDF/UA clause above is the normative reference.
Standards
This check contributes to the following standards:
PDF/UA
| Standard | Criteria |
|---|---|
| PDF/UA-2 (ISO 14289-2:2024) | 8.4.5.4 CMaps |