javascript - iText7 字段事件操作不起作用

标签 javascript java pdf itext itext7

尝试查找有关操作的文档,但内容很少。

查看他们的api几乎没有告诉我有关 PdfName 类的任何字段的信息。

我找到了一段代码here简要介绍 PdfName 字段值 V、E、X、D 和 U。

但是,这些字段值无法正确设置事件。

当我创建签名字段,然后在以下代码中添加操作时,仅触发 V 事件,不会触发任何其他事件。

PdfSignatureFormField sigField = PdfFormField.createSignature(pdf);             
sigField.setFieldName("signature");

sigField.setAdditionalAction(PdfName.V, PdfAction.createJavaScript(
    "app.alert(\"Validation\")"));

sigField.setAdditionalAction(PdfName.E, PdfAction.createJavaScript(
    "app.alert(\"Mouse Enter\")"));

sigField.setAdditionalAction(PdfName.X, PdfAction.createJavaScript(
    "app.alert(\"Mouse Exit\")"));

sigField.setAdditionalAction(PdfName.D, PdfAction.createJavaScript(
    "app.alert(\"Mouse Down\")"));

sigField.setAdditionalAction(PdfName.U, PdfAction.createJavaScript(
    "app.alert(\"Mouse Up\")"));

有人知道为什么事件无法正常触发吗?

最佳答案

从您的代码中不清楚如何将小部件与表单字段关联起来。

您可以使用createSignature(PdfDocument, Rectangle)方法立即指定小部件注释矩形。稍后还有其他方法可以将小部件添加到表单字段,但同样,从您的代码中不清楚您是否正在这样做。

无论如何,以下是生成文件的完整工作代码,该文件的事件在 Adob​​e Reader(甚至在默认的 Windows Pdf Reader)中正确触发。

PdfFormField sigField = PdfFormField.createSignature(doc, new Rectangle(72, 632, 200, 100));
sigField.setFieldName("signature");
sigField.setAdditionalAction(PdfName.V, PdfAction.createJavaScript(
        "app.alert(\"Validation\")"));

sigField.setAdditionalAction(PdfName.E, PdfAction.createJavaScript(
        "app.alert(\"Mouse Enter\")"));

sigField.setAdditionalAction(PdfName.X, PdfAction.createJavaScript(
        "app.alert(\"Mouse Exit\")"));

sigField.setAdditionalAction(PdfName.D, PdfAction.createJavaScript(
        "app.alert(\"Mouse Down\")"));

sigField.setAdditionalAction(PdfName.U, PdfAction.createJavaScript(
        "app.alert(\"Mouse Up\")"));
form.addField(sigField);

关于javascript - iText7 字段事件操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773108/

相关文章:

cocoa - 将 NSImage 输出为 PDF 文件

javascript - AMP 需要异步 js;有没有办法进行本地回退?

perl - 如何使用 CAM::PDF 更新 PDF 元数据

c# - 免费的 PDF 操作库或代码?

java - .EAR部署命令wildfly-8.0.0Final

java - 允许在立即启用 JMX 监控的情况下重新启动 Java 应用程序

Java RMI,一个接口(interface)在网络服务器上作为远程发布,但它不应该

javascript - 从 JSDoc 注释生成函数定义(反之亦然)

javascript - "window.frame.openDialog"无法在 Mac OS X 中选择文件

javascript - 我可以将 javascript 存储在本地存储对象中并运行它吗?