如何将 List<PdfDocument> 合并为单个 PdfDocument
Posted
技术标签:
【中文标题】如何将 List<PdfDocument> 合并为单个 PdfDocument【英文标题】:How to merge List<PdfDocument> into a single PdfDocument 【发布时间】:2019-11-23 01:23:21 【问题描述】:我有一个包含多个 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
我应该怎么做才能实现这一目标?
【问题讨论】:
***.com/questions/3585329/… 我没有使用 PDF Box 你用的是什么库?请更新您的问题。 已更新,我正在使用 iText github.com/itext/i7js-samples/blob/develop/publications/book/… 【参考方案1】: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();
【讨论】:
以上是关于如何将 List<PdfDocument> 合并为单个 PdfDocument的主要内容,如果未能解决你的问题,请参考以下文章
如何将上下文菜单项添加到FlowDocumentScrollViewer内的textBox
将 PDFPage 添加到 PDFDocument 时 PDFView 不更新