要合併使用 ITextSharp 在執行階段產生的多個 PDF,您有兩個主要選項:使用 PdfCopy類族或 PdfWriter 類別。
PdfCopy系列
Pdf*Copy* 類別可讓您合併 PDF,同時保留其原始格式和互動式註解。對於此方法,請按照以下步驟操作:
使用PdfCopy 的示例:
byte[] mergedPdf = null; using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfCopy copy = new PdfCopy(document, ms)) { document.Open(); for (int i = 0; i < pdfBytes.Count; ++i) { PdfReader reader = new PdfReader(pdfBytes[i]); int n = reader.NumberOfPages; for (int page = 0; page < n; ) { copy.AddPage(copy.GetImportedPage(reader, ++page)); } } } } mergedPdf = ms.ToArray(); }
PdfWriter類別
PdfWriter 類別可讓您將來源 PDF 中的頁面整合到新文件中,而不保留其原始互動性。如果您不關心來源 PDF 中的註釋或其他功能,請使用此方法。
using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfWriter writer = PdfWriter.GetInstance(document, ms)) { document.Open(); for (int i = 0; i < pdfBytes.Count; ++i) { PdfReader reader = new PdfReader(pdfBytes[i]); int n = reader.NumberOfPages; for (int page = 0; page < n; ) { PdfImportedPage importedPage = writer.GetImportedPage(reader, ++page); writer.Add(importedPage); } reader.Close(); } } } mergedPdf = ms.ToArray(); }
有關更多詳細信息,請參閱 iTextSharp 文件或連結答案中提供的程式碼範例。
以上是如何使用 ITextSharp 合併多個執行階段產生的 PDF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!