如何使用iText单击PDF格式的按钮?

时间:2017-04-06 11:06:24

标签: pdf itext

我必须用一些数据填写PDF表格。此表单包含一些带有“添加”按钮的表格,该按钮用于向该表添加带有输入的新行,例如“FOREIGN PATENT DOCUMENTS”。 我需要使用iText在我的代码中“点击”这个按钮几次,添加必要的行,在那里获取输入名称并填充它们。我怎么能用iText做到这一点?有人可以给我一个代码示例吗?

我的PDF文件格式为https://drive.google.com/open?id=0BwtWU1543EbTQ3A3b2dZcW9qYk0

此文件已预定义,我无法重新生成它。

1 个答案:

答案 0 :(得分:2)

你没有"点击"一个按钮编程。您只需提供必要的数据,表单就会适应。

请参阅FillXFA示例。我们有purchase_order.pdf,如下所示:

enter image description here

此文件有一个"添加项目"按钮添加更多行项目(如果需要,将导致创建更多页面)。如果有GUI,那么该按钮才有意义,但是当您以编程方式填写表单时,没有任何按钮可以推送。您只需向XML提供数据(例如data.xml),如下所示:

public void manipulatePdf(String src, String dest)
    throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader,
            new FileOutputStream(dest));
    AcroFields form = stamper.getAcroFields();
    XfaForm xfa = form.getXfa();
    xfa.fillXfaForm(new FileInputStream(XML));
    stamper.close();
    reader.close();
}

结果如下所示:purchase_order_filled.pdf

enter image description here

如您所见,添加了多行,而没有按任何按钮。

重要提示:我看到您有混合文档。我认为你应该把它变成纯XFA形式。如果您保留AcroForm字段,此代码将无法运行。