Intercambio de formularios por C ABI nativo de Linux
Usa el punto de entrada versionado existente hpdf_document_execute_json_v1 y el registro hpdf_operation_v1 para exportar o importar valores AcroForm escalares y rich acotados como FDF o XFDF
La versión del ABI, los símbolos exportados y el layout del registro de callbacks siguen sin cambios
| Operación | InputIO | OutputIO | ResultIO |
|---|---|---|---|
forms.export | Entrada PDF opcional; de lo contrario usa el documento cargado | Bytes FDF o XFDF reales | Formato JSON, media type, recuento de campos y recuento de bytes de salida |
forms.import | Bytes FDF o XFDF obligatorios; el PDF de destino ya debe estar cargado | Bytes del PDF actualizado ya preparados | Formato JSON, media type, recuento de campos y recuento de campos modificados |
Ambas operaciones exigen que format sea exactamente fdf o xfdf, con schemaVersion en 1
{"schemaVersion":1,"type":"forms.export","format":"xfdf"}
{"schemaVersion":1,"type":"forms.import","format":"fdf","fontFamily":"DejaVu Sans","fontSize":12}
Los valores soportados incluyen campos de texto Unicode anidados, estados de exportación de checkbox y radio, choices escalares y choices múltiples; se aceptan XFDF UTF-8 y UTF-16 con BOM
El RV de FDF y el value-richtext de XFDF usan el perfil rich inline-xhtml-v1, con programas de fuente reales regular, bold, italic y bold-italic seleccionados por fontFamily
Los campos de firma y pushbutton se representan por sus nombres sin valores importados, preservando las firmas ya pobladas y el comportamiento existente de los botones
La importación regenera apariencias genuinas y preserva el cifrado AES R5/R6 autenticado, los campos de solo lectura, los permisos DocMDP y los bloqueos FieldMDP
El signaturePolicy opcional acepta requireCAdES, requireTimestamp, requireTimestampRevocation, los ajustes existentes de archivo de trust o PEM, y revocationInfo usando el schema de signing-options
La política de revocación firmada explícita verifica los atributos de firma embebidos reales, incluidos los de un timestamp de documento RFC 3161; los bytes de estado suministrados externamente no pueden reemplazar un atributo requerido faltante
El formDataLimits opcional contiene ajustes de enteros positivos maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits y maxTotalCodeUnits, acotados por los defaults nativos y la capacidad de la operación
Los existentes limits.memoryBytes, outputBytes y resultBytes además restringen la preparación y la publicación; un límite de intercambio agotado devuelve HPDF_STATUS_BUDGET_EXCEEDED
Los callbacks se ejecutan síncronamente en el hilo llamador y pueden devolver lecturas o escrituras parciales; la cancelación se observa al leer la entrada del formulario, al parsear, al preparar apariencias y al publicar el resultado
El handle de destino cargado solo hace commit después de que los callbacks de resultado del PDF actualizado y del JSON tengan éxito; los errores de callback o la cancelación preservan su estado previo, mientras que los bytes ya aceptados por un sink propiedad del llamador siguen siendo responsabilidad del llamador
Las operaciones XFDF de anotaciones usan un perfil append separado con referencias popup/reply y streams embebidos de archivo o sonido
El layout CSS arbitrario, los archivos FDF embebidos, las actions arbitrarias y el intercambio de revisiones incrementales de FDF quedan fuera del perfil de form-data
C ABI nativo de Linux · Opciones de firma y trust · Transacción de importación nativa