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

Существующая операция forms.import принимает FDF RV и XFDF value-richtext через версионированные колбэки InputIO вызывающего и публикует настоящий обновлённый PDF через OutputIO

Версия ABI V1, экспортируемые символы и раскладка таблицы колбэков не меняются; эта привязка ориентирована на нативный Linux x64

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

Целевой PDF уже должен быть загружен; InputIO поставляет фактические байты данных форм, а не другой PDF

Профиль inline-xhtml-v1 сохраняет смешанный порядок Unicode-текста, абзацы и явные разрывы строк, унаследованные встроенные размеры шрифтов, цвета RGB, насыщенность, курсив, underline, strikeout и выравнивание абзацев через ограниченный нативный декодер XHTML

Необязательные именованные rich-семейства шрифтов выбирают сконфигурированные программы с унаследованными списками семейств CSS; произвольная CSS-раскладка, внешние таблицы стилей, таблицы, изображения и вертикальное выравнивание остаются отдельными возможностями

fontFamily выбирает реальные программы regular, bold, italic и bold-italic нативного провайдера шрифтов; загружаются только стили, требуемые фактическими rich-значениями, вместе с программой regular для скалярных полей

Конфигурация Fontconfig развёртывания должна поставлять желаемое семейство и начертания; обычный fallback провайдера применяется, когда запрошенное начертание недоступно, а fontStyles описывает загруженные слоты стилей, а не сертифицирует установленные начертания шрифтов

Программы шрифтов возвращаются вызывающему внутри встроенных потоков шрифтов подготовленного PDF и реальных appearance; пути к файлам шрифтов в JSON-ответе не раскрываются

При нулевом fontSize XHTML без стилей использует 12-пунктовый дефолт декодера; явные поддерживаемые размеры шрифтов XHTML сохраняют собственные значения

Поле результатаСмысл
updatedЧисло изменённых терминальных полей, включая поддерживаемые изменения только стилей
richFieldCountЧисло rich-полей в декодированном вводе, включая эквивалентные неизменённые значения
fontStylesФактически загруженные слоты шрифтов в порядке regular, bold, italic, boldItalic
richXMLProfileinline-xhtml-v1 или inline-xhtml-font-families-v1, когда декодированный ввод содержит rich-поля
fontFamiliesСконфигурированные метки семейств, когда передан необязательный массив именованных семейств

Эквивалентная каноническая и неканоническая rich-разметка идемпотентна, когда совпадают её текст и поддерживаемые стили; неизменённые read-only поля сохраняют свой исходный RV, а различные поддерживаемые стили соблюдают защиту read-only

Импорт без изменений публикует точный зафиксированный приватный снимок PDF, включая существующие подписанные или зашифрованные ревизии, не накапливая пустых ревизий перекрёстных ссылок; изменившиеся входные байты или файлы-подложки вызывающего не заменяют этот загруженный снимок

Импорт сохраняет аутентифицированную безопасность AES, фактические подписанные ревизии, решения DocMDP P1/P2/P3 и блокировки FieldMDP через нативную rich-транзакцию импорта

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

Колбэки выполняются синхронно на вызывающем потоке; частичные input- и output-колбэки принимаются, а отмена остаётся активной во время разбора, загрузки шрифтов, подготовки appearance и публикации

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

Возможности объявляют formData.richXML=true, совместимый дефолт richXMLProfile=inline-xhtml-v1, оба richXMLProfiles, необязательный выбор именованных семейств до шестнадцати меток и четыре поддерживаемых fontStyles; обмен аннотациями остаётся false

Колбэки и лимиты данных форм · Нативный C ABI в Linux · Опции доверия подписи

Внутренние стилевые листы применяют ограниченные селекторы, importance, специфичность и порядок в источнике к фактическим импортированным rich-значениям и сохранённым внешним видам; повторные эквивалентные импорты и неудавшаяся публикация сохраняют существующие гарантии транзакций

richTextResources поставляет связываемый и импортируемый текст CSS через неизменённую операцию execute-json-v1

Для приёмки используйте FPC 3.3.1 или новее с совпадающими юнитами runtime и записывайте фактическую сборку компилятора

Разбор JSON-операций сохраняет экранированный NUL и ключи объектов Unicode; NUL в richTextResources отклоняется до изменения документа, а не молча исчезает при декодировании JSON

Переиспользуемый гейт Tests/Linux/JSONOperationUnicode/Run.py проверяет выбранный парсер продуктов, а фактический колбэк-набор проверяет также скомпилированную разделяемую библиотеку и PDF-транзакцию