0

我正在使用 OpenPDF(基于 iText)制作一个带有 2 个输入的简单 PDF 表单,我想要完成的是在第一个字段被填充后自动将第一个字段的值复制到第二个字段中。我实际上需要一个可以自动添加所有其他字段并显示总和的字段,但首先我想尝试一个简单的示例。

我在一个字段上附加了一个 onchange 动作,据我了解,只要任何字段发生变化,它就会触发:

TextField name1 = new TextField(writer, new Rectangle(100, 800, 200, 830), "idInput1");
PdfFormField field1 = name1.getTextField();
field1.put(PdfName.CO, new PdfNumber(1));
writer.addAnnotation(field1);

TextField name2 = new TextField(writer, new Rectangle(100, 700, 200, 730), "idInput2");
PdfFormField field2 = name2.getTextField();
field2.setAdditionalActions(PdfName.C, PdfAction.javaScript("event.change = 123;", writer));
field2.put(PdfName.CO, new PdfNumber(2));
writer.addAnnotation(field2);

但是,这个 onchange 事件永远不会被触发。如果我将此事件更改为用于击键的 PdfName.K,那么它将触发。

关于我做错了什么的任何想法?

4

1 回答 1

0

好的,我终于找到了问题所在,所以我会发布它以防有人需要它,因为我在网上找不到类似的例子。

我有两个错误:

1)在JSfunction中,而不是“event.change = 123”应该代表“event.value = 123”

2)每个字段都应该添加到作者的计算顺序中,只为每个字段设置计算顺序号是不够的:

writer.addCalculationOrder(field1);
writer.addCalculationOrder(field2);
于 2018-07-16T12:46:54.890 回答