ホームページ >バックエンド開発 >C++ >ITextSharp を使用して、ランタイムで生成された複数の PDF を結合する方法

ITextSharp を使用して、ランタイムで生成された複数の PDF を結合する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-27 08:18:11630ブラウズ

How to Merge Multiple Runtime-Generated PDFs Using ITextSharp?

ITextSharp を使用して実行時に生成された複数の PDF を結合して印刷する方法?

ITextSharp を使用して実行時に生成された複数の PDF を結合するには、主に 2 つのオプションがあります。クラスファミリーまたはPdfWriter class.

PdfCopy Family

Pdf*Copy* クラスを使用すると、元の形式とインタラクティブな注釈を維持しながら PDF を結合できます。この方法では、次の手順に従います。

  1. 空の PDF ドキュメントを初期化します。
  2. PdfCopy オブジェクトを作成します。
  3. 生成された PDF バイトをループします。
  4. バイト配列ごとに PdfReader を作成し、そのページを PdfCopy にインポートしますobject.

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();
}

PdfWriter クラス

PdfWriter クラスを使用すると、以下のことが可能になります。元のインタラクティブ性を維持することなく、ソース PDF のページを新しいドキュメントに統合します。ソース PDF の注釈やその他の機能を気にしない場合は、このアプローチを使用してください。

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();
}

詳細については、iTextSharp のドキュメント、またはリンクされた回答で提供されているコード例を参照してください。

以上がITextSharp を使用して、ランタイムで生成された複数の PDF を結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。