Ordnade kandidatlistor för rich-text-typsnitt

Rich text kan behålla en explicit ordnad familjelista och använda den ordningen när äkta angivna typsnittsprogram väljs för ett komplett Unicode-grafem

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;

Tillhandahåll de faktiska familje- och stilprogrammen via de befintliga API:erna för namngivna familjer; etiketter i FontFamilyCandidates söker inte upp eller hämtar inte typsnitt

Val och bevarande

Den första berörda skapade run:en tillhandahåller listan för ett helt grafem, inklusive stilfogar och kombinerande tecken; varje konfigurerad kandidat måste täcka varje stylad del med sitt faktiska reguljära, fet, kursiva eller fet-kursiva program

Okända etiketter och kandidater med saknade stilprogram hoppas över; om ingen deklarerad kandidat täcker grafemet gäller de befintliga fallback-reglerna för vald familj och angiven array

FontFamily måste matcha den första konfigurerade etiketten i en icke-tom kandidatlista när en sådan finns; att utelämna ett typat JSON-FontFamily väljer automatiskt den matchningen

Fallback påverkar bara förberedelsen av utseendet: det skapade enkla värdet, exakt typad storlek och färg samt ursprunglig kandidatordning bevaras i V och RV; resolvaren skriver aldrig om anroparens runs

Inline-XHTML och utbyte

Sätt THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists till True med konfigurerade FontFamilyNames för att behålla kommaavgränsade inline-deklarationer av font-family som stöds, inklusive arv och per-egenskap important-prioritet

Familjemedvetna FDF- och XFDF-importer aktiverar denna bevaring när deras utseendealternativ aktiverar FallbackFontFamilies; strikt standardavkodning behåller det befintliga valet av första konfigurerade familj

Listor innehåller högst sexton etiketter, var och en avgränsad till 128 UTF-16-kodenheter med giltig Unicode, utan kontrolltecken, omgivande whitespace, citattecken, omvänt snedstreck, kommatecken eller semikolon; dubblerade och okända deklarerade etiketter behåller sin skapade ordning

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 deklarerade ordningen Serif-före-Sans styr fallbacken även när operationen konfigurerar Sans före Serif; den befintliga Fontconfig-providern tillhandahåller faktiska namngivna program inom samma sammanlagda gränser för typsnitt och minne

Typade kandidatarray:er för runs kräver konfigurerade fontFamilies och aktiverad fallbackFontFamilies; felutformade array:er eller etiketter, saknad täckning av hela grafemet, förbrukade budgetar och avbrott misslyckas transaktionsmässigt före kontextens incheckning

Kapabiliteten formData.richFontFamilyCandidates och maxFontFamilyCandidates=16 annonserar detta avgränsade alternativ via de oförändrade V1-callbackarna och de exporterade symbolversionerna

Lyckade kedjade formulärfyllningar och ekvivalenta FDF/XFDF-importer behåller sitt incheckade dokument och sin källsnapshot; fel i utmatnings- eller resultcallbacks bevarar den föregående incheckade revisionen

Omfattning

Denna profil täcker angivna kandidatetiketter och inline-deklarationer som stöds; externa stilmallar, godtycklig CSS-layout, upptäckt av generiska familjer samt fallback-laddning via Windows-callback återstår som separat arbete

Fallback-beteende · Post för typade runs · Avkodningsalternativ · Native Linux-bindning