Portable XFA runtime
Das native TXFAWidgetRuntime-Daten-, Layout- und Event-Modell läuft mit Delphi oder FPC auf Windows und mit FPC auf Linux x86-64
Die Linux-Core-Ausführung braucht kein LCL, keine Desktop-Session und keinen Windows-Kompatibilitätslayer; der Windows-FPC-Build behält seine bestehende Lazarus-UTF-8-RTL-Initialisierung
Native JavaScript-Bridge
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
Die Linux-Bridge baut aus den gebündelten QuickJS-Quellen mit GCC-kompatibler Kompilation und nutzt dieselbe versionierte HPDFQJS-ABI wie die Windows-DLL
QuickJSDLLPath und HOTPDF_QUICKJS_DLL akzeptieren auf Linux einen expliziten Shared-Library-Pfad; die bestehenden API-Namen bleiben für Quellkompatibilität erhalten
Die Default-Suche prüft libhpdfquickjs.so neben der ausführbaren Datei und Lib/thirdparty/QuickJS/bin/Linux64 in übergeordneten Verzeichnissen der ausführbaren Datei
Jede Session besitzt eine Referenz auf ihr exakt geladenes Modul, bis ihr nativer Engine, Kontexte und Callbacks freigegeben wurden; Sessions behalten unabhängigen Skriptzustand und Journale
Native monotone Uhren erzwingen die bestehenden Event-, XML- und Layout-Budgets; deterministische Epoch-Werte, Zufallsantworten und externe Transportantworten bleiben aufgezeichnet und werden transaktional wiedergegeben
Linux-Locales
Das native Linux-Locale-Backend liest System-ICU-Kalendernamen, Dezimal- und Gruppierungssymbole, Währungssymbole und -codes, AM/PM-Marker sowie Zahlen-, Datums- und Zeitmuster
Benannte Locales nutzen vollständig geparste BCP47-Identifikatoren und bekannte ICU-Sprachdaten; Unterstrich-Separatoren werden kanonisiert, und nicht unterstützte Sprachen oder missgebildete Identifikatoren liefern False
Ein leerer Name wählt ICU konfiguriertes Default-Locale; document localeSet-Definitionen und explizite Application-Locale-Provider behalten ihre bestehende Priorität
Sowohl libicuuc als auch libicui18n werden benötigt; der Loader löst passende ICU-Exportversionen auf, einschließlich versionierter Runtime-Libraries ohne Development-Symlinks
ICU und Windows können je nach installierten Locale-Daten unterschiedliche regionale Muster und Whitespace liefern; explizite Dokument-Locale-Definitionen können deterministische Application-Formatierung wählen
Persistenz und PDF-Consumer
SaveToBytes persistiert das native XDP, einschließlich Data-DOM-Importen, Instanzwerten, Namespace-Zuordnungen, Kommentaren und Processing Instructions, mit demselben Rollback-Verhalten auf beiden Plattformen
Eine Linux-Saved-XDP-Consumer-Fixture lädt TXFAWidgetRuntime neu und wendet ihre echten Werte über THPDFHeadlessDocument-Feldsetter und native Appearance-Generierung an
Dieser Consumer nutzt ein unabhängig aufbereitetes PDF-Feldtemplate; automatische Linux-XFA-zu-PDF-Felderzeugung und vollständiges interaktives Rendering bleiben separate Integrationsarbeit