はじめに
ドキュメントの生成を自動化する場合、多くの場合、動的に生成された複数の PDF ファイルを単一の出力に結合して印刷します。この記事では、ItextSharp を使用してこれを実現する方法について説明します。
マージ戦略
ItextSharp では、PDF ドキュメントを結合するための 2 つの主要なアプローチが提供されます。
を使用した解決策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) を参照してください。
以上がITextSharp を使用して C# でプログラムで生成された複数の PDF ファイルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。