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

.NETでPDFをマージ:IronPDFで複数のファイルを結合する

 IronPDF for .NETブランドを使用して、複数の PDF ドキュメントを 1 つの PDF ファイルに結合する図

IronPDF を使用すると、 .NET開発者はわずか数行のコードで複数の PDF ファイルを 1 つのドキュメントに結合することができます。 既存の PDF、HTML コンテンツ、Web URL など、さまざまなソースをサポートし、スムーズなドキュメント統合を実現します。

複数の PDF ファイルを 1 つのドキュメントに結合することは、ビジネス アプリケーションでは一般的です。 レポートを統合したり、請求書をまとめたり、ドキュメント パッケージを組み立てたりする場合でも、プログラムでPDF ファイルを結合する機能により、時間が節約され、手作業の労力が軽減されます。 IronPDF は、最小限のコードで.NETアプリケーションでこのプロセスを簡素化する完全なPDF ライブラリです。

この記事では、基本的な 2 つのファイルの組み合わせから複数のドキュメントを動的に処理するまで、IronPDF のAPIを使用して PDF ドキュメントを結合する方法を学習します。 このライブラリは、ドキュメントの整合性を維持しながら PDF ファイルを効率的に結合する信頼性の高い方法を提供します。

ライブラリはどのようにインストールしますか?

開始するには、簡単なNuGetパッケージのインストールが必要です。 Visual StudioでPackage Manager Consoleを開き、実行してください:

Install-Package IronPdf
Install-Package IronPdf
SHELL

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

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

IronPDFは、複雑なPDFの操作をバックで処理し、アプリケーションのロジックに集中できるようにします。 このプロセスは、 .NET Core経由のLinuxを含むさまざまなオペレーティング システムと互換性があります。 詳細なインストール ガイドについては、 IronPDF のインストール ドキュメントをご覧ください。

なぜインストールがこんなに簡単なのでしょうか?

IronPDFは、外部依存関係のない単一のNuGetパッケージとして設計されており、 .NET開発者向けのプラグアンドプレイ ソリューションとなっています。 ライブラリは、PDF レンダリング エンジンと、さまざまな.NETバージョン間の互換性を自動的に処理します。

どのような前提条件が必要ですか?

Visual Studio または任意の .NET 互換 IDE と.NET Framework 4.6.2 以上または.NET Core 3.1 以上が必要です。 ライブラリは追加の構成なしで両方のフレームワーク バージョンで動作します。 Azure および AWS 環境へのデプロイメントもサポートしています。

2 つの PDF ドキュメントを結合するにはどうすればよいでしょうか?

最も基本的なマージ シナリオでは、既存の 2 つの PdfDocument オブジェクトを結合します。 それを達成する方法は次の通りです。

using IronPdf;

// Load the PDF documents
var pdf1 = PdfDocument.FromFile("Invoice1.pdf");
var pdf2 = PdfDocument.FromFile("Invoice2.pdf");

// Merge the documents
var merged = PdfDocument.Merge(pdf1, pdf2);

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

// Load the PDF documents
var pdf1 = PdfDocument.FromFile("Invoice1.pdf");
var pdf2 = PdfDocument.FromFile("Invoice2.pdf");

// Merge the documents
var merged = PdfDocument.Merge(pdf1, pdf2);

// Save the merged document
merged.SaveAs("Merged.pdf");
Imports IronPdf

' Load the PDF documents
Dim pdf1 = PdfDocument.FromFile("Invoice1.pdf")
Dim pdf2 = PdfDocument.FromFile("Invoice2.pdf")

' Merge the documents
Dim merged = PdfDocument.Merge(pdf1, pdf2)

' Save the merged document
merged.SaveAs("Merged.pdf")
$vbLabelText   $csharpLabel

このコードは、 IronPDFを使用してPDF を結合するシンプルさを示しています。 PdfDocument.FromFile() メソッドは、既存の PDF ファイルをメモリに読み込みます。 読み込まれたドキュメントは、プログラムで操作できるオブジェクトになります。

Merge() メソッドは、2 つ以上の PdfDocument オブジェクトを 1 つの PDF ファイルに結合します。2 番目のドキュメントのページは、各ページの元の順序と書式を維持しながら、1 番目のドキュメントのページの後に付加されます。

最後に、SaveAs() は結合されたドキュメントをディスクに書き込みます。 結果の PDF には、両方のソース ドキュメントのすべてのページが順番に含まれており、配布または追加の処理の準備が整っています。

PDF はどのような順序で結合されますか?

PDF は、Merge() メソッド パラメータに表示される順序どおりに結合されます。 最初の PDF のページが最初に表示され、その後に 2 番目の PDF のページが続きます。各ドキュメント内の元のページ順序は維持されます。 パラメータの順序を調整することでページの順序を制御できます。

ページの書式設定はどのように保存されますか?

IronPDF は、各ソース PDF のフォント、画像、レイアウト、インタラクティブ要素など、すべての元の書式を維持します。 マージ操作ではコンテンツが変更されたり再圧縮されたりすることはなく、ドキュメントの忠実性が保証されます。

マージ後のファイル サイズはどのくらいになるでしょうか?

左側の 2 つの別々の PDF ファイル (PdfOne と PdfTwo) が、右側の 1 つの結合された PDF ドキュメントに結合されているIronPDFインターフェースを示すスクリーンショット (赤い矢印で示されています)

結合された PDF のサイズは通常、個々のファイル サイズの合計と、結合されたドキュメント構造の最小限のオーバーヘッドの合計に等しくなります。 大きなファイルの場合は、マージ後に圧縮を適用することを検討してください。

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

実際のアプリケーションでは、2 つ以上のドキュメントを結合する必要があることがよくあります。 IronPDF は、List コレクションを使用してこのシナリオを処理します。

using IronPdf;
using System.Collections.Generic;
using System.IO;

// Create a list to store PDF documents
var files = new List<PdfDocument>();

// Get all PDF files from a directory
string[] fileNames = Directory.GetFiles(@"C:\Reports\", "*.pdf");

// Load each PDF file
foreach (var fileName in fileNames)
{
    files.Add(PdfDocument.FromFile(fileName));
}

// Merge all PDFs into one
var merged = PdfDocument.Merge(files);

// Save the combined document
merged.SaveAs("CombinedReports.pdf");
using IronPdf;
using System.Collections.Generic;
using System.IO;

// Create a list to store PDF documents
var files = new List<PdfDocument>();

// Get all PDF files from a directory
string[] fileNames = Directory.GetFiles(@"C:\Reports\", "*.pdf");

// Load each PDF file
foreach (var fileName in fileNames)
{
    files.Add(PdfDocument.FromFile(fileName));
}

// Merge all PDFs into one
var merged = PdfDocument.Merge(files);

// Save the combined document
merged.SaveAs("CombinedReports.pdf");
Imports IronPdf
Imports System.Collections.Generic
Imports System.IO

' Create a list to store PDF documents
Dim files As New List(Of PdfDocument)()

' Get all PDF files from a directory
Dim fileNames As String() = Directory.GetFiles("C:\Reports\", "*.pdf")

' Load each PDF file
For Each fileName In fileNames
    files.Add(PdfDocument.FromFile(fileName))
Next

' Merge all PDFs into one
Dim merged As PdfDocument = PdfDocument.Merge(files)

' Save the combined document
merged.SaveAs("CombinedReports.pdf")
$vbLabelText   $csharpLabel

このコードは、Directory.GetFiles() を使用して、指定されたフォルダー内のすべての PDF ファイルを自動的に検出し、個々のファイル名をハードコードする必要がなくなります。 Microsoftのドキュメントによると、a href="ファイルオペレーションに関するこのメソッド" target="_blank">https://learn.microsoft.com/en-us/dotnet/api/system.io.directory.getfiles">ファイルオペレーションに関するこのメソッドが効率的にファイルパスを取得します。

検出された各 PDF ファイルは PdfDocument として読み込まれ、 List コレクションに追加されます。 このアプローチは、3つのファイルのマージ、あるいは300ファイルのマージに関係なく効率的にスケールします。 Merge() メソッドはリスト全体を受け入れ、すべてのソース ドキュメントを 1 回の操作で処理して 1 つの新しいドキュメントを作成します。

foreach ループは、複数の PDF ファイルを反復処理するためのクリーンな方法を提供します。 ここでフィルタリング ロジックを追加して、命名パターン、日付、その他の基準に基づいて特定のファイルを選択できます。 このパターンは、月次レポートのコンパイルやドキュメントのアーカイブなどのバッチ処理シナリオに適しています。

一度にいくつの PDF を結合できますか?

IronPDF は、主に使用可能なシステム メモリによって制限されますが、1 回のマージ操作で数百の PDF を処理できます。 大規模なバッチ処理で最適なパフォーマンスを得るには、ファイルを50~100個単位で処理することを検討してください。Microsoft のメモリ管理ガイダンスによると、ドキュメントオブジェクトを迅速に解放することでスループットを維持できます。 非同期操作を実装すると、パフォーマンスをさらに向上できます。

大きなファイルコレクションを処理する最適な方法は何ですか?

大規模なコレクションの場合は、進行状況を追跡しながらバッチ処理を実装し、非同期操作の使用を検討してください。 サイズまたは日付に基づいてファイルを事前にフィルタリングし、マージプロセスを改善します。

結合する前に PDF を並べ替えるにはどうすればよいでしょうか?

PDF を読み込む前に、ファイル リストで LINQ または配列の並べ替えメソッドを使用します。 一般的な並べ替え方法には、アルファベット順、作成日、または最終的なドキュメントの順序を制御するためのカスタム命名規則などがあります。

異なるソースからの PDF ファイルを結合するにはどうすればよいでしょうか?

場合によっては、さまざまなソースからの PDF ファイルを結合する必要があります。たとえば、動的に生成されたコンテンツを既存のテンプレートとマージするなどです。 IronPDF がこのパターンを処理する方法は次のとおりです。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Create a PDF from HTML
string html = @"<h1>Cover Page</h1>
               <p>Example PDF From Multiple Sources</p>
               <div style='page-break-after: always;'></div>";
var coverPage = renderer.RenderHtmlAsPdf(html);

// Load an existing PDF report
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a summary from URL
var summary = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

// Merge all three sources
var finalDocument = PdfDocument.Merge(new[] { coverPage, pdf, summary });

// Save the complete document
finalDocument.SaveAs("MultipleSources.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Create a PDF from HTML
string html = @"<h1>Cover Page</h1>
               <p>Example PDF From Multiple Sources</p>
               <div style='page-break-after: always;'></div>";
var coverPage = renderer.RenderHtmlAsPdf(html);

// Load an existing PDF report
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a summary from URL
var summary = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

// Merge all three sources
var finalDocument = PdfDocument.Merge(new[] { coverPage, pdf, summary });

// Save the complete document
finalDocument.SaveAs("MultipleSources.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Create a PDF from HTML
Dim html As String = "<h1>Cover Page</h1>
                      <p>Example PDF From Multiple Sources</p>
                      <div style='page-break-after: always;'></div>"
Dim coverPage As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Load an existing PDF report
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")

' Create a summary from URL
Dim summary As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")

' Merge all three sources
Dim finalDocument As PdfDocument = PdfDocument.Merge(New PdfDocument() {coverPage, pdf, summary})

' Save the complete document
finalDocument.SaveAs("MultipleSources.pdf")
$vbLabelText   $csharpLabel

この例では、さまざまな PDF ソースを処理する際の IronPDF の汎用性を示します。 ChromePdfRenderer クラスはHTML から PDF への変換を可能にし、アプリケーション データから動的な表紙やフォーマットされたコンテンツを生成するのに最適です。 レンダラーは、W3C仕様で概説されている現代のWeb標準をサポートします。

RenderHtmlAsPdf() メソッドは、完全な CSS スタイルとJavaScriptをサポートし、HTML 文字列を直接 PDF に変換します。 RenderUrlAsPdf() メソッドは、Web コンテンツを取得して変換します。ライブ データや外部リソースを組み込むのに役立ちます。 詳細については、HTML から PDF へのチュートリアルをご覧ください。

これらのレンダリング方法を既存の PDF ドキュメントと組み合わせることで、洗練されたドキュメント ワークフローを作成できます。 このアプローチは、レポートにブランド化された表紙を追加したり、契約書に法的免責事項を追加したり、ユーザーが生成したコンテンツとテンプレートを組み合わせたりするなどのシナリオに適しています。

IronPDF はどのようなソース タイプをサポートしていますか?

IronPDF は、ファイル、HTML 文字列、 URLストリーム、バイト配列からの PDF のマージをサポートしています。 この柔軟性により、データベース、API、Web サービス、ローカル ストレージのコンテンツを 1 つの操作で組み合わせることができます。

さまざまなページ サイズをどのように処理しますか?

IronPDF は、さまざまなページ サイズと方向の PDF を自動的に処理します。 各ページは結合されたドキュメント内で元の寸法を維持し、ソースの違いに関係なく適切な表示を保証します。

結合中にヘッダーまたはフッターを追加できますか?

請求書の表紙とWikipediaの記事を組み合わせた結合PDF文書の例。プログラムによるPDF結合の結果を示し、ページ番号と視覚的なインジケーターで文書のマルチソース性を示しています。

はい、結合後の文書にヘッダー、フッター、透かしを適用できます。 IronPDF の後処理機能を使用して、すべての結合されたコンテンツに一貫したブランド化またはページ番号を追加します。

PDF 結合アプローチをどのように比較しますか?

適切なマージ戦略の選択はシナリオによって異なります。 以下の表は、3 つの主なアプローチをまとめたものです。

IronPDFでの PDF 結合アプローチ
アプローチ 最適な用途 キーメソッド スケーラビリティ
2ファイルのマージ シンプルな請求書またはレポートの統合 `PdfDocument.Merge(pdf1, pdf2)` 数個のファイルまで
リストベースのマージ 一括処理されたレポートのディレクトリ `PdfDocument.Merge(fileList)` 数百のファイル
複数ソースのマージ HTML、URL、ファイルコンテンツを組み合わせる `ChromePdfRenderer` + `Merge()` 動的コンテンツパイプライン

それぞれのアプローチは同じ Merge() メソッド シグネチャを共有するため、戦略を切り替えるのに必要なコードの変更は最小限です。 API リファレンスには、すべてのオーバーロードが詳細に文書化されています。

PDF に結合後の処理を追加するにはどうすればよいですか?

マージ後、多くのワークフローでは追加のドキュメント レベルの操作が必要になります。 IronPDF は、クリーンかつチェーン可能な API を通じてこれらをサポートします。

using IronPdf;
using IronPdf.Editing;

var pdf1 = PdfDocument.FromFile("Report-January.pdf");
var pdf2 = PdfDocument.FromFile("Report-February.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);

// Add a text-based header across all pages
var headerStamper = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;font-size:10px;'>Quarterly Report</div>"
};
merged.AddHtmlHeadersAndFooters(headerStamper);

// Apply password protection
merged.SecuritySettings.UserPassword = "YourPassword";
merged.SecuritySettings.OwnerPassword = "OwnerSecret";

// Save the final, protected document
merged.SaveAs("QuarterlyReport_Protected.pdf");
using IronPdf;
using IronPdf.Editing;

var pdf1 = PdfDocument.FromFile("Report-January.pdf");
var pdf2 = PdfDocument.FromFile("Report-February.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);

// Add a text-based header across all pages
var headerStamper = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;font-size:10px;'>Quarterly Report</div>"
};
merged.AddHtmlHeadersAndFooters(headerStamper);

// Apply password protection
merged.SecuritySettings.UserPassword = "YourPassword";
merged.SecuritySettings.OwnerPassword = "OwnerSecret";

// Save the final, protected document
merged.SaveAs("QuarterlyReport_Protected.pdf");
Imports IronPdf
Imports IronPdf.Editing

Dim pdf1 = PdfDocument.FromFile("Report-January.pdf")
Dim pdf2 = PdfDocument.FromFile("Report-February.pdf")

Dim merged = PdfDocument.Merge(pdf1, pdf2)

' Add a text-based header across all pages
Dim headerStamper As New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:right;font-size:10px;'>Quarterly Report</div>"
}
merged.AddHtmlHeadersAndFooters(headerStamper)

' Apply password protection
merged.SecuritySettings.UserPassword = "YourPassword"
merged.SecuritySettings.OwnerPassword = "OwnerSecret"

' Save the final, protected document
merged.SaveAs("QuarterlyReport_Protected.pdf")
$vbLabelText   $csharpLabel

このパターンは、単一の結合されたドキュメント オブジェクトに後処理手順を重ねる方法を示しています。 ヘッダーとフッターの API を使用すると、一貫したブランドを適用できると同時に、セキュリティ設定により機密文書を不正アクセスから保護できます。 同じワークフローでデジタル署名を追加したり、 PDF/A 準拠を適用したりすることもできます。

結合された PDF に透かしを追加するにはどうすればよいでしょうか?

Merge() を呼び出した後にウォーターマーク APIを使用します。 透かしはテキストベースまたは画像ベースにすることができ、選択したページまたはドキュメント全体に適用できます。

結合された文書を分割するにはどうすればよいでしょうか?

IronPDF の分割機能を使用すると、任意の PdfDocument オブジェクトからページ範囲を抽出できます。 これは、大きな結合ドキュメントの受信者ごとのサブセットを作成する場合に便利です。

大規模なバッチのマージの進行状況をどのように追跡しますか?

PdfDocument.FromFile() 呼び出しをカウンター変数を含むループでラップします。 本当に大規模なバッチの場合は、バックグラウンドで何百ものファイルを処理しながらアプリケーションの応答性を維持するために、非同期 APIを検討してください。

.NETでの PDF 結合の重要なポイントは何ですか?

IronPDF は、 .NETで PDF ファイルを結合するタスクを、最小限のコードで実行できるプロセスに変換します。 単純な2つのファイルの組み合わせから、複雑なマルチソースドキュメントの組み立てまで、ライブラリは技術的な複雑さを処理しつつ直感的なAPIを提供します。 単一のファイルで作業する場合でも、大量のドキュメントを処理する場合でも、 IronPDF はマージ プロセス全体を通じて最終ドキュメントの整合性を維持します。

このチュートリアルの例では、PDF マージ機能を.NETアプリケーションに統合する方法を示します。 ドキュメント管理システムの構築、レポート生成の自動化、ユーザーアップロードの処理など、 IronPDF はさまざまな入力ソースからの PDF ファイルを効率的に結合するために必要なツールを提供します。

プロジェクトでPDFマージを実装する準備ができましたか? まずは無料トライアルでIronPdfの全機能をお試しください。 実稼働環境での展開の場合は、ニーズに最適なライセンス オプションを検討してください。 完全なドキュメントには、透かしの追加、セキュリティの適用、 PDF ドキュメントの分割などの高度な機能が説明されています。

よくある質問

.NETでIronPDFを使ってPDFファイルをマージするには?

IronPDFは開発者が.NETアプリケーションで複数のPDFファイルを1つのドキュメントにマージするためのシンプルなAPIを提供します。これはドキュメントをシームレスに結合するMergePDFメソッドを使うことで実現できます。

PDF 結合に IronPDF を使用する利点は何ですか?

IronPDFは分かりやすいAPIを提供することでPDFファイルを結合するプロセスを簡素化し、表紙の追加をサポートし、.NETアプリケーションでPDFワークフローの自動化を可能にします。

IronPDFを使ってPDFワークフローを自動化できますか?

IronPDFは、.NETアプリケーション内でドキュメントのマージやカバーページの追加などをサポートする堅牢なAPIを提供し、PDFワークフローの自動化を可能にします。

IronPDFでPDFをマージする際に表紙を追加することはできますか?

もちろんです。IronPDFを使えば、複数のPDFファイルをマージする際に簡単に表紙を追加することができ、最終的なドキュメントのプレゼンテーションが向上します。

IronPDFはどのようなファイルフォーマットをサポートしていますか?

IronPDFは主にPDFファイルの結合をサポートしますが、結合前にPDFに変換できる他の様々なドキュメントフォーマットも扱うことができます。

IronPDFはPDFマージのエラーハンドリングを提供しますか?

はい、IronPDFは.NETアプリケーションでPDFマージ処理が堅牢で信頼できるように、包括的なエラー処理機能を備えています。

IronPDFを使ってマージされたPDF出力をカスタマイズできますか?

IronPDFはドキュメントのプロパティの設定、透かしの追加、セキュリティ設定の定義など、マージされたPDFの出力をカスタマイズするオプションを提供します。

IronPDFは大規模なPDFマージ作業に適していますか?

IronPDFは大規模なPDFマージタスクを効率的に処理するように設計されており、多数のドキュメントを処理する必要があるアプリケーションに適しています。

.NETアプリケーションでIronPDFを使用するためのシステム要件は何ですか?

IronPDFは.NET Frameworkと.NET Coreと互換性があり、最適なパフォーマンスのためにWindowsオペレーティングシステムが必要です。

既存 for .NETプロジェクトにIronPDFを統合するのは簡単ですか?

IronPDFを既存 for .NETプロジェクトに統合することは、シンプルなAPIと包括的なドキュメントのおかげで簡単です。

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

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね