THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Rejestruje na poziomie dokumentu nazwaną funkcję JavaScript w drzewie nazw Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Akcje widgetów AcroForm, akcje otwarcia dokumentu i inne treści JavaScript mogą wywołać zarejestrowaną funkcję po nazwie przez silnik JavaScript przeglądarki (viewer’a), np. Adobe Acrobat, Foxit i inne zgodne przeglądarki PDF

 

Delphi syntax:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parametry

Name to unikalny klucz, pod którym kod źródłowy JS jest przechowywany w drzewie nazw. Sensowny na wielkość liter według PDF 1.7 §7.9.6. Puste Name podnosi wyjątek.

Body to surowy kod źródłowy JavaScript. HotPDF nie parsuje ani nie waliduje JS – za poprawność składniową odpowiada wywołujący. Typowo przekazuje się kompletną deklarację funkcji (function GreetUser() { app.alert("hello"); }). Pusty Body zgłasza wyjątek

 

Opis

Każde wywołanie dodaje parę (klucz, pośredni słownik) do drzewa nazw Catalog /Names /JavaScript w momencie EndDoc. Każdy zarejestrowany Body staje się własnym pośrednim słownikiem << /S /JavaScript /JS (body) >>, gotowym do odwołania po nazwie z dowolnej innej akcji lub kontekstu JS. Przydatne do współdzielenia biblioteki helperów walidacji, formatowania lub obliczeń między wieloma widgetami bez duplikowania kodu w każdej akcji /A

Registering the same Name twice raises so callers do not silently lose their first definition.

 

Compliance gates

Zgłasza wyjątek przy dowolnym niepustym ustawieniu PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 zabraniają wszelkich akcji JavaScript na wszystkich poziomach PDF/A). Zgłasza wyjątek przy dowolnym niepustym ustawieniu PDFXCompliance (przepływy prepress ISO 15930 odrzucają interaktywne skrypty). W razie potrzeby automatycznie podnosi Version dokumentu do PDF 1.3; odmawia przy StrictVersionLock, jeśli wybrana wersja jest starsza niż PDF 1.3

 

Przykład

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+ feature; HotPDF auto-bumps the document Version unless StrictVersionLock is set.

 

Zobacz też: AcroForm Support, THPDFActionScriptType