|
Rekisteröi dokumenttitason nimetyn JavaScript-funktion Catalog-sanakirjan /Names /JavaScript -nimipuuhun (ISO 32000-1 §7.7.4.4 + §12.6.4.16). AcroForm-elementtien toiminnot, dokumentin avaustoiminnot ja muut JavaScript-koodit voivat kutsua rekisteröityä funktiota nimellä katseluohjelman JavaScript-moottorin kautta (Adobe Acrobat, Foxit ja muut yhteensopivat katseluohjelmat)
Delphi syntax:
procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);
Parameters
Name on yksilöllinen avain, jolla JS-lähdekoodi tallennetaan nimipuuhun. Kirjainkoko on merkitsevä PDF 1.7 §7.9.6 -kohdan mukaisesti. Tyhjä Name aiheuttaa virheen
Body on raaka JavaScript-lähdekoodi. HotPDF ei jäsennä tai validoi JS-koodia – kutsuja on vastuussa syntaktisesta oikeellisuudesta. Tyypilliset kutsujat välittävät täydellisen funktion esittelyn (function GreetUser() { app.alert("hello"); }). Tyhjä Body aiheuttaa virheen
Kuvaus
Kukin kutsu lisää (avain, epäsuora sanakirja) -parin Catalog-sanakirjan /Names /JavaScript -nimipuuhun vaiheessa EndDoc. Jokaisesta rekisteröidystä lohkosta (Body) tulee oma epäsuora << /S /JavaScript /JS (body) >> -sanakirjansa, joka on valmis viitattavaksi nimellä mistä tahansa muusta toiminnosta tai JS-kontekstista. Hyödyllinen validointi-, muotoilu- tai laskenta-apurien kirjaston jakamiseen useiden elementtien kesken ilman lähdekoodin monistamista kussakin /A-toiminnossa
Saman nimen (Name) rekisteröinti kahdesti aiheuttaa poikkeuksen, jotta kutsujat eivät menetä hiljaisesti ensimmäistä määritelmäänsä
Compliance gates
Aiheuttaa poikkeuksen millä tahansa ei-tyhjällä PDFACompliance-asetuksella (standardit ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 kieltävät kaikki JavaScript-toiminnot kaikilla PDF/A-tasoilla). Aiheuttaa poikkeuksen millä tahansa ei-tyhjällä PDFXCompliance-asetuksella (standardin ISO 15930 painovalmistelun työnkulut hylkäävät vuorovaikutteisen skriptauksen). Korottaa dokumentin version (Version) automaattisesti versioon PDF 1.3 tarvittaessa; kieltäytyy asetuksen StrictVersionLock alaisuudessa, jos valittu versio on vanhempi kuin 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+ -ominaisuus; HotPDF nostaa automaattisesti dokumentin Version-versiota, ellei StrictVersionLock-asetus ole käytössä
See also: AcroForm Support, THPDFActionScriptType
|