THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Registrerer en navngitt JavaScript-funksjon på dokumentnivå i Catalog-navnetreet /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). AcroForm-widget-handlinger, handlinger ved dokumentåpning og andre JavaScript-kropper kan kalle den registrerte funksjonen ved navn gjennom viserens JavaScript-motor (Adobe Acrobat, Foxit og andre kompatible visere)

 

Delphi syntax:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parameters

Name er den unike nøkkelen som JS-kilden lagres under i navnetreet. Den skiller mellom store og små bokstaver i henhold til PDF 1.7 §7.9.6. Tom Name utløser et unntak

Body er den rå JavaScript-kilden. HotPDF parser eller validerer ikke JS – kalleren er ansvarlig for syntaktisk korrekthet. Typiske kallere sender inn en komplett funksjonsdeklarasjon (function GreetUser() { app.alert("hello"); }). Tom Body utløser et unntak

 

Beskrivelse

Hvert kall legger til et par (nøkkel, indirekte ordbok) i navnetreet /Names /JavaScript i katalogen ved EndDoc. Hver registrerte Body blir sin egen indirekte ordbok << /S /JavaScript /JS (body) >>, klar til å refereres til ved navn fra en hvilken som helst annen handling eller JS-kontekst. Nyttig for å dele et bibliotek av hjelpefunksjoner for validering, formatering eller beregning mellom mange widgeter, uten å duplisere kildekoden i hver /A-handling.

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

 

Compliance gates

Utløser et unntak ved enhver ikke-tom PDFACompliance-innstilling (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 forbyr alle JavaScript-handlinger på tvers av PDF/A-nivåer). Utløser et unntak ved enhver ikke-tom PDFXCompliance-innstilling (prepress-arbeidsflyter etter ISO 15930 avviser interaktiv skripting). Hever dokumentets Version automatisk til PDF 1.3 ved behov; avviser under StrictVersionLock hvis den valgte versjonen er eldre enn PDF 1.3.

 

Example

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