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 最大限の柔軟性.