Pengenalan
Apabila mengautomasikan penjanaan dokumen, ia selalunya diperlukan untuk menggabungkan berbilang fail PDF yang dijana secara dinamik ke dalam satu output untuk dicetak. Artikel ini meneroka cara untuk mencapai ini menggunakan ItextSharp.
Gabung Strategi
ItextSharp menawarkan dua pendekatan utama untuk menggabungkan dokumen PDF:
Penyelesaian Menggunakan PdfCopy
Sampel kod berikut menunjukkan penggabungan fail PDF menggunakan 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) } } }
Dalam contoh ini, pdf mengandungi tatasusunan bait fail PDF dan kelas PdfCopy digunakan untuk menambah halaman daripada setiap dokumen sumber.
Pertimbangan Lain
PdfCopy boleh menyebabkan isu prestasi dan penggunaan memori dengan dokumen besar. PdfSmartCopy dan PdfWriter menawarkan alternatif dengan pertukaran dalam prestasi dan sokongan ciri.
Untuk maklumat dan contoh kod yang lebih komprehensif, rujuk dokumentasi iText in Action (bab 6, bahagian 6.4):
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Fail PDF Dijana Secara Program dalam C# Menggunakan ITextSharp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!