首頁 > 後端開發 > C++ > 如何使用 ITextSharp 在 C# 中合併多個以程式設計方式產生的 PDF 檔案?

如何使用 ITextSharp 在 C# 中合併多個以程式設計方式產生的 PDF 檔案?

Susan Sarandon
發布: 2024-12-28 18:07:11
原創
360 人瀏覽過

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

使用ItextSharp 合併多個以程式設計產生的PDF 檔案以進行列印

簡介

自動產生文件時,通常有必要將多個動態產生的PDF 文件合併為單一輸出以進行列印。本文探討如何使用 ItextSharp 來實現此目的。

合併策略

ItextSharp 提供兩種主要方法來合併PDF 文件:

  • Pdf*Copy
  • PdfWriter
  • 類別:將頁面整合到新文件中,並控制格式和互動功能(例如註解)。
使用PdfCopy 的解決方案

以下程式碼範例示範了使用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
  • C#:https://github.com/itextpdf/iTextSharp.Extended/tree/master/iTextSharp.Extended.Core.Pdf

以上是如何使用 ITextSharp 在 C# 中合併多個以程式設計方式產生的 PDF 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板