我们有两个PDF,我们使用下面的代码snipet更新了这两个PDF的表单字段
PdfReader reader = new PdfReader("Test.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("Test_1.pdf"));
AcroFields form = stamper.getAcroFields();
form.setField("issued_by", "Test");
if (stamper != null) {
stamper.close();
}
现在,当我尝试将两个PDF合并为一个时,最后PDF的表单字段值将在最终PDF中消失。尽管在最终PDF和模板中正确创建了新页面,但不存在表单文件值。 我使用下面的代码进行合并
PdfReader reader = new PdfReader("Test_1.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("Final.pdf"));
reader = new PdfReader("Test_2.pdf");
stamper = mergePDFDocuments(reader,stamper);
if (stamper != null) {
stamper.close();
}
public static PdfStamper mergePDFDocuments(PdfReader reader,PdfStamper stamper) {
try {
stamper.insertPage(stamper.getReader().getNumberOfPages()+1, stamper.getReader().getPageSizeWithRotation(1));
PdfContentByte under = stamper.getOverContent(stamper.getReader().getNumberOfPages());
PdfImportedPage page = stamper.getImportedPage(reader, 1);
under.addTemplate(page, 0,0);
}
catch (Exception e) {
e.printStackTrace();
}
return stamper;
}
任何人都可以建议我犯错误的地方。 我使用的是JDK 1.7.0_71和iText 5.4.1