THotPDF.RegisterDocumentJavaScript

THotPDF

 

Soporte AcroForm

Registra una función JavaScript nombrada de nivel de documento en el árbol de nombres /Names /JavaScript del Catalog (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Las acciones de widgets AcroForm, acciones de apertura de documento y otros cuerpos JavaScript pueden invocar la función registrada por nombre mediante el motor JavaScript del visor (Adobe Acrobat, Foxit y otros visores compatibles)

 

Sintaxis Delphi:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parámetros

Name es la clave única bajo la cual se almacena el código fuente JS en el árbol de nombres. Es sensible a mayúsculas y minúsculas según PDF 1.7 §7.9.6. Un Name vacío lanza una excepción

Body es el código fuente JavaScript raw. HotPDF no analiza ni valida el JS; el llamador es responsable de la corrección sintáctica. Los llamadores típicos pasan una declaración de función completa (function GreetUser() { app.alert("hello"); }). Un Body vacío lanza una excepción

 

Descripción

Cada llamada agrega un par (key, indirect dict) al árbol de nombres /Names /JavaScript del Catalog en el momento de EndDoc. Cada Body registrado se convierte en su propio dict indirecto << /S /JavaScript /JS (body) >>, listo para ser referenciado por nombre desde cualquier otra acción o contexto JS. Es útil para compartir una biblioteca de helpers de validación, formato o cálculo entre muchos widgets sin duplicar el código fuente en cada acción /A

Registrar el mismo Name dos veces lanza una excepción para que los llamadores no pierdan silenciosamente su primera definición

 

Compliance gates

Lanza una excepción con cualquier ajuste no vacío de PDFACompliance (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 prohíben todas las acciones JavaScript en los niveles PDF/A). Lanza una excepción con cualquier ajuste no vacío de PDFXCompliance (los flujos prepress ISO 15930 rechazan scripting interactivo). Sube automáticamente la Version del documento a PDF 1.3 cuando hace falta; rechaza la llamada bajo StrictVersionLock si la versión elegida es anterior a PDF 1.3

 

Ejemplo

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.

 

Véase también: Soporte AcroForm, THPDFActionScriptType