Обмен формами через нативный Linux C ABI
Используйте существующий версионируемый вход hpdf_document_execute_json_v1 и запись hpdf_operation_v1, чтобы экспортировать или импортировать скалярные и ограниченные rich-значения AcroForm как FDF или XFDF
Версия ABI, экспортируемые символы и раскладка callback-записи остаются неизменными
| Операция | InputIO | OutputIO | ResultIO |
|---|---|---|---|
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 · Опции подписи и доверия · Нативная транзакция импорта