ホームページ > バックエンド開発 > 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 ドキュメントを結合するための 2 つの主要なアプローチが提供されます。

  • Pdf*Copy クラス: 元のページ形式を保持し、注釈、コンテンツを可能な限りそのままの状態で転送します。
  • PdfWriter クラス: 書式設定や対話型機能 (注釈など) を制御して、ページを新しいドキュメントに統合します。

を使用した解決策PdfCopy

次のコード サンプルは、PdfCopy を使用して PDF ファイルを結合する方法を示しています。

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)
        }
    }
}
ログイン後にコピー

この例では、pdfs には PDF ファイルのバイト配列が含まれており、PdfCopy クラスが使用されます。各ソースドキュメントからページを追加します。

その他考慮事項

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート