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