Как скопировать страницы из одного документа PDF в другой с помощью itext7 - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть 2 PdfDocument s и я хочу скопировать все страницы одного 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 голосов
/ 03 апреля 2019

Метод addPage предназначен для обработки страниц одного и того же документа.

Для копирования страниц различных документов следует использовать функциональность PdfMerger или copyPagesTo.

первый работает так просто:

    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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...