Fallback de fuentes rich de familias suministradas en Windows

Los file jobs de Windows y hpdf_document_execute_json_v1 soportan el fallback opcional entre familias de fuentes suministradas por el llamador para importaciones rich de FDF/XFDF y runs rich tipados originales; el fallback selecciona una familia que cubra el grapheme completo, incluidas las partes que cruzan límites de estilo rich

El comportamiento por defecto sigue siendo estricto: fallbackFontFamilies es false y un glifo obligatorio ausente falla con normalidad; suministrar una lista no selecciona silenciosamente fuentes instaladas en el sistema

Petición tipada

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Sans", "Serif"],
  "fallbackFontFamilies": true,
  "fields": [{"name": "Input", "richTextRuns": [
    {"text": "A\u03a9a\u0301", "fontStyle": "regular",
     "fontFamilyCandidates": ["Unavailable", "Primary", "Serif", "Sans"]}
  ]}]
}

fontFamilies contiene de una a dieciséis etiquetas configuradas distintas; las letras ASCII se comparan sin distinguir mayúsculas y los demás puntos de código Unicode se comparan exactamente; el fontFamilies y el fallbackFontFamilies a nivel de campo invalidan sus valores por defecto de la operación para forms.fill

Un run tipado puede especificar de una a dieciséis fontFamilyCandidates ordenadas cuando el fallback de familias configuradas está activado; los nombres desconocidos permanecen en los metadatos originales y se saltan durante la resolución de programas suministrados; si fontFamily está ausente, el primer candidato declarado configurado se convierte en la familia del run

Una lista de candidatos declarada controla la preferencia antes que el orden de familias configuradas; en este ejemplo, una fuente Primary sin Omega selecciona Serif antes que Sans cuando ambas alternativas suministradas cubren el grapheme completo

Importación de XML rich

Para forms.import, usa las propiedades fontFamilies y fallbackFontFamilies a nivel de operación; el decoder XHTML acotado preserva cada lista de font-family CSS en línea y el composer de apariencias real aplica ese orden a los programas de fuentes suministrados

<span style="font-family:Primary,Serif,Sans;font-weight:bold">AΩá</span>

Tanto las cadenas RV de FDF como los value-richtext de XFDF usan esta ruta; el perfil inline-xhtml-font-families-v1 existente sigue sin cambios, mientras que el comportamiento real del fallback se informa por separado

Bytes de fuentes reales

El callback de fuentes existente de THPDFCABIFormDataOperationV1 recibe cada etiqueta canónica de familia configurada y el identificador de estilo regular, bold, italic o boldItalic; devuelve la tabla read-IO acotada original y sus bytes se copian a almacenamiento propio

Los file jobs leen los mismos programas de familia/estilo de su objeto fonts existente; para cada estilo rich usado, el binding carga los programas candidatos configurados antes de preparar la transacción; los assets coincidentes se comparten entre campos tipados

Los layouts de IO y operación V1 y los símbolos exportados existentes siguen sin cambios; los presupuestos agregados de assets, bytes de fuentes, memoria, campos, objetos, resultados y salida siguen aplicándose; los fallos de callback siguen siendo sticky y los checkpoints de cancelación cubren parsing, carga, preparación y publicación

Transacciones y límites

La autenticación AES, la preservación de revisiones firmadas, DocMDP, los locks de campos y las comprobaciones de solo lectura usan la transacción autenticada existente; valores rich, estilos, fuentes y semántica de apariencia idénticos en la entrada pueden producir un no-op byte-idéntico, incluidos los campos de solo lectura

Los callbacks de PDF y JSON deben tener éxito ambos antes de que el contexto actual cambie; descarta los bytes del candidato emitidos tras cualquier estado distinto de cero; los file jobs preparan el candidato completo antes de reemplazar el objetivo

formDataExchange.suppliedFamilyFallback informa default=false, richOnly=true, wholeGrapheme=true, fontFamilyCandidates=true, maxCandidates=16 y candidateOrder=declared-before-configured

Esta feature se aplica al contenido rich; el fallback escalar ordinario, de etiquetas de elección y de captions de botones sigue siendo una capacidad separada; por ejemplo, una primera fuente de subconjunto sin el glifo del caption del checkbox aún necesita una fuente escalar apropiada o un futuro soporte de fallback escalar

El llenado rich directo de jobs cargados, la extensión antigua de job handle/callback de fuentes, el layout CSS arbitrario, las hojas de estilo externas y el intercambio adicional de anotaciones, ficheros, acciones o incremental de FDF/XFDF siguen siendo trabajo separado

Temas relacionados

Original typed rich filling, Windows form-data exchange, Versioned font transport, Native supplied families