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
| Egenskap | Beteende |
|---|---|
name, version, appType, platform, variation, language | Skrivskyddad programmetadata som tillhandahålls av det integrerande programmet |
numPages | Skrivskyddat faktiskt sidantal i layouten, inklusive positionerat innehåll utanför fältwidgetar |
currentPage | Aktuell nollbaserade sida, kontrollerad mot numPages; när ett fält får fokus väljs dess sida |
title | Unicode-runtimetitel, begränsad av MaxValueChars och publicerad med transaktionen |
calculationsEnabled | Styr automatiska beräkningsskript; standard är true |
validationsEnabled | Styr 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
| Metod | Beteende |
|---|---|
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