THotPDF.RegisterDocumentJavaScript

THotPDF

 

Soporte AcroForm

Registra una función JavaScript con nombre a 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 widget AcroForm, las acciones de apertura de documento y otros cuerpos JavaScript pueden invocar la función registrada por nombre a través del 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 origen JS en el árbol de nombres. Distingue mayúsculas y minúsculas según PDF 1.7 §7.9.6. Un Name vacío provoca un error

Body es el código JavaScript sin procesar. 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 provoca un error

 

Descripción

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

Registrar dos veces el mismo Name provoca un error para que el llamador no pierda silenciosamente su primera definición

 

Controles de compatibilidad

Provoca un error con cualquier valor 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). Provoca un error con cualquier valor no vacío de PDFXCompliance (los flujos de trabajo de preimpresión ISO 15930 rechazan el scripting interactivo). Incrementa automáticamente la Version del documento a PDF 1.3 cuando es necesario; lo rechaza con 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;

 

Disponibilidad

HotPDF v2.119.14. Función de PDF 1.3+; HotPDF incrementa automáticamente la Version del documento a menos que se establezca StrictVersionLock

 

Ver también: Soporte AcroForm, THPDFActionScriptType