Native Linux ABI named rich font families
The existing V1 JSON operation selects genuine native font programs for configured rich font families without altering its C records, callback tables or exported symbols
{"schemaVersion":1,"type":"forms.fill",
"fontFamilies":["DejaVu Sans","DejaVu Serif Condensed"],
"fields":[{"name":"Input","richTextRuns":[
{"text":"Sans text "},
{"text":"Serif text","fontFamily":"DejaVu Serif Condensed","fontStyle":"bold"}
]}]}
For forms.fill, fields[i].fontFamilies takes precedence over the operation's array; an omitted run family selects the first configured family, and an explicit run family must be non-empty and match a configured label
Family arrays contain one to sixteen distinct strings, each bounded to 128 UTF-16 code units with valid Unicode, no control characters, surrounding whitespace, quotes, backslashes, commas or semicolons; ASCII letter comparison ignores case whilst other Unicode characters compare exactly
Only family/style pairs used by non-empty runs are loaded; all loaded programs share the appearance font-byte budget and a quarter of limits.memoryBytes, with cancellation checked before and after native font retrieval
{"schemaVersion":1,"type":"forms.import","format":"xfdf",
"fontFamilies":["DejaVu Sans","DejaVu Serif Condensed"],"fontSize":12}
For FDF and XFDF imports, the operation array drives the bounded XHTML decoder; inherited font-family, supported comma-separated family lists and per-property important priority select actual configured programs, and an unknown CSS list falls back to the first configured family
Imports also load the first family's regular program for scalar fields; named rich responses carry richXMLProfile=inline-xhtml-font-families-v1, the configured fontFamilies labels and the existing aggregate fontStyles array
When the array is absent, the original single-family fontFamily and four-style behaviour remains available; the default capability profile remains inline-xhtml-v1, whilst formData.richXMLProfiles lists both profiles and namedFontFamilies and maxFontFamilies describe the optional selection
The deployment's native Fontconfig provider supplies the fonts and may apply its normal fallback; labels identify requested families rather than vouching for installed font files, and actual embedded programs determine PDF appearance metrics and glyphs
Plaintext and AES R5/R6 values, XHTML, field flags and widget appearances are prepared transactionally; cancellation, invalid labels, aggregate exhaustion or either publication callback failing keeps the current loaded context
An equivalent import copies the exact committed PDF snapshot; ordered inline font-family lists participate in whole-grapheme fallback when enabled; broader CSS layout and external style sheets are still active work
Rich form imports · Typed rich fields · Native Linux C ABI
Opt-in rich font fallback accepts fallbackFontFamilies for named-family typed fills and rich FDF/XFDF imports; strict selected-family behaviour remains the default