java - 如何使用 itext7 将页面从一个 PdfDocument 复制到另一个 PdfDocument

标签 java pdf copy itext itext7

我有 2 个 PdfDocument,并且想要将一个 pdf 的所有页面复制到另一个 pdf。两者都是有效的 pdf 文件。

这是我目前的代码,但它没有添加页面:

PdfDocument pdfDocument = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
for(int i=1; i<=srcPdf.getNumberOfPages(); i++) {
   pdfDocument.addPage(srcPdf.getPage(i));
}
srcPdf.close();
//I close the other pdf at a later moment

最佳答案

addPage 方法旨在处理同一文档的页面。

要复制不同文档的页面,应使用 PdfMergercopyPagesTo 功能。

前一种方法很简单:

    PdfDocument mergedDoc = new PdfDocument(new PdfWriter(destination));
    PdfMerger merger = new PdfMerger(mergedDoc);
    for(File source : sources){
        // set source pdf
        PdfDocument sourcePdf = new PdfDocument(new PdfReader(source));
        // merge
        merger.merge(sourcePdf, 1, sourcePdf.getNumberOfPages()).setCloseSourceDocuments(true);
        // close source
        sourcePdf.close();
    }
    merger.close();
    mergedDoc.close();

后一个也很简单:

    PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
    PdfDocument insertDoc = new PdfDocument(new PdfReader(INSERT));
    insertDoc.copyPagesTo(1, 1, pdfDoc, 4);
    insertDoc.close();

关于java - 如何使用 itext7 将页面从一个 PdfDocument 复制到另一个 PdfDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55501051/

相关文章:

java - Java中控制类加载顺序

Java 读取 JSON null

java - 如何获取 Eclipselink 实体管理器?

java - 安卓 - PDF Int。 - 新实例失败 - 无法实例化

MYSQL - 将数据复制到另一个数据库

Flash PDF 查看器(有自己的主机)

java - 如何使用 itext java 设置默认缩放 100%

java - 我可以在旧 iText 版本中使用 BaseColor 类吗?

java - 有没有办法在没有引用的情况下在 Java 中复制双重 LinkedList?

linux - 仅存档旧文件并在存档中重新构建文件夹树