Runtime XFA portátil
O modelo nativo de dados, layout e eventos do TXFAWidgetRuntime executa com Delphi ou FPC no Windows e com FPC no Linux x86-64
A execução core no Linux não exige LCL, sessão de desktop nem camada de compatibilidade com Windows; o build FPC do Windows retém sua inicialização UTF-8 existente da RTL do Lazarus
Ponte nativa de JavaScript
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
A ponte do Linux compila a partir das fontes QuickJS embarcadas com compilação compatível com GCC e usa a mesma ABI HPDFQJS versionada da DLL do Windows
QuickJSDLLPath e HOTPDF_QUICKJS_DLL aceitam um caminho explícito de shared library no Linux; os nomes existentes da API são preservados por compatibilidade de código-fonte
A descoberta default checa libhpdfquickjs.so ao lado do executável e Lib/thirdparty/QuickJS/bin/Linux64 nos diretórios ancestrais do executável
Cada sessão é dona de uma referência ao seu módulo exato carregado até que seu engine nativo, contextos e callbacks sejam liberados; sessões retêm estado de script e journals independentes
Clocks monotônicos nativos aplicam os orçamentos existentes de eventos, XML e layout; valores determinísticos de epoch, respostas aleatórias e respostas de transporte externo permanecem registrados e reproduzidos transacionalmente
Locales do Linux
O backend nativo de locales do Linux lê nomes de calendários ICU do sistema, símbolos decimais e de agrupamento, símbolos e códigos de moeda, marcadores AM/PM e patterns de número/data/hora
Locales nomeados usam identificadores BCP47 totalmente parseados e dados de linguagem ICU conhecidos; separadores underscore são canonizados, e linguagens não suportadas ou identificadores malformados retornam False
Um nome vazio seleciona o locale default configurado do ICU; definições de localeSet de documentos e providers explícitos de locales da aplicação retêm sua prioridade existente
Tanto libicuuc quanto libicui18n são exigidos; o loader resolve versões de exports ICU correspondentes, incluindo bibliotecas de runtime versionadas sem symlinks de desenvolvimento
ICU e Windows podem fornecer patterns regionais e whitespace diferentes com base nos dados de locale instalados; definições explícitas de locale de documentos podem selecionar formatação determinística da aplicação
Persistência e consumers de PDF
SaveToBytes persiste o XDP nativo, incluindo imports de Data DOM, valores por instância, mapeamentos de namespaces, comentários e processing instructions, com o mesmo comportamento de rollback nas duas plataformas
Um fixture de consumer de XDP salvo no Linux recarrega o TXFAWidgetRuntime e aplica seus valores reais através dos setters de campos do THPDFHeadlessDocument e da geração nativa de aparências
Esse consumer usa um template de campos PDF preparado independentemente; criação automática de campos XFA-para-PDF no Linux e rendering interativo completo permanecem trabalho de integração separado