Geordnete Rich-Text-Schriftkandidatenlisten
Rich Text kann eine explizit geordnete Familienliste behalten und diese Reihenfolge nutzen, wenn echte mitgelieferte Font-Programme für ein vollständiges Unicode-Graphem ausgewählt werden
Run:= THPDFHeadlessRichTextRun.Default;
Run.Text:= 'A' + WideChar($03A9) + 'B';
Run.FontFamily:= 'Primary';
SetLength(Run.FontFamilyCandidates, 3);
Run.FontFamilyCandidates[0]:= 'Primary';
Run.FontFamilyCandidates[1]:= 'Serif';
Run.FontFamilyCandidates[2]:= 'Sans';
Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;
Liefern Sie die tatsächlichen Familien- und Stilprogramme über die bestehenden named-family-APIs; Labels in FontFamilyCandidates finden oder laden keine Schriften
Auswahl und Bewahrung
Der erste betroffene authored Run liefert die Liste für ein ganzes Graphem, einschließlich Stilnähte und kombinierender Zeichen; jeder konfigurierte Kandidat muss jeden gestylten Teil mit seinem tatsächlichen Regular-, Bold-, Italic- oder Bold-Italic-Programm abdecken
Unbekannte Labels und Kandidaten mit fehlenden Stilprogrammen werden übersprungen; deckt kein deklarierter Kandidat das Graphem ab, greifen die bestehenden Fallback-Regeln für ausgewählte Familie und geliefertes Array
FontFamily muss dem ersten konfigurierten Label in einer nicht leeren Kandidatenliste entsprechen, wenn eine existiert; ein weggelassenes typisiertes JSON-FontFamily wählt diese Übereinstimmung automatisch
Fallback ändert nur die Appearance-Aufbereitung: der authored Plain-Wert, die exakte typisierte Größe und Farbe sowie die ursprüngliche Kandidatenreihenfolge bleiben in V und RV erhalten; der Resolver schreibt die Runs des Aufrufers nie um
Inline-XHTML und Austausch
Setzen Sie THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists auf True mit konfigurierten FontFamilyNames, um unterstützte kommagetrennte Inline-Schriftfamilienangaben zu bewahren, einschließlich Vererbung und important-Priorität pro Eigenschaft
Familienbewusste FDF- und XFDF-Importe schalten diese Bewahrung ein, wenn ihre Appearance-Optionen FallbackFontFamilies aktivieren; striktes Default-Decoding behält die bestehende Auswahl der ersten konfigurierten Familie
Listen enthalten höchstens sechzehn Labels, jeweils begrenzt auf 128 UTF-16-Code-Einheiten mit gültigem Unicode, ohne Steuerzeichen, umgebende Leerzeichen, Anführungszeichen, Backslashes, Kommas oder Semikolons; doppelte und unbekannte deklarierte Labels behalten ihre authored Reihenfolge
Native Linux JSON
{"schemaVersion":1,"type":"forms.fill",
"fontFamilies":["Primary","Sans","Serif"],"fallbackFontFamilies":true,
"fields":[{"name":"Input","richTextRuns":[
{"text":"A\u03a9B","fontFamily":"Primary",
"fontFamilyCandidates":["Primary","Serif","Sans"]}
]}]}
Die deklarierte Serif-vor-Sans-Reihenfolge steuert den Fallback, selbst wenn die Operation Sans vor Serif konfiguriert; der bestehende Fontconfig-Provider liefert die tatsächlichen named Programs unter denselben aggregierten Font- und Speicherlimits
Typisierte Run-Kandidatenarrays verlangen konfigurierte fontFamilies und aktiviertes fallbackFontFamilies; missgebildete Arrays oder Labels, fehlende Abdeckung des ganzen Graphems, erschöpfte Budgets und Abbruch schlagen transaktional fehl, bevor der Kontext committet wird
Die Capability formData.richFontFamilyCandidates und maxFontFamilyCandidates=16 kündigen diese begrenzte Option über die unveränderten V1-Callbacks und exportierten Symbolversionen an
Erfolgreiche verkettete Formularfüllungen und äquivalente FDF-/XFDF-Importe behalten ihr committetes Dokument und den Quell-Snapshot; Fehler beim Output- oder Result-Callback bewahren die vorherige committete Revision
Umfang
Dieses Profil deckt gelieferte Kandidatenlabels und unterstützte Inline-Deklarationen ab; externe Style Sheets, beliebiges CSS-Layout, generische Familiensuche und Windows-Callback-Fallback-Laden bleiben separate Arbeit
Fallback-Verhalten · Typisierter Run-Record · Decode-Optionen · Native Linux-Bindung