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

时间:2019-04-03 17:34:06

标签: java pdf copy itext itext7

我有2个PdfDocument,并想将一个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

1 个答案:

答案 0 :(得分:0)

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();