THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Registrira poimenovano funkcijo JavaScript na ravni dokumenta v drevesu imen Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Dejanja widgetov AcroForm, dejanja ob odprtju dokumenta in druga telesa JavaScript lahko registrirano funkcijo po imenu pokličejo prek pogona ‘JavaScript’ bralnika (Adobe Acrobat, Foxit in drugi združljivi bralniki).

 

Delphi syntax:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parameters

Name je edinstven ključ, pod katerim je izvor JS shranjen v drevesu imen. Občutljivo na velikost črk po PDF 1.7 §7.9.6. Prazno Name sproži izjemo

Body je surova izvorna koda JavaScript. HotPDF JS-ja ne razčlenjuje in ne preverja – za skladenjsko pravilnost odgovarja klicatelj. Običajni klicatelji podajo celotno deklaracijo funkcije (function GreetUser() { app.alert("hello"); }). Prazen Body sproži izjemo.

 

Description

Vsak klic doda par (ključ, posredni slovar) v drevo imen Catalog /Names /JavaScript ob EndDoc. Vsak registriran Body postane lasten posredni slovar << /S /JavaScript /JS (body) >>, pripravljen za sklicevanje po imenu iz katerega koli drugega dejanja ali konteksta JS. Uporabno za deljenje knjižnice pomočnikov za validacijo, oblikovanje ali izračune med številnimi widgeti, ne da bi bilo treba izvorno kodo podvajati v vsakem dejanju /A.

Registering the same Name twice raises so callers do not silently lose their first definition.

 

Compliance gates

Sproži izjemo pri vsaki neprazni nastavitvi PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 prepovedujejo vsa dejanja JavaScript na vseh ravneh PDF/A). Sproži izjemo pri vsaki neprazni nastavitvi PDFXCompliance (delovni tokovi predtiska po ISO 15930 interaktivnih skript ne dopuščajo). Po potrebi samodejno dvigne Version dokumenta na PDF 1.3; pri StrictVersionLock zavrne, če je izbrana različica starejša od PDF 1.3.

 

Primer

PDF := THotPDF.Create(nil);
PDF.FileName := 'form.pdf';
PDF.BeginDoc;
PDF.RegisterDocumentJavaScript('GreetUser',
  'function GreetUser() { app.alert("Hello"); }');
PDF.RegisterDocumentJavaScript('ValidateNumber',
  'function ValidateNumber(v) { if (isNaN(v)) app.alert("Not a number"); }');
// ... AcroForm widget /A action can then call: ValidateNumber(this.value);
PDF.EndDoc;

 

Availability

HotPDF v2.119.14. PDF 1.3+ feature; HotPDF auto-bumps the document Version unless StrictVersionLock is set.

 

See also: AcroForm Support, THPDFActionScriptType