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