尝试查找有关操作的文档,但内容很少。
查看他们的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)
方法立即指定小部件注释矩形。稍后还有其他方法可以将小部件添加到表单字段,但同样,从您的代码中不清楚您是否正在这样做。
无论如何,以下是生成文件的完整工作代码,该文件的事件在 Adobe 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/