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ónInputIOOutputIOResultIO
forms.exportEntrada PDF opcional; de lo contrario usa el documento cargadoBytes FDF o XFDF realesFormato JSON, media type, recuento de campos y recuento de bytes de salida
forms.importBytes FDF o XFDF obligatorios; el PDF de destino ya debe estar cargadoBytes del PDF actualizado ya preparadosFormato 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