Ordnede Rich Text font-kandidatlister

Rich text kan beholde en eksplicit ordnet familieliste og bruge den rækkefølge ved valg af rigtige leverede fontprogrammer til et komplet Unicode-grapheme

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;

Lever den faktiske familie- og style-programmer gennem de eksisterende navngivet-familie-API'er; labels i FontFamilyCandidates opdager eller downloader ikke fonts

Valg og bevaring

Det første berørte authored run leverer listen til et helt grapheme, inklusive style-sømme og combining marks; hver konfigureret kandidat skal dække hvert stylet stykke med sit faktiske regular-, bold-, italic- eller bold italic-program

Ukendte labels og kandidater med manglende style-programmer springes over; hvis ingen deklareret kandidat dækker graphemet, gælder de eksisterende valgt-familie- og leveret-array-fallback-regler

FontFamily skal matche den første konfigurerede label i en ikke-tom kandidatliste, når en findes; at udelade en typet JSON FontFamily vælger det match automatisk

Fallback ændrer kun appearance-forberedelse: den authored plain-værdi, præcis typet størrelse og farve samt original kandidatrækkefølge forbliver i V og RV; resolveren omskriver aldrig kalderens runs

Inline XHTML og udveksling

Sæt THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists til True med konfigurerede FontFamilyNames for at beholde understøttede kommaseparerede inline font-family-erklæringer, inklusive nedarvning og per-property important-prioritet

Familie-bevidste FDF- og XFDF-importer aktiverer denne bevaring, når deres appearance-options aktiverer FallbackFontFamilies; streng default-dekodning beholder det eksisterende første-konfigureret-familie-valg

Lister indeholder højst seksten labels, hver afgrænset til 128 UTF-16 code units med gyldig Unicode, ingen kontroltegn, omgivende whitespace, anførselstegn, backslashes, kommaer eller semikolonner; duplikerede og ukendte deklarerede labels beholder deres authored rækkefølge

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"]}
 ]}]}

Den deklarerede Serif-før-Sans-rækkefølge styrer fallback, selv når operationen konfigurerer Sans før Serif; den eksisterende Fontconfig-provider leverer rigtige navngivne programmer under de samme samlede font- og hukommelsesgrænser

Typede run kandidat-arrays kræver konfigurerede fontFamilies og aktiveret fallbackFontFamilies; misdannede arrays eller labels, manglende hele-grapheme-dækning, opbrugte budgetter og cancellation fejler transaktionelt inden kontekst-commit

formData.richFontFamilyCandidates-capabilityen og maxFontFamilyCandidates=16 annoncerer denne afgrænsede option gennem de uændrede V1-callbacks og eksporterede symbolversioner

Succesfulde kædede formularfills og ækvivalente FDF/XFDF-importer beholder deres committede dokument- og kildesnapshot; output- eller resultat callback-fejl bevarer den foregående committede revision

Omfang

Denne profil dækker leverede kandidatlabels og understøttede inline-erklæringer; Windows jobs og versionerede callbacks bevarer også ordnet leveret-familie-fallback; eksterne style sheets, vilkårligt CSS-layout, generisk familie-opdagelse og den ældre loaded-job handle/font callback-udvidelse forbliver separat arbejde

Fallback-adfærd · Typet run-record · Decode-options · Native Linux-binding