CMap writing mode must be consistent
PDF/UA check
FONT_WMODE_CONSISTENT· Fonts & text encoding · severity Medium · 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
Inconsistent WMode (writing direction) values cause text to be laid out or extracted in the wrong direction.
What you will see
The WMode in a CMap dictionary disagrees with the WMode inside the embedded CMap stream.
How to fix
Set the WMode entry in the embedded CMap's dictionary to the same value as the WMode defined inside the CMap stream itself (0 for horizontal, 1 for vertical). Regenerating the embedded CMap with a current tool keeps the two in sync.
Step-by-step guide
- Locate the embedded CMap streams flagged by the scan - these are fonts whose Encoding entry is a stream object rather than a predefined name. Find them with Acrobat's Preflight font inventory or Preflight > Options > Browse internal PDF structure.
- Decode each CMap stream and read the writing-mode definition inside the CMap program (a line of the form /WMode 0 def or /WMode 1 def).
- Set the WMode entry in the stream's PDF dictionary to the same integer: 0 for horizontal writing, 1 for vertical. Align the dictionary to the stream content, since the CMap program is what actually drives layout.
- Alternatively, regenerate the PDF from the source application - a compliant exporter writes the dictionary entry and the CMap stream definition consistently in one pass.
- Acrobat Pro has no UI for this edit; an inconsistent WMode means the CMap was written incorrectly by the producing application, and the reliable fix is re-exporting the document from its source with a compliant export pipeline.
Verify: Re-run the EQChecker advanced scan and confirm FONT_WMODE_CONSISTENT reports zero errors. Vertical-writing text, if any, should still lay out in the correct direction.
Note: Applies only to embedded CMaps - predefined CMaps are exempt. A missing WMode key in the stream dictionary defaults to 0, so a CMap program defining WMode 1 always needs an explicit dictionary entry of 1 to be consistent.
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 |