如何将List <PdfDocument>合并到单个PdfDocument

时间:2019-07-13 16:52:46

标签: java pdf itext pdf-generation itext7

我有一个包含多个PDF的列表,我想将所有PDF合并到一个PdfDocument中(即使用iText),然后将该PdfDocument转换为ByteArrayOutputStream(或byte [])。

public byte[] mergePdfDocumentsIntoAPdfDocument (List<PdfDocument> pdfDocuments){

 final ByteArrayOutputStream mergedPdfStream = new ByteArrayOutputStream();
    final PdfDocument mergedPdfDocument = new PdfDocument(new PdfWriter(mergedPdfStream));


//I dont know how can I continue this

我应该怎么做才能做到这一点?

1 个答案:

答案 0 :(得分:3)

public byte[] mergePdfDocumentsIntoAPdfDocument(List<PdfDocument> pdfDocuments){
    ByteArrayOutputStream mergedPdfStream = new ByteArrayOutputStream();
    PdfDocument resultDoc = new PdfDocument(new PdfWriter(mergedPdfStream));

    for (PdfDocument doc : pdfDocuments) {
        int n = doc.getNumberOfPages();
        for (int i = 1; i <= n; i++) {
            PdfPage page = doc.getPage(i).copyTo(resultDoc);
            resultDoc.addPage(page);
        }
    }

    resultDoc.close();
    return mergedPdfStream.toByteArray();
}