Runtime XFA portable
Le modèle de données, layout et événements natif de TXFAWidgetRuntime s'exécute avec Delphi ou FPC sur Windows et avec FPC sur Linux x86-64
L'exécution du noyau Linux n'exige ni LCL, ni session de bureau, ni couche de compatibilité Windows ; le build FPC Windows conserve son initialisation RTL Lazarus UTF-8 existante
Pont JavaScript natif
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
Le pont Linux se construit à partir des sources QuickJS livrées avec une compilation compatible GCC et utilise la même ABI HPDFQJS versionnée que la DLL Windows
QuickJSDLLPath et HOTPDF_QUICKJS_DLL acceptent un chemin de bibliothèque partagée explicite sous Linux ; les noms d'API existants sont préservés pour la compatibilité source
La découverte par défaut vérifie libhpdfquickjs.so à côté de l'exécutable et Lib/thirdparty/QuickJS/bin/Linux64 dans les répertoires ancêtres de l'exécutable
Chaque session détient une référence vers son module chargé exact jusqu'à ce que son moteur natif, ses contextes et callbacks soient libérés ; les sessions conservent un état de script et des journaux indépendants
Des horloges monotones natives appliquent les budgets existants d'événements, XML et layout ; les valeurs d'epoch déterministes, réponses aléatoires et réponses de transport externes restent enregistrées et rejouées transactionnellement
Locales Linux
Le backend de locale Linux natif lit les noms de calendriers ICU système, symboles décimaux et de groupement, symboles et codes de devises, marqueurs AM/PM, et motifs de nombres/dates/heures
Les locales nommées utilisent des identifiants BCP47 pleinement parsés et des données de langue ICU connues ; les séparateurs underscore sont canonisés, et les langues non prises en charge ou identifiants malformés retournent False
Un nom vide sélectionne la locale par défaut configurée d'ICU ; les définitions localeSet du document et les providers de locale applicatifs explicites conservent leur priorité existante
libicuuc et libicui18n sont tous deux requis ; le loader résout les versions d'exports ICU correspondantes, y compris les bibliothèques runtime versionnées sans symlinks de développement
ICU et Windows peuvent fournir des motifs régionaux et des espaces différents selon leurs données de locale installées ; des définitions de locale explicites du document peuvent sélectionner un formatage applicatif déterministe
Persistance et consommateurs PDF
SaveToBytes persiste le XDP natif, y compris les imports du Data DOM, les valeurs par instance, les mappages de namespaces, les commentaires et instructions de traitement, avec le même comportement de rollback sur les deux plateformes
Une fixture consommatrice de XDP sauvegardé Linux recharge TXFAWidgetRuntime et applique ses valeurs réelles via les setters de champs de THPDFHeadlessDocument et la génération d'apparences natives
Ce consommateur utilise un template de champs PDF préparé indépendamment ; la création automatique de champs XFA-vers-PDF sous Linux et le rendering interactif complet restent des travaux d'intégration séparés