我正在尝试将注释从一个pdf复制到另一个。但是,即使复制1个注释,也会使输出pdf文件的大小翻倍。
请在下面找到简单的代码示例:
PDDocument pdf = PDDocument.load(new File("test1.pdf"));
PDDocument pdf2 = PDDocument.load(new File("test/test1.pdf"));
List<PDAnnotation> pdfAnnotations1 = pdf.getPage(0).getAnnotations();
List<PDAnnotation> pdfAnnotations2 = pdf2.getPage(0).getAnnotations();
pdfAnnotations1.add(pdfAnnotations2.get(0));
pdf.save("test1.pdf");
如果我尝试使用Adobe Reader打开此输出文件并再次保存,则大小会恢复正常。有什么想法吗? 非常感谢您的帮助。
答案 0 :(得分:1)
每个注释都指向它所在的页面。因此,您还需要通过调用pdfAnnotations1.get(0).setPage(pdf.getPage(0))
来更正此问题。
大小增加是因为没有我描述的调用,注释将指向旧页面,指向旧页面,等等。