PDFBox:如何正确地将注释从一个 pdf 复制到另一个
PDFBox: how to properly copy annotation from one pdf to another
我正在尝试将注释从一个 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))
.
来更正该错误
大小增加是因为没有我描述的调用,注释将指向旧页面,旧页面指向其父页面等。
我正在尝试将注释从一个 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))
.
大小增加是因为没有我描述的调用,注释将指向旧页面,旧页面指向其父页面等。