Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menggabungkan Berbilang PDF Dijana Masa Jalan Menggunakan ITextSharp?

Bagaimana untuk Menggabungkan Berbilang PDF Dijana Masa Jalan Menggunakan ITextSharp?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 08:18:11692semak imbas

How to Merge Multiple Runtime-Generated PDFs Using ITextSharp?

Bagaimana untuk Menggabungkan dan Mencetak Berbilang PDF Dijana semasa Runtime Menggunakan ITextSharp?

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:

  1. Mulakan dokumen PDF kosong.
  2. Buat objek PdfCopy.
  3. Gelung melalui bait PDF yang dijana.
  4. Untuk setiap tatasusunan bait, buat PdfReader dan import halamannya ke dalam PdfCopy objek.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn