我正在使用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(用于击键),它将触发。
关于我在做什么错的任何想法?
答案 0 :(得分:0)
好吧,我终于设法找到了问题所在,因此我将其发布,以防有人需要,因为我无法在网上找到类似的示例。
我有两个错误:
1),而不是“ event.change = 123” 应该位于“ event.value = 123”
2)每个字段都应添加到编写者的计算顺序中,仅设置每个字段的计算顺序编号是不够的:
writer.addCalculationOrder(field1);
writer.addCalculationOrder(field2);