猿问

PDFBox:如何将注释从一个PDF正确复制到另一个PDF

我正在尝试将注释从一个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打开此输出文件并再次保存 - 大小将恢复正常。有什么想法吗?非常感谢您的任何帮助。


蝴蝶刀刀
浏览 290回答 1
1回答

回首忆惘然

每个批注都指向它所在的页面。因此,您还需要通过调用来纠正这一点。pdfAnnotations1.get(0).setPage(pdf.getPage(0))大小增加是因为如果没有我描述的调用,注释将指向旧页面,该页面指向其父页面,依此类推。
随时随地看视频慕课网APP

相关分类

Java
我要回答