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ónInputIOOutputIOResultIO
forms.exportEntrada PDF opcional; en caso 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 destino ya debe estar cargadoBytes PDF actualizados 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 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