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
- HPDFBuildHeadlessTextFamilyAppearance
- SetTextFieldValueWithFamilies
- SetChoiceFieldValuesWithFamilies
- SetButtonFieldValueWithFamilies
- SetPushButtonAppearanceWithFamilies
Fallback de runs rich · Transporte de fuentes rich de Windows