Skip to content

Static TTF instances ship without TrueType hinting tables (cvt, fpgm); breaks PDF font embedding #43

@Dan-Wilder

Description

@Dan-Wilder

Summary

The static TTF instances of Zalando Sans (e.g. ZalandoSans-Bold.ttf) are missing the cvt, fpgm tables entirely, and ship a 7-byte stub prep table. This causes applications with strict PDF-embedding validation — including ArcGIS Pro and certain Adobe workflows — to reject the font for proper embedding and fall back to embedding glyph outlines as Type 1 paths, which produces visible rendering artifacts in viewers like Adobe Reader.

Reproduction

Inspect any static TTF release using fonttools:

ttx -l ZalandoSans-Bold.ttf

Observed output (abbreviated):

tag     checksum    length    offset
----  ----------  --------  --------
GDEF  0x20AA1F69       236       664
GPOS  0xBD35B1C7     27450     37788
...
gasp  0x00000010         8       308
glyf  0xC301D274     24192     13596
...
prep  0x68068C85         7       300

No cvt table. No fpgm table. prep is a 7-byte stub.

Impact

ArcGIS Pro emits the following warning during PDF export:

Some font tables of font 'Zalando Sans' are missing for embedding, the font will be embedded as Type 1 outlines.

Esri has documented this behavior in BUG-000165985 as "as designed" — i.e., they will not work around fonts that lack the required tables. The resulting PDF exhibits thin white seams cutting through glyphs (subpath anti-aliasing artifacts from the outline fallback) and the text is not selectable/searchable.

This affects organizations that have adopted Zalando Sans as a brand standard and produce PDF deliverables from non-Adobe pipelines.

Suggested fix

Run ttfautohint on each static TTF instance as a post-processing step in the GitHub Actions build:

ttfautohint INPUT.ttf OUTPUT.ttf

Verified locally: running ttfautohint against ZalandoSans-Bold.ttf produces a font with populated cvt (96 bytes), fpgm (3596 bytes), and a proper prep table (189 bytes). The resulting font passes ArcGIS Pro's embedding validation and renders cleanly in Adobe Reader.

This is the standard Google Fonts approach for static instances exported from variable masters.

Environment

  • Zalando Sans static TTFs from the current release
  • ArcGIS Pro 3.x on Windows 11
  • Reproduced on multiple weights (Regular and Bold confirmed; other weights likely affected, identical build pipeline)

Example Images

Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions