IRONSOFTWAREHOME

密集した表からの無順序テキスト抽出

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

密集した表またはフォームレイアウトから抽出されたテキストは乱雑に見えます。 隣接する行からの文字が混ぜ合わされており、例として"ユニーク番号123456789"が"U123456789nique Number"として抽出されます。

これは、密集したレイアウトに対するpage.Lines抽出の既知の制限です。 page.Linesは、構成できない組み込みの垂直許容差を使用して文字をグループ化します。 表セル内の2つの可視行がわずか1ポイントまたは2つだけ離れて座っている場合、グループ化器は両方の行を1つの論理行に折りたたみ、左から右へ文字を並べ替え、それらを連続して挿入します。 ExtractTextFromPage(i)メソッドはコンテンツストリーム順にデフォルト設定されていますが、フォームPDFでは視覚的な読み順と一致しない場合があります。

解決策

推奨: 調整可能なトレランスでTextChunksを使用する

BoundingBoxを公開しており、垂直位置でグループ化し、各行内を水平位置で並べ替えることができます:

using IronPdf.Pages;
using System.Text;

static string ExtractTextUsingTextChunks(IPdfPage page, double rowTolerance = 2.0)
{
    var rows = page.TextChunks
        .Where(c => !string.IsNullOrWhiteSpace(c.Contents))
        .GroupBy(c => Math.Round(c.BoundingBox.Top / rowTolerance) * rowTolerance)
        .OrderByDescending(g => g.Key);

    var extractedText = new StringBuilder();
    foreach (var row in rows)
    {
        var line = string.Join(" ",
            row.OrderBy(c => c.BoundingBox.Left)
               .Select(c => c.Contents.Trim())
               .Where(text => !string.IsNullOrWhiteSpace(text)));
        extractedText.AppendLine(line);
    }
    return extractedText.ToString();
}

rowTolerance = 2.0から始めます。 行がまだ結合される場合は、それを0.5まで下げてください。 より細かな制御のために、page.TextChunksに置き換えます。

代替案: 視覚順序での抽出

コンテンツストリーム順のみが間違っているPDFの場合:

pdf.ExtractTextFromPage(i, TextExtractionOrder.VisualOrder);

行が非常に近接しているPDFの場合、TextChunksアプローチは厳密な許容差をよりうまく処理します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 20,878,335バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。