Runtime XFA portabile
Il modello dati, layout ed eventi del TXFAWidgetRuntime nativo gira con Delphi o FPC su Windows e con FPC su Linux x86-64
L'esecuzione core su Linux non richiede LCL, una sessione desktop né un layer di compatibilità Windows; la build FPC Windows conserva la sua consueta inizializzazione RTL UTF-8 Lazarus
Bridge JavaScript nativo
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
Il bridge Linux si compila dalle sorgenti QuickJS incluse con compilazione compatibile GCC e usa la stessa HPDFQJS ABI versionata della DLL Windows
QuickJSDLLPath e HOTPDF_QUICKJS_DLL accettano un percorso esplicito di shared library su Linux; i nomi API esistenti sono preservati per compatibilità a livello sorgente
La scoperta predefinita controlla libhpdfquickjs.so accanto all'eseguibile e Lib/thirdparty/QuickJS/bin/Linux64 nelle directory antenate dell'eseguibile
Ogni sessione possiede un riferimento al suo esatto modulo caricato finché il suo engine nativo, i context e le callback non sono stati rilasciati; le sessioni conservano stato script e journal indipendenti
I clock monotonici nativi fanno rispettare i consueti budget di eventi, XML e layout; valori epoch deterministici, risposte casuali e risposte transport esterne restano registrate e riemesse transazionalmente
Locale di Linux
Il backend locale nativo di Linux legge nomi calendario ICU di sistema, simboli decimali e di raggruppamento, simboli e codici valuta, marcatori AM/PM e pattern di numero/data/ora
I locale nominali usano identificatori BCP47 pienamente analizzati e dati lingua ICU noti; i separatori underscore vengono canonizzati e lingue non supportate o identificatori malformati restituiscono False
Un nome vuoto seleziona il locale predefinito configurato di ICU; le definizioni localeSet del documento e i provider locale espliciti dell'applicazione conservano la loro priorità esistente
Sono richiesti sia libicuuc sia libicui18n; il loader risolve le versioni di export ICU corrispondenti, incluse runtime library versionate senza symlink di sviluppo
ICU e Windows possono fornire pattern regionali e whitespace diversi in base ai loro dati locale installati; definizioni locale esplicite del documento possono selezionare formattazione applicativa deterministica
Persistenza e consumer PDF
SaveToBytes persiste l'XDP nativo, inclusi import del Data DOM, valori per istanza, mappature di namespace, commenti e processing instruction, con lo stesso comportamento di rollback su entrambe le piattaforme
Una fixture consumer di XDP salvati su Linux ricarica TXFAWidgetRuntime e applica i suoi veri valori tramite i field setter di THPDFHeadlessDocument e la generazione nativa delle appearance
Quel consumer usa un template di campi PDF preparato indipendentemente; la creazione automatica di campi XFA-to-PDF su Linux e il rendering interattivo completo restano lavori di integrazione separati