29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# printcraft-fonts
|
|
|
|
Layer L2. Font helpers for the appearance streams PrintCraft generates (comments, form fields).
|
|
|
|
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 PrintCraft's own estimates, good
|
|
enough for line breaking and alignment, not for typesetting.
|
|
- `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.
|
|
|
|
It also holds the fonts of the optional [craft-fonts](https://github.com/storytold/craft-fonts)
|
|
build input. `build.rs` embeds them as `CRAFT_FONTS` when the build sets
|
|
`CRAFT_FONTS_DIR=<checkout>` (and fails if it can't while `CRAFT_FONTS_REQUIRED=1`, as releases
|
|
set). Without that variable `CRAFT_FONTS` is empty and everything below copes:
|
|
|
|
- `ui_japanese_fonts`: the `Jpan` faces for the interface, BIZ UDPGothic first.
|
|
- `document_japanese_font` / `japanese_glyph`: the face (Shippori Mincho, then BIZ UDMincho) whose
|
|
outlines become the Type 3 fallback font for Japanese text written into PDFs. Without it,
|
|
`japanese_glyph` returns `GlyphError::NoFont` and the editor reports a clear error.
|
|
- `SHIPPORI_MINCHO`: Shippori Mincho's bytes, or `None`.
|
|
|
|
wasm32 builds embed only BIZ UDPGothic Regular, to keep the web build small. Font files are never
|
|
committed here: see [craftrules `standards/fonts.md`](https://github.com/storytold/craftrules/blob/main/standards/fonts.md).
|
|
|
|
The full font subsystem (parsing, shaping, subsetting and embedding) arrives with M2.2/M7.
|