XFA Host Model

Aktivera TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript för att använda den tillståndsbaserade modellen xfa.host via den medföljande QuickJS-motorn

Konfigurera programmetadata via TXFAWidgetRuntimeOptions.HostModel innan runtimen skapas och läs aktuellt tillstånd via TXFAWidgetRuntime.HostModel

Egenskaper

EgenskapBeteende
name, version, appType, platform, variation, languageSkrivskyddad programmetadata som tillhandahålls av det integrerande programmet
numPagesSkrivskyddat faktiskt sidantal i layouten, inklusive positionerat innehåll utanför fältwidgetar
currentPageAktuell nollbaserade sida, kontrollerad mot numPages; när ett fält får fokus väljs dess sida
titleUnicode-runtimetitel, begränsad av MaxValueChars och publicerad med transaktionen
calculationsEnabledStyr automatiska beräkningsskript; standard är true
validationsEnabledStyr valideringsskript för redigerade värden; standard är true

Programversionen identifierar det integrerande programmet; biblioteket ersätter den inte med sitt utgåvenummer

Värdtillståndet tillhör runtimen; ändringar av titel och sida ändrar inte den ursprungliga PDF-objektgrafen och kodas inte in i sparad XDP-data

Navigering, fokus och dataåterställning

MetodBeteende
pageUp(), pageDown()Flyttar inom sidgränserna och stannar på första eller sista sidan
getFocus()Returnerar den levande fokuserade fältförekomsten eller null när fokus saknas, tagits bort eller dolts
setFocus(fieldOrSOM)Begär fokus på en synlig levande fältförekomst; null eller tom text rensar fokus
resetData(paths="")Återställer mallstandardvärden för fält som väljs av en kommaseparerad SOM-lista, eller alla fält när paths är tom; antal upprepade instanser och orelaterade förekomster bevaras

Återställda fält lämnar redigeringsläget och återfår giltigt interaktionstillstånd, vilket hindrar en föråldrad redigeringsbuffert från att skriva över det återställda värdet

Reset och Data DOM loadXML kan köras i samma händelse; deras ändringar delar händelsetransaktionen, och ett misslyckat skript eller en förbrukad budget återställer datavärden, redigeringsbuffertar, värdtillstånd och skriptobjektens lexikala tillstånd före ett omförsök

Fältidentiteter följer sin dataförekomst när en instanshanterare ordnar om upprepade subforms, och snapshot-återställning bevarar de logiska identiteterna

Fokuslivscykel och transaktioner

Fokusbyten i runtimen committar och validerar en pågående källredigering, kör källans exit-skript, väljer det nya fältet och kör målets enter-skript innan beräkning och layout har stabilitserats

Fokusbegäranden från enter- eller exit-skript kan omdirigera målet; varje fokusdränering tillåter 64 övergångar och delar skriptoperationens budgetar och tidsfristen

Skript ser aktiviteten via xfa.event.name; beräkningar och validering får sina motsvarande kontextnamn

Publika anrop av FocusWidget och enter/exit DispatchEvent använder samma transaktionslivscykel; ClearFocus avbryter sin aktuella redigeringsbuffert före exit-livscykeln och bevarar sitt tidigare avbrottsbeteende

OnFocusChanged publicerar ordnade callbacks efter commit; mellanliggande omdirigeringar stannar inuti transaktionen, och misslyckade skript, valideringar eller budgetar återställer värdtillstånd, fokus, redigeringsbuffertar, dokumentvärden och skriptets lexikala tillstånd tillsammans

Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostModel.Name := 'Application';
Options.HostModel.Version := '1.0';
Options.HostModel.Language := 'en-US';
Runtime := TXFAWidgetRuntime.Create(XDPBytes, 595, 842, Options);
xfa.host.title = "Order form";
xfa.host.setFocus("rows[1].quantity");
xfa.host.resetData("rows[1].quantity,rows[1].price");
xfa.host.calculationsEnabled = false;

Programeffekter och återstående täckning

Dialoger, utskrift, extern navigering, import/export och HTTP-effekter använder explicit programtransport för värdmodellen och inspelade svar; tillståndsmodellen själv startar ingen UI- eller nätverksoperation

Ytterligare värd-dialog-API:er, alla Acrobat-värdegenskaper, dynamiska synkrona reflow-förfrågningar och kompletta SOM-operatorer återstår som separata integrationsmål

Relaterade API:er: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript och Interaktiv XFA Widget Runtime