From f802257be642cc767880d4fe4a1491247c92d765 Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Wed, 14 Oct 2026 15:32:16 -0700 Subject: [PATCH] docs(fonts): the README still called the standard-14 widths an estimate F1 replaced the character-class approximation with the published standard-14 metrics, and `helvetica_width` has delegated to `Std14::Helvetica` ever since. The README kept describing it as PdfCraft's own estimate and, more importantly, said "No metrics file or font program from any vendor is bundled" -- which stopped being true when the generated tables landed. They are Adobe-authored non-visual technical data, the item AGENTS.md 1.1 permits, carried in std14_metrics.rs with adobe_data = true in ATTRIBUTION.toml. A contributor reading the README would have concluded there was no vendor data here at all, which is the one kind of error that matters in a provenance claim. Says what is bundled now, and what still is not: widths and encodings, never a font program or a typeface. Co-Authored-By: Claude Opus 5 --- crates/fonts/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/fonts/README.md b/crates/fonts/README.md index 76fd89dd8..e7e3ef117 100644 --- a/crates/fonts/README.md +++ b/crates/fonts/README.md @@ -4,9 +4,11 @@ Layer L2. Font helpers for the appearance streams PdfCraft generates (comments, Today it holds what generated appearances need without a font program: -- `helvetica_width`: an approximation of Helvetica's proportions by character class. No metrics - file or font program from any vendor is bundled; widths are PdfCraft's own estimates, good - enough for line breaking and alignment, not for typesetting. +- `helvetica_width`: the **exact** standard-14 advance widths, via `Std14::Helvetica`. It was an + estimate by character class until the generated tables landed; those tables are Adobe-authored + non-visual technical data, the item `AGENTS.md` §1.1 permits, carried in `std14_metrics.rs` with + `adobe_data = true` in `ATTRIBUTION.toml`. **No font program or typeface from any vendor is + bundled** — widths and encodings only. Reach for `Std14` directly for any other face. - `wrap`: greedy line breaking with that measure (paragraphs on newlines, long words split). - `win_ansi`: Unicode → WinAnsiEncoding bytes (`?` for characters it can't represent), and `literal` to write bytes as a PDF literal string. Nothing writes that `?` silently. Callers