Belge düzeyinde adlandırılmış bir JavaScript işlevini Catalog /Names /JavaScript ad ağacına kaydeder (ISO 32000-1 §7.7.4.4 + §12.6.4.16). AcroForm widget eylemleri, belge açılış eylemleri ve diğer JavaScript gövdeleri, kayıtlı işlevi okuyucunun JavaScript motoru üzerinden adıyla çağırabilir (Adobe Acrobat, Foxit ve diğer uyumlu okuyucular). Delphi sözdizimi: procedure RegisterDocumentJavaScript(const Name, Body: AnsiString); Parametreler Name, JS kaynağının ad ağacında saklandığı benzersiz anahtardır. PDF 1.7 §7.9.6 uyarınca büyük/küçük harfe duyarlıdır. Boş Name hata fırlatır.
Body, ham JavaScript kaynağıdır. HotPDF JS'yi ayrıştırmaz veya doğrulamaz — söz dizimi doğruluğundan çağıran sorumludur. Tipik çağıranlar eksiksiz bir işlev bildirimi geçirir (function GreetUser() { app.alert("hello"); }). Boş Body hata fırlatır.
Açıklama Her çağrı, EndDoc zamanında Catalog /Names /JavaScript ad ağacına bir (anahtar, dolaylı sözlük) çifti ekler. Kayıtlı her Body, kendi << /S /JavaScript /JS (body) >> dolaylı sözlüğüne dönüşür ve diğer herhangi bir eylem veya JS bağlamından adıyla referanslanmaya hazır hale gelir. Doğrulama, biçimlendirme veya hesaplama yardımcılarından oluşan bir kütüphaneyi, kaynağı her /A eyleminde çoğaltmadan çok sayıda widget arasında paylaşmak için kullanışlıdır. Aynı Name'i iki kez kaydetmek hata fırlatır; böylece çağıranlar ilk tanımlarını sessizce kaybetmez. Uyumluluk kapıları Boş olmayan herhangi bir PDFACompliance ayarında hata fırlatır (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1, tüm PDF/A düzeylerinde JavaScript eylemlerini yasaklar). Boş olmayan herhangi bir PDFXCompliance ayarında hata fırlatır (ISO 15930 baskı öncesi iş akışları etkileşimli betikleri reddeder). Gerektiğinde belge Version'unu otomatik olarak PDF 1.3'e yükseltir; seçilen sürüm PDF 1.3'ten eskiyse StrictVersionLock altında reddeder. Örnek 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; Kullanılabilirlik HotPDF v2.119.14. PDF 1.3+ özelliği; StrictVersionLock ayarlı değilken HotPDF belge Version'unu otomatik yükseltir. Ayrıca bkz.: AcroForm desteği, THPDFActionScriptType |