Untuk menggabungkan berbilang PDF yang dijana semasa runtime menggunakan ITextSharp, anda mempunyai dua pilihan utama: menggunakan PdfCopy keluarga kelas atau PdfWriter kelas.
Keluarga PdfCopy
Kelas Pdf*Copy* membolehkan anda menggabungkan PDF sambil mengekalkan format asal dan anotasi interaktifnya. Untuk pendekatan ini, ikut langkah berikut:
Contoh Menggunakan 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(); }
Kelas PdfWriter
Kelas PdfWriter membolehkan anda menyepadukan halaman daripada sumber PDF ke dalam dokumen baharu tanpa mengekalkan interaktiviti asalnya. Gunakan pendekatan ini jika anda tidak mengambil berat tentang anotasi atau ciri lain dalam PDF sumber.
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(); }
Untuk butiran lanjut, rujuk dokumentasi iTextSharp atau contoh kod yang disediakan dalam jawapan yang dipautkan.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang PDF Dijana Masa Jalan Menggunakan ITextSharp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!