0

我们有两个 PDF,我们使用下面的代码片段更新了这两个 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

4

0 回答 0