簡介
自動產生文件時,通常有必要將多個動態產生的PDF 文件合併為單一輸出以進行列印。本文探討如何使用 ItextSharp 來實現此目的。
合併策略
ItextSharp 提供兩種主要方法來合併PDF 文件:
以下程式碼範例示範了使用PdfCopy 合併PDF 檔案:
在此範例中,pdfs 包含PDF 文件的位元組數組,PdfCopy 類別用於從每個來源文件中新增頁面。using iTextSharp.text; using iTextSharp.text.pdf; using System.Collections.Generic; using System.IO; namespace MergePdfs { class Program { static void Main(string[] args) { // Create a list of byte arrays for each PDF file List<byte[]> pdfs = new List<byte[]>(); // Read each PDF file into the list foreach (string filePath in args) { pdfs.Add(File.ReadAllBytes(filePath)); } // Merge the PDFs byte[] mergedPdf = null; using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfCopy copy = new PdfCopy(document, ms)) { document.Open(); foreach (byte[] pdf in pdfs) { PdfReader reader = new PdfReader(pdf); int n = reader.NumberOfPages; for (int page = 1; page <= n; page++) { copy.AddPage(copy.GetImportedPage(reader, page)); } } } } mergedPdf = ms.ToArray(); } // Print the merged PDF // ... (code for printing the merged PDF) } } }
PdfCopy 可能會導致效能問題和記憶體問題大文件的消耗。 PdfSmartCopy 和 PdfWriter 提供了在效能和功能支援方面進行權衡的替代方案。
有關更全面的資訊和程式碼範例,請參閱 iText in Action 文件(第 6 章,第 6.4 節):
Java: https://examples.itextpdf.com/category/com.itextpdf.text
以上是如何使用 ITextSharp 在 C# 中合併多個以程式設計方式產生的 PDF 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!