Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menggabungkan Berbilang Fail PDF Dijana Secara Program dalam C# Menggunakan ITextSharp?

Bagaimanakah Saya Boleh Menggabungkan Berbilang Fail PDF Dijana Secara Program dalam C# Menggunakan ITextSharp?

Susan Sarandon
Lepaskan: 2024-12-28 18:07:11
asal
360 orang telah melayarinya

How Can I Merge Multiple Programmatically Generated PDF Files in C# Using ITextSharp?

Menggabungkan Berbilang Fail PDF Dijana Secara Aturcara untuk Mencetak Menggunakan ItextSharp

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:

  • Pdf*Copy kelas: Kekalkan format halaman asal dan anotasi, memindahkan kandungan seutuh mungkin.
  • PdfWriter kelas: Sepadukan halaman ke dalam dokumen baharu dengan kawalan ke atas pemformatan dan ciri interaktif (cth., anotasi).

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)
        }
    }
}
Salin selepas log masuk

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):

  • Jawa: https://examples.itextpdf.com/category/com.itextpdf.text
  • C#: https://github.com/itextpdf/iTextSharp.Extended/tree/master/iTextSharp.Extended.Core.Pdf

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan