THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Registrira imenovanu JavaScript funkciju na razini dokumenta u name treeju Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Akcije AcroForm widgeta, akcije pri otvaranju dokumenta i druga JavaScript tijela mogu pozvati registriranu funkciju po imenu preko JavaScript engine’a preglednika (Adobe Acrobat, Foxit i drugi kompatibilni preglednici).

 

Delphi syntax:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parameters

Name je jedinstveni ključ pod kojim se JS izvor pohranjuje u stablo naziva. Razlikuje velika i mala slova prema PDF 1.7 §7.9.6. Prazan Name izaziva iznimku.

Body je sirovi JavaScript izvorni kod. HotPDF ne parsira niti validira JS – za sintaktičku ispravnost odgovoran je pozivatelj. Tipični pozivatelji prosljeđuju potpunu deklaraciju funkcije (function GreetUser() { app.alert("hello"); }). Prazan Body podiže izuzetak.

 

Description

Svaki poziv dodaje par (ključ, neizravni rječnik) u stablo naziva Catalog /Names /JavaScript u trenutku EndDoc. Svako registrirano Body postaje vlastiti neizravni rječnik << /S /JavaScript /JS (body) >>, spreman na referenciranje po nazivu iz bilo koje druge akcije ili JS konteksta. Korisno za dijeljenje biblioteke pomoćnika za provjeru, formatiranje ili izračun preko mnogih widgeta bez dupliciranja izvora u svakoj akciji /A.

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

 

Compliance gates

Podiže izuzetak uz bilo koju nepraznu postavku PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 zabranjuju sve JavaScript akcije na svim razinama PDF/A). Podiže izuzetak i uz bilo koju nepraznu postavku PDFXCompliance (ISO 15930 prepress tijekovi rada odbijaju interaktivno skriptiranje). Po potrebi automatski podiže Version dokumenta na PDF 1.3; odbija rad uz StrictVersionLock ako je odabrana verzija starija od 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