PDFテキスト抽出と分析のための無料C# .NET API
PDFファイルからテキスト、画像、メタデータ、PDF構造情報を簡単に抽出できる主要なオープンソース.NETライブラリ。PDFに新しいページ、テーブル、テキスト、図形を追加できます。
PdfPig ライブラリとは何ですか?
PdfPig は、C# で PDF ファイルの読み取り、解析、コンテンツ抽出を行うために設計されたオープンソースの .NET ライブラリです。Apache PDFBox を .NET エコシステム向けに移植したもので、PDF テキスト抽出、文書分析、低レベルの PDF 処理で広く利用されています。.NET Standard と複数の .NET バージョンをサポートしており、最新の開発環境に高い柔軟性を提供します。このライブラリは、文書インデックス作成、検索エンジン、AI/ML の文書前処理、OCR 後処理、請求書自動化、PDF アクセシビリティツール、データ抽出システムなどに非常に有用です。
PDFファイルは至る所にあります—契約書、レポート、請求書、電子書籍、銀行取引明細書、研究論文、そしてフォームです。PDFから構造化された情報を抽出することは、PDFが主にプレゼンテーション形式であり、意味的な文書形式ではないため、しばしば困難です。PdfPigは、生のテキストや単語、文字位置とバウンディングボックス、フォントやスタイリング情報、画像とメタデータ、文書レイアウトの詳細へのアクセスを開発者に提供することで、この問題を簡素化します。多くのPDFライブラリが主にPDFの生成に焦点を当てているのとは異なり、PdfPigは既存のPDF文書の読み取りに特化しています。これにより、検索エンジン、OCRパイプライン、請求書パーサー、文書分析ツール、コンプライアンスツール、またはコンテンツ抽出システムを構築する開発者にとって優れた選択肢となります。
PdfPig の開始方法
PdfPigライブラリはNuGetパッケージとして利用可能です。そのため、プロジェクトにPdfPigをインストールするにはNuGetの使用が強く推奨されます。インストールを成功させるには、以下のコマンドをご利用ください。
NuGet パッケージ マネージャーで PdfPig をインストール
// Package Manager
Install-Package PdfPig
// .NET CLI
dotnet add package PdfPig
手動でインストールすることもできます;最新のリリースファイルを GitHub リポジトリから直接ダウンロードしてください。
.NET を使用した PDF ドキュメントからのテキスト抽出
PdfPig の最も一般的な使用例の一つは、PDF ドキュメントからプレーンテキストを抽出することです。ソフトウェア開発者は PDF を開き、ページごとにテキストを読み取るか、全体のコンテンツを抽出できます。これは検索インデックス作成、キーワードスキャン、コンテンツ分析に特に有用です。以下は、C# .NET アプリケーション内でソフトウェア開発者が PDF ドキュメントからテキストを抽出する方法を示すシンプルな例です。まず PDF ファイルを開き、すべてのページを反復処理し、その後抽出されたテキストコンテンツを読み取ります。
C# API を使用して PDF ドキュメントからテキストを抽出する方法?
using UglyToad.PdfPig;
using (var document = PdfDocument.Open("sample.pdf"))
{
foreach (var page in document.GetPages())
{
string text = page.Text;
Console.WriteLine(text);
}
}
インタラクティブ フォームと埋め込みファイルの抽出
オープンソースの PdfPig ライブラリは、インタラクティブな Acrobat フォーム(AcroForms)の抽出と PDF 添付ファイル内に隠されたファイルの読み取りをネイティブにサポートしています。開発者はフォーム定義をグローバルにチェックし、チェックボックス、テキストフィールド、プッシュボタンなどの型付けされたインタラクティブフォーム要素を反復処理し、ドキュメント注釈内に埋め込まれたファイルの基礎となる生バイトデータにアクセスして、シームレスなシステム相互運用性を実現できます。
C# .NET ライブラリでインタラクティブフォームデータを抽出する方法は?
using System;
using System.Collections.Generic;
using UglyToad.PdfPig;
using UglyToad.PdfPig.AcroForms;
class Program
{
static void ExtractInteractiveContent(string pdfPath)
{
using (PdfDocument document = PdfDocument.Open(pdfPath))
{
// Extracting Interactive Form Data
if (document.TryGetForm(out AcroForm form))
{
foreach (var field in form.Fields)
{
Console.WriteLine($"Form Field Name: {field.Information.Name} | Type: {field.Type}");
}
}
// Extracting Embedded Documents/Attachments
if (document.Advanced.TryGetEmbeddedFiles(out IReadOnlyList embeddedFiles))
{
foreach (var file in embeddedFiles)
{
Console.WriteLine($"Found Attachment: {file.Name} ({file.Bytes.Count} bytes)");
// File.WriteAllBytes(file.Name, file.Bytes.ToArray()); // Save attachment locally
}
}
}
}
}
C# を使用したシームレスなマルチファイル PDF 結合
コンテンツ抽出を超えて、PdfPig はシンプルなドキュメント管理ユーティリティを提供します。PdfMerger クラスを利用することで、開発者は個別の独立した PDF 構造を単一の統合されたファイルバイト配列にまとめることができます。これにより、重い外部依存関係を .NET パイプラインに追加せずに、プログラムレポート、請求書、または顧客ステートメント文書を連結する効果的な方法が提供されます。以下の例は、.NET アプリケーション内で複数の PDF 文書を結合できる方法を示しています。
C# .NET アプリ内で複数の PDF ファイルを結合する方法は?
using System.IO;
using UglyToad.PdfPig.Writer;
class Program
{
static void MergeDocuments(string firstPdf, string secondPdf, string outputPdf)
{
// Consolidate files into a single continuous byte sequence
byte[] mergedFileBytes = PdfMerger.Merge(firstPdf, secondPdf);
// Output the combined file stream directly to disk
File.WriteAllBytes(outputPdf, mergedFileBytes);
}
}
PDF メタデータ、フォーム、注釈の読み取り
テキスト抽出を超えて、オープンソースの PdfPig ライブラリには、ドキュメントメタデータ(タイトル、著者、プロデューサー)、インタラクティブなフォームフィールド、ハイパーリンク、ブックマークを公開する機能が含まれています。これは、コンテンツとコンテキストの両方が必要なドキュメント分類システム、自動フォーム処理、コンテンツインデックス作成にとって非常に価値があります。