可移植 XFA 运行时
原生 TXFAWidgetRuntime 数据、布局与事件模型在 Windows 上随 Delphi 或 FPC 执行,在 Linux x86-64 上随 FPC 执行
Linux 核心执行不需要 LCL、桌面会话或 Windows 兼容层;Windows FPC 构建保留既有 Lazarus UTF-8 RTL 初始化
原生 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 兼容编译构建,使用与 Windows DLL 相同的带版本 HPDFQJS ABI
Linux 上 QuickJSDLLPath 与 HOTPDF_QUICKJS_DLL 接受显式共享库路径;为源码兼容保留既有 API 名称
默认发现逻辑检查可执行文件旁的 libhpdfquickjs.so,以及可执行文件祖先目录中的 Lib/thirdparty/QuickJS/bin/Linux64
每个会话持有其确切已加载模块的引用,直到原生引擎、上下文与 Callback 全部释放;各会话保留独立的脚本状态与日志
原生单调时钟执行既有的事件、XML 与布局预算;确定性的 epoch 值、随机响应与外部传输响应仍按事务语义记录并回放
Linux locale
原生 Linux locale 后端读取系统 ICU 日历名称、小数与分组符号、货币符号与代码、AM/PM 标记以及数字/日期/时间模式
具名 locale 使用完整解析的 BCP47 标识符与已知 ICU 语言数据;下划线分隔符会被规范化,不支持的语言或畸形标识符返回 False
空名称选择 ICU 配置的默认 locale;文档 localeSet 定义与显式应用 locale provider 保持既有优先级
libicuuc 与 libicui18n 都需要;加载器解析匹配的 ICU 导出版本,包括没有开发符号链接的带版本运行时库
ICU 与 Windows 可能基于各自安装的 locale 数据提供不同的区域模式与空白处理;显式文档 locale 定义可以选择确定性的应用格式化
持久化与 PDF 消费方
SaveToBytes 持久化原生 XDP,包括 Data DOM 导入、按实例值、命名空间映射、注释与处理指令,两个平台上回滚行为一致
Linux saved-XDP 消费夹具重新加载 TXFAWidgetRuntime,并通过 THPDFHeadlessDocument 字段 setter 与原生外观生成应用其真实值
该消费方使用独立准备的 PDF 字段模板;Linux 上自动 XFA 到 PDF 字段创建与完整交互渲染仍是独立集成工作