Переносимый XFA runtime

Нативная модель данных, вёрстки и событий TXFAWidgetRuntime выполняется с Delphi или FPC на Windows и с FPC на Linux x86-64

Выполнению ядра на Linux не нужны LCL, десктопная сессия или слой совместимости с Windows; сборка Windows FPC сохраняет существующую инициализацию UTF-8 RTL Lazarus

Нативный мост JavaScript

bash tools/Build-HotPDFQuickJSLinux.sh /var/tmp/hotpdf-native
export HOTPDF_QUICKJS_DLL=/var/tmp/hotpdf-native/libhpdfquickjs.so
export HOTPDF_SUPPRESS_AUTO_LAUNCH=1

Мост Linux собирается из комплектных исходников QuickJS с GCC-совместимой компиляцией и использует тот же версионируемый ABI HPDFQJS, что и Windows DLL

QuickJSDLLPath и HOTPDF_QUICKJS_DLL принимают явный путь к разделяемой библиотеке на Linux; существующие имена API сохранены для совместимости исходников

Поиск по умолчанию проверяет libhpdfquickjs.so рядом с исполняемым файлом и Lib/thirdparty/QuickJS/bin/Linux64 в родительских каталогах исполняемого файла

Каждая сессия владеет ссылкой на свой точно загруженный модуль, пока не освобождены её нативный движок, контексты и callback; сессии сохраняют независимое состояние скриптов и журналы

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

Локали Linux

Нативный бэкенд локалей Linux читает системные имена календарей ICU, символы десятичных разделителей и группировки, символы и коды валют, маркеры AM/PM и шаблоны чисел, дат и времени

Именованные локали используют полностью разобранные идентификаторы BCP47 и известные языковые данные ICU; разделители-подчёркивания канонизируются, а неподдерживаемые языки или некорректные идентификаторы возвращают False

Пустое имя выбирает настроенную локаль ICU по умолчанию; определения localeSet документа и явные провайдеры локалей приложения сохраняют существующий приоритет

Нужны и libicuuc, и libicui18n; загрузчик разрешает совпадающие версии экспортов ICU, включая версионируемые runtime-библиотеки без dev-симлинков

ICU и Windows могут давать разные региональные шаблоны и пробельные символы в зависимости от установленных данных локалей; явные определения локалей документа позволяют выбрать детерминированное форматирование приложения

Сохранение и потребители PDF

SaveToBytes сохраняет нативный XDP, включая импорты Data DOM, значения экземпляров, отображения пространств имён, комментарии и инструкции обработки, с одинаковым поведением отката на обеих платформах

Фикстура потребления сохранённого XDP на Linux перезагружает TXFAWidgetRuntime и применяет реальные значения через сеттеры полей THPDFHeadlessDocument и нативную генерацию внешних видов

Этот потребитель использует независимо подготовленный шаблон полей PDF; автоматическое создание полей XFA-to-PDF на Linux и полный интерактивный рендеринг остаются отдельной интеграционной работой