Runtime XFA portable

El modelo nativo de datos, layout y eventos de TXFAWidgetRuntime se ejecuta con Delphi o FPC en Windows y con FPC en Linux x86-64

La ejecución del núcleo en Linux no requiere LCL, sesión de escritorio ni capa de compatibilidad con Windows; el build FPC de Windows conserva su inicialización RTL UTF-8 de Lazarus existente

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

El bridge de Linux se construye a partir de los sources de QuickJS incluidos con compilación compatible con GCC y usa la misma ABI HPDFQJS versionada que la DLL de Windows

QuickJSDLLPath y HOTPDF_QUICKJS_DLL aceptan una ruta explícita de librería compartida en Linux; los nombres de API existentes se conservan por compatibilidad de source

El descubrimiento por defecto comprueba libhpdfquickjs.so junto al ejecutable y Lib/thirdparty/QuickJS/bin/Linux64 en los directorios ancestro del ejecutable

Cada sesión posee una referencia a su módulo cargado exacto hasta que su engine nativo, contextos y callbacks hayan sido liberados; las sesiones conservan estado de script y journals independientes

Los relojes monótonos nativos hacen cumplir los presupuestos existentes de eventos, XML y layout; los valores de epoch deterministas, las respuestas aleatorias y las respuestas de transporte externo siguen grabadas y se reproducen transaccionalmente

Locales de Linux

El backend de locales de Linux nativo lee nombres de calendario ICU del sistema, símbolos decimales y de agrupación, símbolos y códigos de moneda, marcadores AM/PM y patrones de número/fecha/hora

Los locales con nombre usan identificadores BCP47 completamente parseados y datos de idioma ICU conocidos; los separadores de guion bajo se canonicalizan, y los idiomas no soportados o los identificadores mal formados devuelven False

Un nombre vacío selecciona el locale por defecto configurado de ICU; las definiciones localeSet del documento y los providers de locale explícitos de la aplicación conservan su prioridad existente

Se requieren tanto libicuuc como libicui18n; el loader resuelve versiones de export de ICU coincidentes, incluidas librerías runtime versionadas sin symlinks de desarrollo

ICU y Windows pueden aportar patrones regionales y espacios en blanco distintos según sus datos de locale instalados; las definiciones de locale explícitas del documento pueden seleccionar un formateo de aplicación determinista

Persistencia y consumidores PDF

SaveToBytes persiste el XDP nativo, incluidas las importaciones del Data DOM, los valores por instancia, los mapeos de namespace, los comentarios y las instrucciones de procesamiento, con el mismo comportamiento de rollback en ambas plataformas

Un fixture consumidor de XDP guardados de Linux recarga TXFAWidgetRuntime y aplica sus valores reales a través de los field setters de THPDFHeadlessDocument y la generación nativa de apariencias

Ese consumidor usa una plantilla de campos PDF preparada de forma independiente; la creación automática de campos XFA a PDF en Linux y el rendering interactivo completo siguen siendo trabajo de integración aparte