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