|
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
|