THotPDF.RegisterDocumentJavaScript

THotPDF

 

Prise en charge AcroForm

Enregistre une fonction JavaScript nommée au niveau du document dans le name tree /Names /JavaScript du Catalog (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Les actions de widgets AcroForm, les actions d’ouverture de document et les autres corps JavaScript peuvent appeler la fonction enregistrée par son nom via le moteur JavaScript du lecteur (Adobe Acrobat, Foxit et autres lecteurs compatibles)

 

Syntaxe Delphi :

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Paramètres

Name est la clé unique sous laquelle la source JS est stockée dans le name tree. Elle respecte la casse selon PDF 1.7 §7.9.6. Un Name vide déclenche une exception

Body est la source JavaScript brute. HotPDF n’analyse pas et ne valide pas le JS – l’appelant est responsable de la correction syntaxique. Les appelants transmettent généralement une déclaration de fonction complète (function GreetUser() { app.alert("hello"); }). Un Body vide déclenche une exception

 

Description

Chaque appel ajoute une paire (clé, dict indirect) au name tree /Names /JavaScript du Catalog au moment de EndDoc. Chaque Body enregistré devient son propre dict indirect << /S /JavaScript /JS (body) >>, prêt à être référencé par nom depuis toute autre action ou tout autre contexte JS. C’est utile pour partager une bibliothèque de helpers de validation, de mise en forme ou de calcul entre de nombreux widgets sans dupliquer la source dans chaque action /A

Enregistrer deux fois le même Name déclenche une exception afin que les appelants ne perdent pas silencieusement leur première définition

 

Contrôles de conformité

Déclenche une exception avec tout réglage PDFACompliance non vide (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 interdisent toutes les actions JavaScript dans les niveaux PDF/A). Déclenche une exception avec tout réglage PDFXCompliance non vide (les flux prépresse ISO 15930 rejettent les scripts interactifs). Fait automatiquement passer la Version du document à PDF 1.3 si nécessaire; refuse l’opération sous StrictVersionLock si la version choisie est antérieure à PDF 1.3

 

Exemple

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;

 

Disponibilité

HotPDF v2.119.14. Fonction PDF 1.3+; HotPDF augmente automatiquement la Version du document sauf si StrictVersionLock est activé

 

Voir aussi: Prise en charge AcroForm, THPDFActionScriptType