Intercambio enriquecido de formularios en el C ABI nativo de Linux
La operación forms.import existente acepta FDF RV y XFDF value-richtext a través de los callbacks versionados InputIO del llamador y publica un PDF actualizado genuino mediante OutputIO
La versión V1 del ABI, los símbolos exportados y el layout de la tabla de callbacks permanecen sin cambios; este binding apunta al Linux nativo x64
{"schemaVersion":1,"type":"forms.import","format":"xfdf","fontFamily":"DejaVu Sans","fontSize":12}
El PDF de destino ya debe estar cargado; InputIO suministra los bytes reales de datos de formulario, no otro PDF
El perfil inline-xhtml-v1 preserva el orden mixto de texto Unicode, los saltos de párrafo y de línea explícitos, los tamaños de fuente inline heredados, los colores RGB, el weight, la itálica, el underline, el strikeout y la alineación de párrafo a través del decoder nativo acotado de XHTML
Las familias enriquecidas opcionales con nombre seleccionan programas configurados con listas de familias CSS heredadas; el layout CSS arbitrario, las hojas de estilo externas, las tablas, las imágenes y la alineación vertical siguen siendo capacidades separadas
fontFamily selecciona los programas reales regular, bold, italic y bold-italic del provider nativo de fuentes; solo se cargan los estilos exigidos por los valores enriquecidos reales, junto con el programa regular usado por los campos escalares
La configuración de Fontconfig del despliegue debe suministrar la familia y las faces deseadas; el fallback normal del provider se aplica cuando una face solicitada no está disponible, y fontStyles describe los slots de estilo cargados en lugar de certificar faces de fuentes instaladas
Los programas de fuentes regresan al llamador dentro de los streams de fuentes embebidas y las apariencias reales del PDF preparado; ninguna ruta de archivo de fuentes se expone en la respuesta JSON
Cuando fontSize es cero, el XHTML sin estilos usa el valor por defecto de 12 puntos del decoder; los tamaños de fuente XHTML soportados explícitos retienen sus propios valores
| Campo de resultado | Significado |
|---|---|
updated | Conteo de campos terminales cambiados, incluidos los cambios de solo estilo soportados |
richFieldCount | Número de campos enriquecidos en la entrada decodificada, incluidos los valores equivalentes sin cambios |
fontStyles | Slots de fuentes realmente cargados en orden regular, bold, italic, boldItalic |
richXMLProfile | inline-xhtml-v1 o inline-xhtml-font-families-v1 cuando la entrada decodificada contiene campos enriquecidos |
fontFamilies | Etiquetas de familias configuradas cuando se suministra el array opcional de familias con nombre |
El markup enriquecido canónico y no canónico equivalentes es idempotente cuando su texto y estilos soportados coinciden; los campos de solo lectura sin cambios preservan su RV de origen, mientras que los estilos soportados distintos aplican la protección de solo lectura
Una importación de cero cambios publica el snapshot privado exacto ya confirmado del PDF, incluidas las revisiones firmadas o cifradas existentes, sin acumular revisiones vacías de cross-reference; los bytes de entrada cambiados del llamador o los archivos de respaldo no reemplazan ese snapshot cargado
La importación preserva la seguridad AES autenticada, las revisiones realmente firmadas, las decisiones DocMDP P1/P2/P3 y los locks FieldMDP a través de la transacción nativa de importación enriquecida
Los programas de fuentes combinados se acotan a un cuarto de limits.memoryBytes, además del límite nativo por fuente; los límites existentes de datos de formulario, glifos, objetos, salida y resultados siguen activos
Los callbacks se ejecutan de forma síncrona en el thread llamador; se aceptan callbacks parciales de entrada y salida, y la cancelación sigue activa durante el parsing, la carga de fuentes, la preparación de apariencias y la publicación
El handle confirma solo después de que ambos callbacks de PDF y JSON tengan éxito; un error de callback o una cancelación preserva su estado anterior, mientras que el llamador descarta cualquier byte parcial ya recibido por un sink
Las capabilities anuncian formData.richXML=true, el valor por defecto compatible richXMLProfile=inline-xhtml-v1, ambos richXMLProfiles, la selección opcional de familias con nombre de hasta dieciséis etiquetas y los cuatro fontStyles soportados; el intercambio de anotaciones sigue siendo false
Callbacks y límites de datos de formulario · Native Linux C ABI · Opciones de trust de firmas
Los style sheets internos aplican selectores acotados, importance, especificidad y orden de fuente a valores rich importados reales y apariencias guardadas; los imports equivalentes repetidos y la publicación fallida retienen las garantías transaccionales existentes
richTextResources suministra texto CSS enlazado e importado a través de la operación execute-json-v1 sin cambios
Para la aceptación use FPC 3.3.1 o posterior con unidades de runtime coincidentes y registre el build real del compilador usado
El parsing de operaciones JSON preserva NUL escapado y claves de objetos Unicode; un NUL en richTextResources se rechaza antes de que el documento cambie, en lugar de desaparecer silenciosamente durante la decodificación JSON
El gate reutilizable Tests/Linux/JSONOperationUnicode/Run.py verifica el parser de producto seleccionado, mientras que la suite real de callbacks también verifica la librería compartida compilada y la transacción PDF