Liste ordinate di font candidate per rich text

Il rich text può conservare una lista ordinata esplicita di family e usare quell'ordine quando seleziona i veri programmi font forniti per un grapheme Unicode completo

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;

Fornisci i programmi effettivi di family e stile tramite le esistenti API named-family; le etichette in FontFamilyCandidates non scoprono né scaricano font

Selezione e conservazione

Il primo run autoriale interessato fornisce la lista per un grapheme intero, incluse cuciture di stile e combining marks; ogni candidate configurato deve coprire ogni parte stilizzata con il suo vero programma regular, bold, italic o bold-italic

Le etichette sconosciute e i candidate privi di programmi di stile vengono saltati; se nessun candidate dichiarato copre il grapheme, valgono le regole di fallback esistenti per family selezionata e array fornito

FontFamily deve corrispondere alla prima etichetta configurata in una lista candidate non vuota, quando esiste; omettere un FontFamily tipizzato nel JSON seleziona automaticamente quella corrispondenza

Il fallback cambia solo la preparazione dell'appearance: il valore semplice autoriale, dimensione e colore tipizzati precisi e l'ordine originale dei candidate restano in V e RV; il resolver non riscrive mai i run del chiamante

XHTML inline e interscambio

Imposta THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists a True con FontFamilyNames configurate per conservare le dichiarazioni inline font-family separate da virgola supportate, inclusi ereditarietà e priorità important per singola proprietà

Gli import FDF e XFDF family-aware attivano questa conservazione quando le loro appearance options abilitano FallbackFontFamilies; la decodifica predefinita rigorosa mantiene la consueta selezione della prima family configurata

Le liste contengono al massimo sedici etichette, ognuna limitata a 128 UTF-16 code units con Unicode valido, senza caratteri di controllo, spazi periferici, virgolette, backslash, virgole o punti e virgola; le etichette dichiarate duplicate o sconosciute conservano l'ordine autoriale

JSON nativo di Linux

{"schemaVersion":1,"type":"forms.fill",
 "fontFamilies":["Primary","Sans","Serif"],"fallbackFontFamilies":true,
 "fields":[{"name":"Input","richTextRuns":[
   {"text":"A\u03a9B","fontFamily":"Primary",
    "fontFamilyCandidates":["Primary","Serif","Sans"]}
 ]}]}

L'ordine dichiarato Serif-prima-di-Sans governa il fallback anche quando l'operazione configura Sans prima di Serif; il provider Fontconfig esistente fornisce i veri programmi nominali sotto gli stessi limiti aggregati di font e memoria

Gli array candidate dei run tipizzati richiedono fontFamilies configurate e fallbackFontFamilies abilitato; array o etichette malformati, copertura mancante del grapheme intero, budget esauriti e cancellazione falliscono transazionalmente prima del commit del context

La capability formData.richFontFamilyCandidates e maxFontFamilyCandidates=16 dichiarano questa opzione limitata tramite le callback V1 invariate e le versioni dei simboli esportati

I form fill concatenati riusciti e gli import FDF/XFDF equivalenti conservano documento committato e snapshot sorgente; i fallimenti della callback di output o risultato preservano la revisione committata precedente

Perimetro

Questo profilo copre le etichette candidate fornite e le dichiarazioni inline supportate; fogli di stile esterni, layout CSS arbitrario, scoperta di generic family e caricamento fallback via callback su Windows restano lavoro separato

Comportamento di fallback · Record run tipizzato · Opzioni di decodifica · Binding nativo Linux