|
Înregistrează o funcție JavaScript denumită la nivel de document în arborele de nume Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Acțiunile widgeturilor AcroForm, acțiunile de deschidere a documentului și alte corpuri JavaScript pot apela funcția înregistrată după nume prin motorul JavaScript al vizualizatorului (Adobe Acrobat, Foxit și alte vizualizatoare compatibile)
Sintaxă Delphi:
procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);
Parametri
Name este cheia unică sub care sursa JS este stocată în arborele de nume. Sensibil la majuscule și minuscule conform PDF 1.7 §7.9.6. Un Name gol generează o eroare
Body este sursa JavaScript brută. HotPDF nu parsează și nu validează JS – apelantul este responsabil pentru corectitudinea sintactică. Apelurile tipice transmit o declarație completă de funcție (function GreetUser() { app.alert("hello"); }). Un Body gol generează o eroare
Descriere
Fiecare apel adaugă o pereche (cheie, dicționar indirect) în arborele de nume Catalog /Names /JavaScript la momentul EndDoc. Fiecare Body înregistrat devine propriul său dicționar indirect << /S /JavaScript /JS (body) >>, gata să fie referențiat după nume din orice altă acțiune sau context JS. Este util pentru partajarea unei biblioteci de ajutoare de validare, formatare sau calcul între multe widgeturi fără a duplica sursa în fiecare acțiune
Înregistrarea aceluiași Name de două ori generează o eroare, astfel încât apelanții să nu-și piardă în tăcere prima definiție
Constrângeri de conformitate
Generează o eroare la orice setare nevidă PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 interzic toate acțiunile JavaScript la nivelurile PDF/A). Generează o eroare la orice setare nevidă PDFXCompliance (fluxurile de prepress ISO 15930 resping scriptingul interactiv). Crește automat Version-ul documentului la PDF 1.3 când este nevoie; refuză sub StrictVersionLock dacă versiunea aleasă este anterioară PDF 1.3
Exemplu
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;
Disponibilitate
HotPDF v2.119.14. Funcție PDF 1.3+; HotPDF crește automat Version-ul documentului dacă
Vezi și: Suport AcroForm, THPDFActionScriptType
|