Listes ordonnées de polices candidates pour rich text
Le rich text peut conserver une liste explicite ordonnée de familles et utiliser cet ordre pour sélectionner les véritables programmes de polices fournis pour un graphème Unicode complet
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;
Fournissez les programmes réels de famille et de style via les API de familles nommées existantes ; les libellés dans FontFamilyCandidates ne découvrent ni ne téléchargent de polices
Sélection et préservation
Le premier run rédigé concerné fournit la liste pour un graphème entier, y compris les jointures de style et les caractères combinants ; chaque candidate configurée doit couvrir chaque partie stylée avec son programme réel regular, bold, italic ou bold-italic
Les libellés inconnus et les candidates sans programme de style sont ignorés ; si aucune candidate déclarée ne couvre le graphème, les règles de fallback existantes par famille sélectionnée et tableau fourni s'appliquent
FontFamily doit correspondre au premier libellé configuré d'une liste de candidates non vide quand elle existe ; omettre un FontFamily typé en JSON sélectionne automatiquement cette correspondance
Le fallback ne change que la préparation d'apparence : la valeur simple rédigée, la taille typée précise et la couleur, ainsi que l'ordre d'origine des candidates restent dans V et RV ; le resolver ne réécrit jamais les runs de l'appelant
XHTML inline et échange de données
Définissez THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists à True avec FontFamilyNames configuré pour conserver les déclarations font-family inline séparées par des virgules et prises en charge, y compris l'héritage et la priorité important par propriété
Les imports FDF et XFDF sensibles aux familles activent cette préservation quand leurs options d'apparence activent FallbackFontFamilies ; le décodage strict par défaut conserve la sélection existante de la première famille configurée
Les listes contiennent au plus seize libellés, chacun borné à 128 unités de code UTF-16 avec un Unicode valide, sans caractères de contrôle, espaces environnants, guillemets, antislashs, virgules ni points-virgules ; les libellés déclarés dupliqués ou inconnus conservent leur ordre de rédaction
JSON Linux natif
{"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'ordre déclaré Serif avant Sans contrôle le fallback même quand l'opération configure Sans avant Serif ; le fournisseur Fontconfig existant fournit les programmes nommés réels sous les mêmes limites globales de polices et de mémoire
Les tableaux de candidates typés par run exigent des fontFamilies configurées et un fallbackFontFamilies activé ; les tableaux ou libellés malformés, la couverture de graphème incomplète, les budgets épuisés et l'annulation échouent transactionnellement avant le commit du contexte
La capacité formData.richFontFamilyCandidates et maxFontFamilyCandidates=16 annoncent cette option bornée à travers les callbacks V1 inchangés et les versions de symboles exportés
Les remplissages de formulaires chaînés réussis et les imports FDF/XFDF équivalents conservent leur document commité et l'instantané source ; les échecs de callbacks de sortie ou de résultat préservent la révision commitée précédente
Périmètre
Ce profil couvre les libellés candidats fournis et les déclarations inline prises en charge ; les feuilles de style externes, le layout CSS arbitraire, la découverte de familles génériques et le chargement de fallback par callback sous Windows restent des travaux séparés
Comportement de fallback · Record de run typé · Options de décodage · Binding Linux natif