.NETでPDFからテキストを抽出する方法

.NETでPDFからテキストを抽出する方法

.NET で PDF からテキストを抽出する方法

このガイドでは、absorber API を使用した PDF ページからのテキスト抽出について説明します。


前提条件

要件詳細
Runtime.NET 8.0 以降
Packagedotnet 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フォント検索

参照

 日本語