C#でPDFファイルにタグを付ける方法|フォームアプリのサンプル

PDFファイルを整理したり、特定の情報を分類したりする際に便利なのが「タグ機能」です。ビジネスシーンでも、契約書や資料の分類、検索性の向上にタグは非常に役立ちます。この記事では、C#を使ってPDFファイルにタグを追加する方法を解説します。さらに、操作性の良いWindowsフォームアプリを作成し、簡単にタグ付け作業ができるように仕上げていきます。プログラミング初心者の方にもわかりやすいように、コード付きでステップごとに説明していきますので、ぜひ最後までご覧ください。


PDFファイルに「タグを付ける」とは?

PDFファイルにタグを付けるというのは、一般的には「メタデータ」としてキーワードやカテゴリ情報を埋め込むことを指します。これにより、ファイル検索時にキーワードで素早く見つけたり、整理分類することができます。

PDFのタグ付けには主に以下の2つの方法があります。

  • PDF内部のメタデータにキーワードを追加する
  • ファイルの外部情報(例:データベースやテキストファイル)にタグを紐づける

この記事では前者、すなわちPDF自体にタグ情報(キーワード)を埋め込む方法を採用します。


開発に必要なライブラリと環境

C#でPDFファイルにタグを付けるには、PDFを操作できる外部ライブラリが必要です。今回は以下の環境を前提とします。

  • 開発環境:Visual Studio 2022 以降
  • .NETバージョン:.NET Framework 4.7以上 または .NET 6以降
  • 使用ライブラリ:iText7(NuGetで追加)

NuGetでiText7を追加する手順

Visual Studio の「ソリューションエクスプローラー」からプロジェクトを右クリック → 「NuGet パッケージの管理」→「iText7」を検索し、インストールします。


Windowsフォームアプリの概要

このアプリでは、以下のような操作を実現します。

  1. PDFファイルを選択
  2. タグ(キーワード)を入力
  3. 「保存」ボタンでPDFにタグを追加

フォームのUIはシンプルに以下の構成にします。

  • ラベル:「ファイル選択」
  • ボタン:「ファイルを開く」
  • テキストボックス:ファイルパス表示
  • ラベル:「タグ入力」
  • テキストボックス:タグ入力欄
  • ボタン:「タグを追加して保存」

Windowsフォームアプリの作成手順

1. フォームデザインの作成

以下はフォームデザインに使用する主なコントロールです:

コントロール名前説明
LabellblFileファイルラベル
TextBoxtxtFilePathPDFのパスを表示
ButtonbtnSelectFileファイル選択ダイアログ
LabellblTagsタグ入力ラベル
TextBoxtxtTagsタグ入力欄
ButtonbtnSaveTagsタグ保存ボタン

2. コードの実装(C#)

以下に、基本的なコード例を示します。

using iText.Kernel.Pdf;
using iText.Kernel.XMP;
using iText.Kernel.XMP.Options;
using Microsoft.Win32;
using System;
using System.Windows.Forms;

namespace PdfTaggerApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}

private void btnSelectFile_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "PDF Files|*.pdf";
if (dialog.ShowDialog() == DialogResult.OK)
{
txtFilePath.Text = dialog.FileName;
}
}

private void btnSaveTags_Click(object sender, EventArgs e)
{
string filePath = txtFilePath.Text;
string tags = txtTags.Text;

if (string.IsNullOrWhiteSpace(filePath) || string.IsNullOrWhiteSpace(tags))
{
MessageBox.Show("ファイルとタグを入力してください");
return;
}

try
{
using (PdfReader reader = new PdfReader(filePath))
using (PdfWriter writer = new PdfWriter(filePath + ".tagged.pdf"))
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
var info = pdfDoc.GetDocumentInfo();
info.SetKeywords(tags);
}

MessageBox.Show("タグを追加しました(保存済)");
}
catch (Exception ex)
{
MessageBox.Show("エラー:" + ex.Message);
}
}
}
}

このコードでは、元のPDFファイルを読み込み、タグ(キーワード)をメタデータとして書き込み、新しいファイル(例:original.tagged.pdf)として保存します。


実行結果と操作イメージ

アプリを実行すると、次のような流れで操作が可能です。

  1. 「ファイルを開く」ボタンをクリックしてPDFを選択
  2. タグを「契約書」「2025年」「社内資料」などと入力
  3. 「タグを追加して保存」ボタンをクリック

完了後、同じディレクトリに新しいPDFファイルが生成され、そのPDFにタグがメタデータとして保存されます。


応用:タグ情報の読み取り表示

読み取り用のコードも簡単に紹介しておきます。

using (PdfReader reader = new PdfReader(filePath))
using (PdfDocument pdfDoc = new PdfDocument(reader))
{
var info = pdfDoc.GetDocumentInfo();
string keywords = info.GetKeywords();
MessageBox.Show("このPDFのタグ: " + keywords);
}

PDFのタグ情報を確認するためにも役立ちます。


まとめ

PDFファイルにタグを付けることで、業務効率が大幅に向上します。C#とiText7ライブラリを使えば、フォームアプリとして直感的に操作できるツールを簡単に作成できます。今回紹介した例を元に、複数ファイル対応やタグ履歴の保存機能など、さらに便利な機能を追加してカスタマイズしてみてください。

タイトルとURLをコピーしました