Named Rich Text Font Families

Native rich fields can combine up to sixteen supplied Unicode TrueType font families, each with regular, bold, italic and bold-italic programs; each selected run uses its actual font bytes, glyph mapping, width, baseline and mark geometry

Configure THPDFHeadlessRichTextFontFamilies, assign each run's FontFamily label, and call SetRichTextFieldValueWithFamilies; an empty run label selects the first configured family

For XHTML, set FontFamilyNames and the default run family before decoding; quoted or unquoted comma-separated font-family lists select the first configured label, inherit restores the enclosing family, and valid important declarations retain their priority

A valid list containing no configured label selects the first configured family; a malformed declaration leaves the prior value unchanged; matching folds ASCII letters and preserves other Unicode characters exactly

Labels contain at most 128 UTF-16 code units, with no surrounding whitespace, controls, unpaired surrogates, quotes, backslashes, commas or semicolons; this bounded profile does not implement CSS escapes or implicit system-font discovery

The pure family appearance builder embeds only selected styles and applies aggregate font, glyph, object, byte and cancellation budgets; missing selected fonts and unknown explicit run labels fail before committing document changes

Family-aware form import applies the same selection to real FDF RV and XFDF value-richtext, preserves existing field and signature policies, and compares canonical named rich values for semantic no-ops

The existing single-family APIs and default decoder profile retain their signatures and behavior; programs using regenerated Pascal or C++Builder headers must rebuild when adopting the expanded managed run and option records; the external V1 C ABI records remain unchanged

Native Linux named-family JSON and versioned C ABI selection is available through the Linux family binding; Windows FDF and XFDF jobs accept nested family/style file paths or existing V1 font callbacks through Windows form-data exchange

Opt-in supplied-family grapheme fallback selects actual candidate family/style programs through the native APIs; Linux JSON fallback resolves the required configured candidate programs before preparing the same appearance

Windows typed-rich jobs and versioned callbacks select supplied families, and Windows rich font fallback retains ordered whole-grapheme candidates; arbitrary CSS escapes in family labels, implicit system aliases, external style sheets, general CSS layout and the older loaded-job handle/font callback extension remain active work

Acceptance

Six native compiler targets pass 168 assertions and 1327 independent checks over 36 actual saved PDFs per target, including eight real font programs, mixed-family advances, Unicode labels, inherited priority, FDF/XFDF import, AES R5/R6 security, rollback and initial or late cancellation

Fresh C++Builder headers compile the new family records, builders and document methods on both architectures; both versioned Linux shared libraries pass the existing four-font callbacks and independent output checks after rebuilding with the new internal records

Rich fields · Form data · Document API