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