THotPDF.RegisterDocumentJavaScript

THotPDF

 

AcroForm Support

Реєструє іменовану JavaScript-функцію рівня документа в дереві імен Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Дії віджетів AcroForm, дії при відкритті документа та інші JavaScript-тіла можуть викликати зареєстровану функцію за ім’ям через JavaScript-рушій переглядача (Adobe Acrobat, Foxit та інші сумісні переглядачі).

 

Delphi syntax:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parameters

Name — унікальний ключ, під яким JS-джерело зберігається в дереві імен. Регістр значущий згідно з PDF 1.7 §7.9.6. Порожнє Name викликає виняток

Body — сирий JavaScript-код. HotPDF не розбирає й не перевіряє JS – за синтаксичну коректність відповідає викликач. Типовий викликач передає повне оголошення функції (function GreetUser() { app.alert("hello"); }). Порожній Body викликає виняток

 

Опис

Кожен виклик додає пару (ключ, непрямий словник) до дерева імен Catalog /Names /JavaScript під час EndDoc. Кожне зареєстроване тіло Body стає власним непрямим словником << /S /JavaScript /JS (body) >>, готовим до посилання за іменем з будь-якої іншої дії чи JS-контексту. Корисно, щоб ділити між багатьма віджетами бібліотеку допоміжних функцій валідації, форматування чи обчислень, не дублюючи вихідний код у кожній дії /A.

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

 

Compliance gates

Викидає виняток за будь-якого непорожнього значення PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 забороняють усі дії JavaScript на всіх рівнях PDF/A). Викидає виняток за будь-якого непорожнього значення PDFXCompliance (prepress-процеси ISO 15930 відхиляють інтерактивні скрипти). За потреби автоматично підвищує Version документа до PDF 1.3; відмовляє за StrictVersionLock, якщо обрана версія раніша за 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+ feature; HotPDF auto-bumps the document Version unless StrictVersionLock is set.

 

See also: AcroForm Support, THPDFActionScriptType