Обмен формами через нативный Linux C ABI

Используйте существующий версионируемый вход hpdf_document_execute_json_v1 и запись hpdf_operation_v1, чтобы экспортировать или импортировать скалярные и ограниченные rich-значения AcroForm как FDF или XFDF

Версия ABI, экспортируемые символы и раскладка callback-записи остаются неизменными

ОперацияInputIOOutputIOResultIO
forms.exportНеобязательный входной PDF; иначе используется загруженный документРеальные байты FDF или XFDFФормат и медиатип JSON, число полей и объём вывода в байтах
forms.importОбязательные байты FDF или XFDF; целевой PDF уже должен быть загруженПодготовленные обновлённые байты PDFФормат и медиатип JSON, число полей и число изменившихся полей

Обе операции требуют, чтобы format был ровно fdf или xfdf, а schemaVersion равнялся 1

{"schemaVersion":1,"type":"forms.export","format":"xfdf"}
{"schemaVersion":1,"type":"forms.import","format":"fdf","fontFamily":"DejaVu Sans","fontSize":12}

Поддерживаемые значения включают вложенные текстовые поля Unicode, экспортные состояния checkbox и radio, скалярные и множественные выборы; принимаются XFDF в UTF-8 и в UTF-16 с BOM

FDF RV и XFDF value-richtext используют rich-профиль inline-xhtml-v1, где реальные шрифтовые программы regular, bold, italic и bold-italic выбираются по fontFamily

Поля подписей и pushbutton представлены именами без импортируемых значений, что сохраняет заполненные подписи и существующее поведение кнопок

Импорт заново генерирует настоящие внешние виды и сохраняет аутентифицированное шифрование AES R5/R6, поля только для чтения, права DocMDP и блокировки FieldMDP

Необязательный signaturePolicy принимает requireCAdES, requireTimestamp, requireTimestampRevocation, существующие настройки trust-файла или PEM, а также revocationInfo со схемой опций подписания

Явная подписанная политика отзыва проверяет реальные встроенные атрибуты подписи, включая атрибуты метки времени документа RFC 3161; внешние байты статуса не заменяют отсутствующий обязательный атрибут

Необязательный formDataLimits содержит положительные целочисленные настройки maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits и maxTotalCodeUnits, ограниченные нативными значениями по умолчанию и ёмкостью операции

Существующие limits.memoryBytes, outputBytes и resultBytes дополнительно ограничивают подготовку и публикацию; исчерпанный лимит обмена возвращает HPDF_STATUS_BUDGET_EXCEEDED

Callback выполняются синхронно в вызывающем потоке и могут возвращать частичные чтения или записи; отмена учитывается при чтении входных данных формы, разборе, подготовке внешних видов и публикации результата

Загруженный целевой дескриптор фиксируется только после успешного завершения callback обновлённого PDF и JSON-результата; ошибки callback или отмена сохраняют его предыдущее состояние, а байты, уже принятые sink во владении вызывающего, остаются его ответственностью

XFDF-операции аннотаций используют отдельный append-профиль со ссылками popup/reply и встроенными файловыми или звуковыми потоками

Произвольная CSS-вёрстка, встроенные FDF-файлы, произвольные действия и обмен инкрементальными FDF-ревизиями остаются вне form-data профиля

Нативный Linux C ABI · Опции подписи и доверия · Нативная транзакция импорта