.NETでPDFからテキストを抽出する方法
.NET で PDF からテキストを抽出する方法
このガイドでは、absorber API を使用した PDF ページからのテキスト抽出について説明します。
前提条件
| 要件 | 詳細 |
|---|---|
| Runtime | .NET 8.0 以降 |
| Package | dotnet add package Aspose.Pdf.Foss |
ページからすべてのテキストを抽出する
TextAbsorber はページ上のすべてのテキストを単一の文字列に収集します。インスタンスを作成し、Page.Accept に渡し、Text プロパティから結果を読み取ります。
位置情報なしでプレーンテキスト出力が必要な場合、これが最もシンプルなアプローチです。
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);構造化テキストフラグメントを抽出
テキストと一緒に位置、フォント、サイズのメタデータが必要な場合は、代わりにTextFragmentAbsorberを使用してください。各TextFragmentは、Positionプロパティを通じてバウンディング座標を公開します。
var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"{fragment.Text} at ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
}正規表現で検索
TextFragmentAbsorber に正規表現パターンを渡して、一致するテキストをすべてのページで検索します
これは、電話番号、日付、またはその他
構造化データパターンを文書内で見つけるのに便利です。
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);主要クラス
| クラス | 目的 |
|---|---|
TextAbsorber | すべてのテキストを文字列として抽出 |
TextFragmentAbsorber | 構造化テキスト抽出 |
TextFragment | 位置とフォント情報付きテキスト |
FontRepository | フォント検索 |