Intercambio de formularios por C ABI nativa 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 de la 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; en caso 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 destino ya debe estar cargado | Bytes PDF actualizados 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 a 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, opciones escalares y opciones 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, conservando las firmas 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 incrustados reales, incluidos los de un timestamp de documento RFC 3161; los bytes de estado suministrados externamente no pueden sustituir un atributo obligatorio ausente
El formDataLimits opcional contiene ajustes de enteros positivos maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits y maxTotalCodeUnits, acotados por los valores por defecto nativos y la capacidad de la operación
Los limits.memoryBytes, outputBytes y resultBytes existentes restringen además la preparación y la publicación; un límite de intercambio agotado devuelve HPDF_STATUS_BUDGET_EXCEEDED
Los callbacks se ejecutan de forma síncrona en el hilo llamante y pueden devolver lecturas o escrituras parciales; la cancelación se atiende mientras se lee la entrada del formulario, se parsea, se preparan apariencias y se publica el resultado
El handle destino cargado solo confirma después de que los callbacks de PDF actualizado y de resultado 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 llamante siguen siendo responsabilidad de este
Operaciones XFDF de anotaciones usan un perfil de append separado con referencias popup/reply y streams incrustados de archivo o sonido
El layout CSS arbitrario, los archivos FDF incrustados, las acciones arbitrarias y el intercambio de revisiones incrementales de FDF quedan fuera del perfil de datos de formulario
C ABI nativa de Linux · Opciones de firma y trust · Transacción de importación nativa