THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm-ondersteuning

Registreert een benoemde JavaScript-functie op documentniveau in de Catalog /Names /JavaScript-naamstructuur (ISO 32000-1 §7.7.4.4 + §12.6.4.16). AcroForm-widgetacties, document-openacties en andere JavaScript-blokken kunnen de geregistreerde functie op naam aanroepen via de JavaScript-engine van de viewer (Adobe Acrobat, Foxit en andere compatibele viewers)

 

Delphi-syntaxis:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parameters

Name is de unieke sleutel waaronder de JS-bron in de naamstructuur wordt opgeslagen. Hoofdlettergevoelig volgens PDF 1.7 §7.9.6. Een lege Name veroorzaakt een fout

Body is de ruwe JavaScript-bron. HotPDF parseert of valideert de JS niet – de aanroeper is verantwoordelijk voor de syntactische juistheid. Typische aanroepers geven een volledige functiedefinitie door (function GreetUser() { app.alert("hello"); }). Een lege Body veroorzaakt een fout

 

Beschrijving

Elke aanroep voegt een (sleutel, indirecte dict)-paar toe aan de Catalog /Names /JavaScript-naamstructuur op het moment van EndDoc. Elke geregistreerde Body wordt een eigen indirecte << /S /JavaScript /JS (body) >>-dict, klaar om op naam te worden verwezen vanuit elke andere actie of JS-context. Handig om een bibliotheek met validatie-, opmaak- of rekenhulpen te delen over veel widgets zonder de bron in elke /A-actie te dupliceren

Als u dezelfde Name twee keer registreert, wordt een fout opgegooid zodat aanroepers hun eerste definitie niet ongemerkt verliezen

 

Compliancecontroles

Geeft een fout bij elke niet-lege PDFACompliance-instelling (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 verbieden alle JavaScript-acties in alle PDF/A-niveaus). Geeft een fout bij elke niet-lege PDFXCompliance-instelling (ISO 15930-prepress-workflows wijzen interactieve scripts af). Verhoogt indien nodig automatisch de documentversie Version naar PDF 1.3 en weigert onder StrictVersionLock als de gekozen versie ouder is dan PDF 1.3

 

Voorbeeld

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;

 

Beschikbaarheid

HotPDF v2.119.14. PDF 1.3+-functie; HotPDF verhoogt de documentversie automatisch, tenzij StrictVersionLock is ingesteld

 

Zie ook: AcroForm-ondersteuning, THPDFActionScriptType