NET で PDF から構造化されたデータとテーブルを抽出する方法

NET で PDF から構造化されたデータとテーブルを抽出する方法

PDF からテーブルや構造化されたデータを抽出することは、アナリスト、会計士、およびレポートや財務報告に取り組むすべての人にとって一般的な課題です. .NET の Aspose.PDF.Plugin は、フライトテキスト、CSV、または JSON などのタブレットを検出、パルシング、エクスポートするためのプログラミングオプションを提供しています.

PDFテキストにおける表の識別

  • シンプルなPDF: 明確な細胞の境界線(タブ、スペース、またはライン分解器)を持つテーブルは、抽出が最も簡単です.
  • ビジュアルインスペクション: 原料または純粋なテキストを抽出し、一貫した順/列パターンを検証します.
  • ヘウリスティック・パルシング: 論理(例えば、定期的な表現、デリメーター)を使用して、抽出されたテキストから可能な行や列を特定します.

例: CSV としてテーブルを輸出する

using Aspose.Pdf.Plugins;
using System.IO;

string input = @"C:\Docs\financial-report.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
options.AddInput(new FileDataSource(input));
string extracted = extractor.Process(options).ResultCollection[0].ToString();

// Simple parsing: Assume rows separated by '\n', columns by tabs or spaces
var rows = extracted.Split('\n');
using (var writer = new StreamWriter(@"C:\Docs\extracted-table.csv"))
{
    foreach (var row in rows)
    {
        var columns = row.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries);
        writer.WriteLine(string.Join(",", columns));
    }
}

例:JSONとしてのテーブルの輸出

using System.Text.Json;
var table = rows
    .Where(r => r.Trim().Length > 0)
    .Select(r => r.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries))
    .ToList();

File.WriteAllText(@"C:\Docs\extracted-table.json", JsonSerializer.Serialize(table));

制限と先進的なヒント

  • Merged/Spanned Cells: ほとんどのプログラミング抽出は、合成またはマルチロー細胞を信頼性的に検出することができず、手動レビューまたはカスタマイズされた論理が必要になる可能性があります.
  • **複雑なテーブル:**画像、グラフィック、または不規則なレイアウトを搭載したタブレットは、先進的なパルシングまたはビジュアルテープ抽出ツールを必要とします.
  • 正確性: 抽出は、シンプルで構造化されたテーブルで最善です; 常に出力を検討し、あなたのデータにパルシング論理を調整します.

ユースケース

  • 財務分析と監査(抽出レジャー、支出表)
  • 調査およびフィードバックデータ(パルセ・マルク・レッスンテーブル)
  • 遺産PDFからデータベースまたはExcelへのデータ移行

よくある質問

**Q:合併細胞は自動的に検出または処理できますか?**A: 信頼性が低い - 混合/分裂した細胞は通常、抽出後に手動修正または視覚検査を必要とします.

**Q:データ抽出は常に100%正確ですか?**A: いや、結果はテーブル構造、フォーマット、および PDF 常に抽出されたテーブルをチェックし、必要に応じてカスタマイズされたルールやスクリプトを使用して掃除します.

**Q:テーブル抽出のための最適なモードは何ですか?**A: 構造化されたテーブルのための純粋なモードからスタートします. 原材料は、データ採掘やカスタマイズされたヘウリスティックに役立ちます.

Pro ヒント: エクストラクションを繰り返すには、各レポート テンプレートのパルシング ロジックをきれいにします CSV そして JSON 最大限の柔軟性.

 日本語