Optional module · pdftoolkit/opentype 0.1.0
English | Français
Technical source and usage guide
The technical source is OpenType 1.9.1. Its version is separate from the package version. The supplied Adobe OTGuide.pdf is an October 2008 usage guide of 13 physical pages. It illustrates ligatures, small capitals and alternates, rather than defining their binary records.
The original guide is preserved: 826,379 bytes, SHA-256
39bc32fa334c76d488312ef92c16a5e147315d1c73e8b6ead77f410d297739f4.
Provenance is recorded in resources/reference-documents/metadata.json.
The PDF is excluded from Composer archives.
Implemented mechanisms
| Domain | Supported scope |
|---|---|
| Binary values | Bounded big-endian views; typed tags, Unicode scalars and glyph IDs |
| SFNT | Individual TrueType/OTTO directories, table records, preserved bytes, range checks and checksum policies |
| cmap | Base Unicode formats 4/12 and variation sequences format 14 |
| Horizontal metrics | Units per em, advances and left side bearings |
| GSUB structures | Script/language/feature/lookup lists, Coverage 1/2 and referenced indices |
| GSUB type 1 | Single substitution formats 1/2 |
| GSUB types 2/3/4 | Multiple, alternate and ligature format 1 |
| GSUB type 7 | Extension format 1 around supported substitutions |
| Execution | Explicit and required features, lookup order, alternate policy, clusters and bounded output; zero lookup flags |
Tests cover direct construction and binary input. Independent checks use fontTools for font data and HarfBuzz for supported substitutions on reproducible fonts. They validate this tested scope, not every OpenType table.
Remaining work
- Contextual, chained contextual and reverse chained GSUB types 5/6/8.
- GDEF classes, mark filtering/attachment and flags requiring those semantics.
- GPOS positioning, including kerning and mark/cursive attachment.
- Variable-font axes, interpolation and feature variations.
- Glyph outlines, TrueType instruction execution and CFF/CFF2 charstrings.
- Naming, OS/2, vertical, baseline, justification, mathematical, color and bitmap semantics.
- Font collections, WOFF/WOFF2, serialization, subsetting and full Unicode shaping.
Uninterpreted tables remain accessible as bytes. Selecting an unsupported transformation throws explicitly. Coverage advances through coherent releases with their own tests and independent checks.
resources/coverage.json records this scope by table and mechanism. Partial
header reads and raw byte access are distinguished from implemented semantics.