フッターコンテンツにスキップ
IRONPDFの使用

C# .NETでPDFファイルをどうやってマージしますか?

 IronPDFを使用した.NET PDF 結合タスク: 完全な C# ガイド: 画像 1 - IronPDFを使用した PDF の結合

複数の PDF ファイルを 1 つのドキュメントに結合することは、ビジネス アプリケーションでは一般的な要件です。 統合財務レポートを生成する場合、アーカイブ用に法的契約書をまとめる場合、または複数部から成る請求書をまとめる場合、プログラムで PDF を結合すると時間が節約され、手動の手順が不要になります。 IronPDF は、外部ツールやコマンドライン ユーティリティを必要とせず、わずか数行の C# でこれを処理する簡単な API を提供します。

このガイドでは、2 つのファイルのマージ、複数ファイルのリストのマージ、MemoryStream を使用したメモリ内処理、パスワード保護や圧縮などのマージ後の操作など、あらゆる実用的なシナリオについて説明します。

今すぐ無料トライアルを開始して、 .NETアプリケーションに PDF 結合機能を追加しましょう。

IronPDFを始めるにはどうすればいいですか?

マージ コードを書く前に、 NuGetからIronPDFをインストールします。 このパッケージは、 .NET Framework 4.6.2+ および.NET 5/6/7/8/9/10 を対象としているため、追加のランタイム依存関係なしで、コンソール アプリ、 ASP.NET Coreサービス、Azure Functions、および Windows フォーム プロジェクトで動作します。

NuGetパッケージ マネージャー コンソールを開き、次を実行します。

Install-Package IronPdf
Install-Package IronPdf
SHELL

または.NET CLIを使用します:

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

ライセンス キーの適用を含むステップバイステップのセットアップ手順については、 IronPDFのインストールの概要を参照してください。 パッケージをインストールし、ライセンス キーを適用すると、このガイドのすべての例が変更なしで実行されます。

プログラムで PDF ドキュメントを結合するにはどうすればよいですか?

PdfDocument.Merge メソッドは、2 つの PDF ファイルを 1 つの PDF に結合する最も直接的な方法を提供します。 各ソース ドキュメントを PdfDocument.FromFile で読み込み、両方のオブジェクトを Merge に渡して、結果を保存します。

インプット インボイス One

 IronPDFを使用した.NET PDF マージタスク: 完全な C# ガイド: 画像 2 - 請求書 1 を入力

インプット インボイス 2

 IronPDFを使用した.NET PDF マージタスク: 完全な C# ガイド: 画像 3 - 請求書 2 を入力

using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
$vbLabelText   $csharpLabel

出力

 IronPDFを使用した.NET PDF 結合タスク: 完全な C# ガイド: 画像 4 - 結合された PDF ドキュメント

Merge メソッドは 2 つの PdfDocument インスタンスを受け入れ、両方のソースのすべてのページを順番に含む新しいドキュメントを返します。 結果のファイルには、各入力の元の書式、画像、フォント、埋め込みコンテンツが保持されます。 結合されたドキュメントができたら、それをディスクに保存したり、Web エンドポイントから返したり、ユーザーに配信する前にヘッダーとフッターを追加したりできます。

PdfDocument.FromFile はファイル パスと URI 文字列の両方で機能するため、クラウド BLOB ストレージに保存されているドキュメントは URL によって直接読み込むことができることに注意してください。 マージ操作は非破壊的です。呼び出し後、2 つのソース オブジェクトは変更されません。

複数の PDF ファイルを一度に結合するにはどうすればよいでしょうか?

2 つ以上のドキュメントを結合する必要がある場合は、オーバーロードされた List<PdfDocument> (または任意の IEnumerable<PdfDocument>) を Merge メソッドに渡します。 このアプローチでは、コード構造を変更することなく、3 つのファイルから数百のファイルに拡張できます。

using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
$vbLabelText   $csharpLabel

マージされたPDFドキュメント

 IronPDFを使用した.NET PDF マージタスク: 完全な C# ガイド: 画像 5 - 新しくマージされた出力 PDF ファイル

IronPDF はページをリスト順に処理するため、List<PdfDocument> 内のドキュメントの順序が出力のページの順序を直接制御します。 結合後にページの順序を変更する必要がある場合は、ページ管理 API を使用すると、任意の PdfDocument から個々のページをコピー、移動、または削除できます。

このパターンは、実行時に生成されるドキュメントにも適用できます。例えば、レポートの各セクションのHTMLをPDFに変換し、中間ファイルをディスクに書き込むことなく、結果のPdfDocumentオブジェクトを結合することができます。 ソース コンテンツが Word 文書から生成された場合、 DOCX から PDF への変換にも同じことが当てはまります。

MemoryStream を使用して PDF ファイルを結合するにはどうすればよいですか?

ディスクへの書き込みが不可能または遅すぎる Web サービスやサーバーレス関数では、メモリ内処理が必要です。 IronPDF は、バイト配列からの PDF ドキュメントの読み込みをサポートし、結合された結果を Stream プロパティを介して MemoryStream として公開します。

using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
$vbLabelText   $csharpLabel

マージされた契約ファイル

 IronPDFを使用した.NET PDF マージタスク: 完全な C# ガイド: 画像 6 - マージされた契約書 PDF ドキュメント

Stream プロパティは、先頭に配置された MemoryStream を返します。このコードは、HTTP レスポンスへの書き込みや、別の処理ステップへの引き渡しに使用できます。ASP.NET ASP.NET Coreコントローラーでは、 File(outputStream, "application/pdf", "merged.pdf") を直接返すことができます。 一時ファイルは作成されないため、クリーンアップが簡素化され、高スループットのシナリオでのディスク オーバーヘッドが削減されます。

IronPDF は、文字列ファイル パス、バイト配列、およびストリームを入力ソースとして互換的に受け入れるため、同じマージ呼び出しでこれらを組み合わせて使用​​できます。 データベース BLOB からロードされたドキュメントは、中間の変換手順なしで URL から取得されたドキュメントと結合できます。

マージされたファイルではブックマークとナビゲーションはどのように保持されますか?

PDF ファイルを結合すると、 IronPDF は各ソース ドキュメントのブックマーク構造を引き継ぎます。 読者は、結合された出力のナビゲーション ペインですべての結合ファイルの完全な目次を確認できるため、異なるソース ドキュメントから生成されたセクション間を簡単に移動できます。 PDF 仕様のブックマークはドキュメント アウトライン ディクショナリに保存され、 IronPDF はすべてのマージされたソースに対してこの構造を正しく再構築します。

ブックマークの保存は、追加の構成なしで自動的に行われます。 ソース ファイルにネストされたブックマーク (章やサブセクション) が含まれている場合、マージされた出力でも階層が維持されます。 ドキュメントごとに個別のブックマーク ツリーではなく、統合された目次を必要とする結合されたドキュメントの場合、目次 API を使用すると、結合後にカスタム ナビゲーション構造を構築できます。

ソース ドキュメントがブックマーク メタデータなしで作成された場合、マージされた出力にはそのセクションのアウトライン エントリは含まれません。 コンプライアンスまたはアーカイブのコンテキストでマージされたファイルを配信する前に、結果の PdfDocumentOutlineManager プロパティを調べて、どのブックマークが引き継がれているかを確認します。 プログラムによってブックマーク ラベルの名前を変更したり、エントリを並べ替えたり、異なるソース ドキュメントのコンテンツを論理階層に橋渡しする新しい項目を挿入したりできます。 長期アーカイブのためにPDF/A 変換も必要なワークフローの場合は、各ソースに個別ではなく、マージ後にコンプライアンス変換手順を適用します。 最終的な結合ドキュメントを 1 回のパスで変換すると、効率が向上し、追加の編集が必要になる可能性のある出力の再変換を回避できます。

結合後、ページ番号付け機能を使用して結合されたドキュメントにページ番号を追加することもできます。これは、出力が複数のソースから数十ページに及ぶ場合に便利です。

結合された PDF にパスワード保護を適用するにはどうすればよいですか?

マージ後、結果の PdfDocument は、ユーザーと所有者のパスワードを適用し、印刷、コピー、および編集の権限を制限するための SecuritySettings を公開します。

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
$vbLabelText   $csharpLabel

UserPassword は読者がドキュメントを表示する前にプロンプ​​トを表示し、OwnerPassword は権限の変更をゲートします。 パスワード保護は、印刷制限、コピー防止フラグ、デジタル署名と組み合わせることができます。 権限オプションの詳細な説明については、 PDF セキュリティ チュートリアルで利用可能なすべての設定が説明されています。

ソース ドキュメント自体がパスワードで保護されている場合、所有者の資格情報があれば、 IronPDF は結合前に暗号化された PDF を復号化できます。 つまり、手動でロックを解除することなく、異なるベンダーやシステムからの保護されたドキュメントを、単一の再保護された出力に統合できます。

結合された PDF のファイル サイズを縮小するにはどうすればよいですか?

大きなドキュメントを多数の画像と結合すると、保存または送信するには大きすぎる出力が生成されることがあります。 IronPDF のPDF 圧縮 API は、テキストの鮮明さを維持しながら、埋め込まれた画像を低品質設定で再圧縮することで、ファイル サイズを大幅に削減できます。

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
$vbLabelText   $csharpLabel

CompressImages への整数引数は品質のパーセンテージです。50 から 75 までの値は、テキスト コンテンツの目に見える劣化なしに、画像の多いドキュメントのファイル サイズを通常 40 ~ 70% 削減します。 ベクター グラフィックスと最小限のラスター イメージを含むドキュメントの場合、節約できるサイズは小さくなりますが、呼び出しを含めても安全です。

PDFマージの一般的な使用例は何ですか?

PdfDocument.Merge API は、運用中 for .NETアプリケーションにおけるさまざまなドキュメント ワークフローに適合します。

一般的なPDF結合シナリオとそれぞれのIronPDFアプローチ
使用事例入力ソース推奨されるアプローチ
年次財務報告書ディスク上の4つの四半期ごとのPDFファイル`Merge(List)`によるリストの結合
複数部構成の法的契約基本契約 + データベースからの修正バイト配列のロード + メモリ内マージ
請求書の統合明細項目ごとの HTML 形式の請求書項目ごとにHTMLからPDFに変換し、リストを結合する
自動レポート配信DOCXとPDFの混在ソースファイルDOCXからPDFへの変換と結合
安全な文書アーカイブ複数部門レポートリストのマージ + `SecuritySettings`

結合前にドキュメントを選択的に抽出する必要があるワークフローの場合、分割 PDF API を使用してソース ドキュメントから特定のページ範囲を抽出できます。 PDF ファイル間でページを直接コピーできます。これは、大きなドキュメントの特定のセクションのみを結合された出力に表示する必要がある場合に便利です。

IronPDF は、下流処理のために結合されたドキュメントからテキストと画像を抽出し、大規模なデータ パイプラインの中心的なドキュメント アセンブリ ステップとして適しています。

次のステップは何ですか?

IronPDF の PdfDocument.Merge メソッドは、2 つのファイルの結合、複数のファイルのリストの結合、メモリ内処理、パスワードで保護された出力、結合後の圧縮など、 .NET PDF 結合シナリオの全範囲を最小限のコードでカバーします。 すべてのアプローチでは、入力ソースの種類に関係なく、一貫した同じ API が使用されます。

無料トライアルを開始して、これらの例を独自のプロジェクトで実行してください。 実稼働環境での展開については、チームの規模と使用状況に適したライセンス オプションを確認してください

マージ サポートを追加した後、関連するドキュメント操作を調べます。PDFを個別のファイルに分割したり複数ページの出力にページ番号を追加したり、マージされたドキュメント内のすべてのページに透かしを適用したりします

今IronPDFを始めましょう。
green arrow pointer

よくある質問

C#で2つのPDFファイルをマージするにはどうすればよいですか?

各ファイルをPdfDocument.FromFileでロードし、PdfDocument.Merge(pdfA, pdfB)を呼び出して結果をmerged.SaveAsで保存します。

どうやって.NETで2つ以上のPDFファイルを結合しますか?

List<PdfDocument>を作成し、全てのソースドキュメントを含めてPdfDocument.Merge(list)に渡します。出力はリストの順序を保持します。

ディスクに書き込むことなく、メモリ内でPDFを結合できますか?

はい。バイト配列からnew PdfDocument(bytes)でドキュメントをロードし、それらを結合し、結果にディスク書き込みしないためにmerged.Streamを介してアクセスします。

IronPDFはPDFを結合するときにブックマークを保持しますか?

はい。IronPDFは全てのソースドキュメントからブックマーク(アウトライン)構造を自動的に結合した出力に持ち越し、ネストされたブックマーク階層も含みます。

C#で結合したPDFにパスワード保護を設定するにはどうすればいいですか?

結合後にmerged.SecuritySettings.UserPasswordでリーダーパスワードを設定し、merged.SecuritySettings.OwnerPasswordで権限パスワードを設定し、SaveAsを呼び出します。

結合したPDFのファイルサイズをどうやって縮小しますか?

保存前に、品質値を50から75の間で指定してmerged.CompressImages(quality)を呼び出します。これにより埋め込まれたラスタ画像が再圧縮され、画像が多い文書では通常40-70%のファイルサイズ縮小を実現します。

IronPDFは暗号化されたPDFファイルを結合できますか?

はい。IronPDFはオーナーパスワードがある場合に暗号化されたPDFを読み込み、結合できます。結合する前にPdfDocument.FromFile(path, password)を使用してファイルを解除します。

IronPDFの結合APIはASP.NET Coreで動作しますか?

はい。結合結果は任意のASP.NET CoreコントローラアクションからFile(merged.Stream, "application/pdf", "merged.pdf")として返すことができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me