|
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
|