iText onchange事件未触发

问题描述 投票:0回答:1

我正在使用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(用于击键),则会触发。

我做错了什么想法?

javascript pdf itext openpdf
1个回答
0
投票

好吧,我终于设法找到了什么问题,所以如果有人需要,我会发布它,因为我没有在网上找到类似的例子。

我有两个错误:

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

2)每个字段都应添加到编写者的计算订单中,只设置每个字段的计算订单编号是不够的:

writer.addCalculationOrder(field1);
writer.addCalculationOrder(field2);
© www.soinside.com 2019 - 2024. All rights reserved.