ポータブル 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 を確認します

各セッションは、ネイティブエンジン、コンテキスト、コールバックが解放されるまで、読み込まれたモジュールへの参照を所有します。セッションは独立したスクリプト状態とジャーナルを保持します

ネイティブのモノトニッククロックが、既存のイベント・XML・レイアウト予算を強制します。決定論的なエポック値、乱数応答、外部トランスポート応答は、記録されたままトランザクション的に再生されます

Linux ロケール

ネイティブ Linux ロケールバックエンドは、システムの ICU カレンダー名、小数点と桁区切り記号、通貨記号とコード、AM/PM マーカー、数値/日付/時刻パターンを読みます

名前付きロケールは、完全に解析された BCP47 識別子と既知の ICU 言語データを使います。アンダースコア区切りは正規化され、未対応言語や不正な識別子は False を返します

空の名前は、ICU の設定済みデフォルトロケールを選びます。ドキュメントの localeSet 定義と明示的なアプリケーションロケールプロバイダーは、既存の優先度を保ちます

libicuuc と libicui18n の両方が必要です。ローダーは、開発用シンボリックリンクのないバージョン付きランタイムライブラリーを含め、一致する ICU エクスポートバージョンを解決します

ICU と Windows は、インストールされているロケールデータに応じて異なる地域パターンや空白を提供することがあります。決定論的なアプリケーション書式が必要なら、明示的なドキュメントロケール定義を選べます

永続化と PDF コンシューマー

SaveToBytes は、Data DOM インポート、インスタンスごとの値、名前空間マッピング、コメント、処理命令を含むネイティブ XDP を永続化します。両プラットフォームで同じロールバック動作です

Linux の保存済み XDP コンシューマーフィクスチャは、TXFAWidgetRuntime を再読み込みし、THPDFHeadlessDocument のフィールドセッターとネイティブ外観生成を通じて実際の値を適用します

このコンシューマーは独立に準備された PDF フィールドテンプレートを使います。Linux での自動 XFA → PDF フィールド生成と完全なインタラクティブレンダリングは、引き続き別の統合作業です