我正在尝试将注释从一个 pdf 复制到另一个 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 打开此输出文件并再次保存它 - 大小会恢复正常。有什么想法吗? 预先非常感谢您提供的任何帮助。
最佳答案
每个注释都指向它所在的页面。因此,您还需要通过调用 pdfAnnotations1.get(0).setPage(pdf.getPage(0))
来更正该问题。
大小增加是因为如果没有我描述的调用,注释将指向旧页面,旧页面指向其父页面,等等。
关于java - PDFBox:如何正确地将注释从一个pdf复制到另一个pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55240324/