|
Mendaftarkan fungsi JavaScript bernama di tingkat dokumen dalam name tree Catalog /Names /JavaScript (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Aksi widget AcroForm, aksi buka dokumen, dan body JavaScript lain dapat memanggil fungsi yang terdaftar dengan nama melalui mesin JavaScript penampil (Adobe Acrobat, Foxit, dan penampil lain yang kompatibel)
Sintaks Delphi:
procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);
Parameter
Name adalah kunci unik tempat sumber JS disimpan dalam name tree. Peka huruf besar-kecil menurut PDF 1.7 §7.9.6. Name kosong menimbulkan kesalahan
Body adalah sumber JavaScript mentah. HotPDF tidak mem-parsing atau memvalidasi JS – pemanggil bertanggung jawab atas kebenaran sintaks. Pemanggil biasanya melewatkan deklarasi fungsi lengkap (function GreetUser() { app.alert("hello"); }). Body kosong menimbulkan kesalahan
Deskripsi
Setiap panggilan menambahkan pasangan (key, dict tidak-langsung) ke pohon nama /Names /JavaScript Katalog pada saat EndDoc. Setiap Body yang terdaftar menjadi dict tidak-langsung << /S /JavaScript /JS (body) >> miliknya sendiri, siap dirujuk per nama dari aksi atau konteks JS lainnya. Berguna untuk berbagi library helper validasi, pemformatan, atau kalkulasi ke banyak widget tanpa menduplikasi sumbernya di setiap aksi /A.
Mendaftarkan Name yang sama dua kali menimbulkan kesalahan agar pemanggil tidak diam-diam kehilangan definisi pertama
Pemeriksaan kepatuhan
Menimbulkan kesalahan di bawah setelan PDFACompliance apa pun yang tidak kosong (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 melarang semua aksi JavaScript di seluruh level PDF/A). Menimbulkan kesalahan di bawah setelan PDFXCompliance apa pun yang tidak kosong (alur kerja prepress ISO 15930 menolak skrip interaktif). Secara otomatis menaikkan Version dokumen ke PDF 1.3 bila perlu; menolak di bawah StrictVersionLock jika versi yang dipilih lebih lama dari PDF 1.3
Contoh
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;
Ketersediaan
HotPDF v2.119.14. Fitur PDF 1.3+; HotPDF menaikkan Version dokumen secara otomatis kecuali StrictVersionLock disetel
Lihat juga: Dukungan AcroForm, THPDFActionScriptType
|