我有一个PDF文件,其中包含一些表单字段,我需要用Java代码填写这些字段。我使用PDFBox库进行操作,下面是相关代码:
当我使用这个长字段名称时,我没有收到任何错误信息,但生成的PDF文件不包含我放在字段中的值。我认为可能是字段名称有问题,所以我使用了Pdftk工具,它只给出了
PDDocument pdfDoc = PDDocument.load("C:\\Users\\igor\\Desktop\\test.pdf");
PDDocumentCatalog docCatalog = pdfDoc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField("applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]");
if (field != null) {
field.setValue("Milan");
} else {
System.err.println("No field found with name:" + "applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]");
}
pdfDoc.save("C:\\Users\\igor\\Desktop\\testout.pdf");
pdfDoc.close();
这份PDF不是我创建的,因此我不知道文件使用了什么类型的表单(如果我理解正确,有FDF和XFA表单)。由于这份PDF不是我创建的,我使用了这个工具 http://support.persits.com/pdf/demo_formfields.asp 来查找表单字段的名称,并得到了以下结果:
applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]
当我使用这个长字段名称时,我没有收到任何错误信息,但生成的PDF文件不包含我放在字段中的值。我认为可能是字段名称有问题,所以我使用了Pdftk工具,它只给出了
txtFirstName
作为字段名称。但当我只使用这个名称时,我会收到找不到名称为:txtFirstName的字段
的错误信息。帮帮我?