Listas ordenadas de fuentes candidatas para rich text

El rich text puede conservar una lista explícita y ordenada de familias y usar ese orden al seleccionar los programas de fuente suministrados reales para un grafo 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;

Suministra los programas reales de familia y estilo mediante las APIs existentes de familias con nombre; las etiquetas de FontFamilyCandidates no descubren ni descargan fuentes

Selección y preservación

El primer run escrito afectado aporta la lista para un grafo completo, incluidas las costuras de estilo y los signos combinantes; cada candidato configurado debe cubrir cada parte con estilo con su programa real regular, bold, italic o bold-italic

Las etiquetas desconocidas y los candidatos sin programas de estilo se omiten; si ningún candidato declarado cubre el grafo, aplican las reglas de fallback existentes de familia seleccionada y arreglo suministrado

FontFamily debe coincidir con la primera etiqueta configurada de una lista de candidatos no vacía cuando existe; omitir un FontFamily tipado en JSON selecciona esa coincidencia automáticamente

El fallback solo cambia la preparación de apariencia: el valor plano escrito, el tamaño y color tipados precisos y el orden original de candidatos permanecen en V y RV; el resolver nunca reescribe los runs del llamador

XHTML en línea e intercambio

Asigna True a THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists con FontFamilyNames configuradas para conservar las declaraciones font-family en línea separadas por comas que estén soportadas, incluida la herencia y la prioridad important por propiedad

Las importaciones FDF y XFDF conscientes de familias activan esta preservación cuando sus opciones de apariencia activan FallbackFontFamilies; la decodificación estricta por defecto mantiene la selección existente de la primera familia configurada

Las listas contienen como máximo dieciséis etiquetas, cada una limitada a 128 unidades de código UTF-16 con Unicode válido, sin caracteres de control, espacios circundantes, comillas, barras invertidas, comas ni punto y coma; las etiquetas declaradas duplicadas y desconocidas conservan su orden original

JSON nativo de 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"]}
 ]}]}

El orden declarado Serif antes que Sans controla el fallback incluso cuando la operación configura Sans antes que Serif; el proveedor Fontconfig existente suministra los programas con nombre reales bajo los mismos límites agregados de fuente y memoria

Los arreglos tipados de candidatos de run exigen fontFamilies configuradas y fallbackFontFamilies activado; los arreglos o etiquetas malformados, la cobertura incompleta del grafo completo, los presupuestos agotados y la cancelación fallan transaccionalmente antes del commit del contexto

La capacidad formData.richFontFamilyCandidates y maxFontFamilyCandidates=16 anuncian esta opción acotada a través de los callbacks V1 sin cambios y las versiones de símbolos exportados

Los llenados de formulario encadenados exitosos y las importaciones FDF/XFDF equivalentes conservan su documento comprometido y la instantánea de origen; los fallos del callback de salida o de resultado preservan la revisión previa comprometida

Alcance

Este perfil cubre etiquetas candidatas suministradas y declaraciones en línea soportadas; las hojas de estilo externas, el layout CSS arbitrario, el descubrimiento de familias genéricas y la carga de fallback por callback en Windows siguen siendo trabajo aparte

Comportamiento de fallback · Registro tipado de run · Opciones de decodificación · Binding nativo de Linux