Native Linux ABI named rich font families
The existing V1 JSON operation selects genuine native font programs for configured rich font families without changing 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 nonempty and match a configured label
Family arrays contain one through 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 and other Unicode characters compare exactly
Only family/style pairs used by nonempty runs are loaded; all loaded programs share the appearance font-byte budget and one 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 configures 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 include 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 behavior remains available; the default capability profile remains inline-xhtml-v1, while 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 certifying 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 retains 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 remain 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 behavior remains the default