THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Registruoja dokumento lygio pavadintąją JavaScript funkciją Catalog /Names /JavaScript vardų medyje (ISO 32000-1 §7.7.4.4 + §12.6.4.16). AcroForm valdiklių veiksmai, dokumento atvėrimo veiksmai ir kiti JavaScript kūnai registruotąją funkciją gali šaukti vardu per žiūryklės JavaScript variklį (Adobe Acrobat, Foxit ir kitos suderinamos žiūryklės).

 

Delphi sintaksė:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parametrai

Name yra unikalioji rakto reikšmė, kuria JS šaltinis įrašomas vardų medyje. Skiria didžiąsias ir mažąsias raides pagal PDF 1.7 §7.9.6. Tuščias Name iškelia išimtį.

Body yra žaliasis JavaScript šaltinis. HotPDF JS neišanalizuoja ir nevaliduoja – už sintaksės teisingumą atsako kvietėjas. Įprasta kvietėjams paduoti pilnąją funkcijos deklaraciją (function GreetUser() { app.alert("hello"); }). Tuščias Body iškelia išimtį.

 

Aprašymas

Kiekvienas kvietimas EndDoc metu prie Catalog /Names /JavaScript vardų medžio prideda (rakto, netiesioginio žodyno) porą. Kiekvienas registruotasis Body tampa savu netiesioginiu << /S /JavaScript /JS (body) >> žodynu, paruoštu būti šaukiamu vardu iš bet kokio kito veiksmo arba JS konteksto. Naudinga, kai validavimo, formatavimo arba skaičiavimo pagalbinių funkcijų biblioteką norima dalyti daugeliui valdiklių, nesureplikuojant šaltinio kiekviename /A veiksme.

Registravus tą patį Name anąkart iškeliama išimtis, tad kvietėjai netenka savo pirmosios apibrėžties.

 

Atitikties vartai

Iškelia išimtį esant bet kokiai netuščiai PDFACompliance nuostatai (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 draudžia visus JavaScript veiksmus visuose PDF/A lygiuose). Iškelia išimtį esant bet kokiai netuščiai PDFXCompliance nuostatai (ISO 15930 spaudos eigoms atmetamos interaktyviosios skriptų eigos). Reikalui esant automatiškai pakelia dokumento Version iki PDF 1.3; atsisako veikti su StrictVersionLock, jei pasirinktoji versija senesnė nei PDF 1.3.

 

Pavyzdys

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;

 

Prieinamumas

HotPDF v2.119.14. PDF 1.3+ galimybė; HotPDF dokumento Version pakelia automatiškai, nebent nustatytas StrictVersionLock.

 

Taip pat žr.: AcroForm Support, THPDFActionScriptType