ITextSharp を使用して実行時に生成された複数の PDF を結合するには、主に 2 つのオプションがあります。クラスファミリーまたはPdfWriter class.
PdfCopy Family
Pdf*Copy* クラスを使用すると、元の形式とインタラクティブな注釈を維持しながら PDF を結合できます。この方法では、次の手順に従います。
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 サイトの他の関連記事を参照してください。