はじめに
複数のPDFファイルを結合する作業、手動でやっていると地味に時間がかかりますよね。
私もC#でPDF処理の自動化を考えていたところ、フォルダ内のPDFファイルをまとめて1つのPDFに結合する処理を実装してみました。
今回はその方法を詳しく紹介いたします。
実現したいこと
- フォルダの中にあるすべてのPDFファイルを1つのPDFに結合する
- 手動で選ばず、自動で結合対象を検出
- C#のボタン操作で簡単に実行できるようにしたい
使用ライブラリ:iTextSharp
PDF結合には、.NETでよく使われているライブラリ「iTextSharp」を使います。
NuGetから以下のコマンドでインストールできます:
mathematicaコピーする編集するInstall-Package iTextSharp
または、Visual Studio の NuGet パッケージマネージャーから「iTextSharp」と検索して追加してください。
ステップ①:PDFを結合するメソッドを作成
以下は、PDFファイルを結合するためのMergePDFsメソッドです。
using iTextSharp.text;
using iTextSharp.text.pdf;
private static void MergePDFs(List<string> inputFiles, string outputFile)
{
using (var fs = new FileStream(outputFile, FileMode.Create))
{
var document = new Document();
var copy = new PdfCopy(document, fs);
try
{
document.Open();
foreach (var inputFile in inputFiles)
{
var reader = new PdfReader(inputFile);
var pageCount = reader.NumberOfPages;
for (var i = 1; i <= pageCount; i++)
{
var page = copy.GetImportedPage(reader, i);
copy.AddPage(page);
}
reader.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (document.IsOpen()) document.Close();
}
}
}
ステップ②:ボタンクリックでPDF結合を実行
以下は、フォーム上のボタン(例:btn_merge)をクリックした際の処理です。
指定フォルダからPDFを検出し、結合ファイルを作成します。
private void btn_merge_Click(object sender, EventArgs e)
{
string pdfFolder = txtBox_folderpath.Text;
string savepdfFolder = txtBox_savefolderpath.Text;
// PDFファイルのリストを作成
List<string> pdfList = new List<string>();
foreach (string pdfFile in Directory.GetFiles(pdfFolder, "*.pdf"))
{
pdfList.Add(pdfFile);
}
// PDFファイルを結合
string outputFile = Path.Combine(savepdfFolder, "Merged.pdf");
MergePDFs(pdfList, outputFile);
MessageBox.Show("結合完了しました。");
}
構成例(フォーム)
txtBox_folderpath:PDFが入っているフォルダのパスを入力するテキストボックスtxtBox_savefolderpath:結合後のPDFを保存するフォルダパスを入力するテキストボックスbtn_merge:結合を実行するボタン
応用のヒント
- 複数のPDFをファイル名順に並べたい場合は、
Directory.GetFiles()の結果をOrderByなどでソートすると便利です - 結合後にパスワード付きPDFとして出力することも
iTextSharpで可能です - ヘッダー・フッターやページ番号の追加などもカスタマイズできます
まとめ
C#とiTextSharpを使えば、フォルダ内の複数PDFを一括で結合する処理が簡単に実現できます。
特に、日常的にPDFを扱う業務で、結合作業を自動化したい方には非常に有効です。
UIと連携すれば、クリック一つでPDFが結合される環境を構築できます。
少しでも参考になれば幸いです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
