ホームページ > バックエンド開発 > C++ > iTextSharp を使用して、動的に生成された複数の PDF を結合するにはどうすればよいですか?

iTextSharp を使用して、動的に生成された複数の PDF を結合するにはどうすればよいですか?

DDD
リリース: 2024-12-25 19:16:13
オリジナル
587 人が閲覧しました

How Can I Merge Multiple Dynamically Generated PDFs Using iTextSharp?

複数の動的に生成された PDF ファイルの結合: iTextSharp アプローチ

コンテキスト:
この質問は結合に関するものですリアルタイムで動的に生成される複数の PDF ファイル。目的は、印刷目的でこれらのファイルを結合することです。

解決策:
iTextSharp を使用して複数の PDF ファイルを結合するには、主に 2 つの方法があります:

1. PdfCopy クラス
コンテンツとインタラクティブな注釈を保持しながら、ページを元の形式で結合することが目的の場合は、PdfCopy クラスを使用する必要があります。 PdfCopy を使用したサンプルを以下に示します。

// Assuming pdf is a List<byte[]> containing in-memory PDF documents
using (MemoryStream ms = new MemoryStream())
{
    using (Document document = new Document())
    {
        using (PdfCopy copy = new PdfCopy(document, ms))
        {
            document.Open();
            for (int i = 0; i < pdf.Count; ++i)
            {
                PdfReader reader = new PdfReader(pdf[i]);
                int n = reader.NumberOfPages;
                for (int page = 0; page < n; )
                {
                    copy.AddPage(copy.GetImportedPage(reader, ++page));
                }
            }
        }
    }
    mergedPdf = ms.ToArray();
}
ログイン後にコピー

2. PdfWriter クラス
あるいは、一般的な形式をカスタマイズし、インタラクティブな注釈を無視して、ソース文書のページを新しい文書に統合することが目標の場合は、PdfWriter クラスを使用する必要があります。このクラスは他の PDF ドキュメントからページをインポートしますが、そのインタラクティブな機能は破棄します。

追加の考慮事項:

  • PdfCopyFields: このクラスが使用されます異なるフォームのフィールドを結合するため、特に PdfCopy を使用してフォームを連結するときに発生するフォーム フィールドの問題を回避します。より高いメモリ要件があります。
  • PdfSmartCopy: PdfCopy と同様に、冗長コンテンツを検出できますが、より多くのメモリと CPU リソースが必要です。

解決策は次のとおりです。プロジェクトの特定の要件に基づいて選択されます。

以上がiTextSharp を使用して、動的に生成された複数の PDF を結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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