Fallback de familias suministradas para campos escalares

Los campos de texto ordinarios, las celdas comb, las etiquetas de display de choices, las marcas de checkbox y radio, las máscaras de contraseña y las captions nativas de pushbuttons pueden usar las mismas familias de fuentes suministradas explícitamente que el rich text sin cambiar sus metadatos escalares de formulario

Suministre de una a dieciséis etiquetas configuradas distintas y sus programas TrueType regulares, y luego habilite FallbackFontFamilies; la selección cubre graphemes completos y no usa las fuentes instaladas del sistema

El wrapping plano existente, el espaciado, el shaping, el bidi, el clipping, la rotación, el dimensionado automático, las filas de list seleccionadas y el comportamiento de estado de export siguen activos; los campos comb mixtos conservan las restricciones originales de celdas escalares y no aceptan shaping complejo que el perfil comb original rechaza

Las appearances planas mixtas pueden contener Forms hijos y varias fuentes incrustadas reales, de modo que consuma el recuento de objetos devuelto en lugar de asumir una appearance fija de siete objetos

Transporte JSON y por callbacks de Windows

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Serif", "Sans"],
  "fallbackFontFamilies": true,
  "fields": [
    {"name": "Plain", "value": "A\u03a9"},
    {"name": "Check", "value": "Yes"}
  ]
}

Para los jobs de Windows, suministre el archivo de fuente regular de cada familia configurada a través del objeto fonts existente; para hpdf_document_execute_json_v1, devuelva su programa regular real a través de la extensión versionada existente de callbacks de fuentes e IO

El fallback con nombre explícito enruta un fill puramente escalar por la misma transacción de candidata autenticada que los runs tipados mixtos; las operaciones solo escalares solicitan faces regulares candidatas y devuelven typedRichText=false con scalarFamilyProfile="supplied-regular-fonts-v1"

Las importaciones escalares FDF y XFDF usan la misma ruta de familias suministradas para textos, choices, checkboxes y radio buttons; las captions de pushbuttons usan la API nativa de captions y no se importan como estados de export de botones escalares

Las importaciones y fills escalares de Windows de mismo valor retienen su contrato no-op existente de solo valor y preservan los bytes confirmados exactos, incluidos los campos de solo lectura; no comparan una configuración nueva de fuente o color con el AP existente, de modo que use un setter nativo de familias para una reconstrucción explícita de la appearance

Los runs rich tipados originales retienen su comparación existente de estilo y appearance; añadir el fallback escalar no cuantiza tamaños ni colores tipados ni cambia el RV del autor

Los callbacks de PDF y de resultado deben tener éxito ambos antes de que una actualización de contexto se haga visible; los errores sticky de fuentes e IO, la cancelación, los presupuestos, la autenticación de cifrado y las políticas de firmas preservan el grafo confirmado y la salida atómica de archivos

Una choice de selección única limpiada almacena /V null y un array de índices vacío; una opción de export vacía explícitamente seleccionada retiene /V () y su índice real, de modo que los clears repetidos y las selecciones de valor vacío permanezcan diferenciados

Una choice legacy en blanco sin índice seleccionado y sin opción de export vacía puede reconocerse como un no-op de solo valor; una choice de solo lectura con un export vacío realmente seleccionado no puede limpiarse

Transporte JSON y por callbacks nativo de Linux

Las operaciones versionadas de Linux aceptan las mismas opciones ordenadas fontFamilies y fallbackFontFamilies; los programas regulares se resuelven a través del entorno Fontconfig de la operación y se suministran a las APIs nativas de appearances de familias

El texto escalar, las celdas comb, las etiquetas de choices, las marcas de checkbox y radio, las máscaras de contraseña, los campos file-select y las captions explícitas de pushbuttons usan cobertura real de graphemes completos; las importaciones escalares FDF/XFDF cargan candidatos regulares sin añadir un flag de rich text del autor ni RV

Las importaciones solo rich retienen su unión real de estilos requeridos en lugar de solicitar la face regular de cada familia, mientras que las importaciones mixtas escalares y rich añaden los candidatos regulares que exigen los campos escalares

Las importaciones por callbacks de Linux preservan bytes confirmados exactos para clears repetidos y no-ops de mismo valor; las políticas autenticadas AES R5/R6, P1/P2/P3 y FieldMDP, la cancelación y los fallos de publicación retienen el documento previamente confirmado

Ejecute Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT contra cada librería ABI nativa recién construida; Tests/Linux/HeadlessScalarFontFallback.en-us.md describe las entradas firmadas genuinas, el catálogo aislado de tres fuentes y las comprobaciones independientes de glifos/CMS

Reproducir las comprobaciones de conformidad

Los runners públicos de Windows aceptan directorios explícitos de origen, salida, fuentes, fixture escalar, fixture de clear y políticas firmadas genuinas; nunca consumen silenciosamente un directorio de pruebas privado anterior

Genere los documentos iniciales de cuatro campos con Tests/Linux/Build-HeadlessTypedFormFixtures.py, y luego pase su mixed.pdf a los productores de fixtures escalares y de clear

python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear

Suministre programas regulares genuinos llamados primary-0.ttf, DejaVuSerifCondensed.ttf y DejaVuSans.ttf; el productor de fixtures de regresión Tests/Linux/Build-HeadlessRichFontListFixtures.py prepara el subset Primary determinista y los doce programas de estilo reales a partir de un directorio DejaVu suministrado por el llamador

Genere documentos reales P1, P2, P3 y FieldMDP con Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 y su directorio requerido de identidades de certificado/clave; sus salidas incluyen p1-signed.pdf, p2-signed.pdf, p3-signed.pdf y lock-signed.pdf

Tests/CABI/RunScalarClearNative.ps1 -SourceDirectory Lib -OutputDirectory work/native `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed
Tests/CABI/RunScalarClearABI.ps1 -SourceDirectory Lib -OutputDirectory work/abi `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed `
  -LegacyFixtureDirectory work/typed -LegacyFontDirectory work/legacy-fonts

Los parámetros de regresión legacy toman los directorios existentes de fixtures y fuentes de typed-form de Windows que usa Run-WindowsTypedFormChecks.ps1; las nuevas comprobaciones escalares también inspeccionan de forma independiente los programas incrustados reales, los mapas CID, los valores de formulario y los ByteRanges firmados retenidos

Los no-ops del DLL de Windows preservan los bytes confirmados exactos después de que ambos callbacks tengan éxito; las transacciones mixtas nativas también publican los bytes de origen exactos cuando todas las actualizaciones están sin cambios y el grafo no tiene ediciones pendientes, mientras que las ediciones pendientes del grafo permanecen en la revisión preparada incluso cuando el recuento de actualizaciones de campos es cero

FDF distingue un array de selección vacío de un export string vacío seleccionado; el intercambio de choices XFDF sin pérdida usa la extensión empty-values cualificada por namespace para un clear explícito, mientras que un value vacío sin marcar retiene su interpretación existente de opción objetivo

APIs nativas

Fallback de runs rich · Transporte de fuentes rich de Windows