C# で PDF から表を抽出する

PDF ファイルからテーブルを抽出することは、データの抽出や分析を行う際によく行われるタスクです。処理のためにテーブルを取得する場合でも、さらに使用するためにエクスポートする場合でも、このプロセスを自動化すると時間と労力を節約できます。このブログ記事では、C# で PDF からテーブルを抽出する方法、または抽出したデータを CSV ファイルにエクスポートする方法を紹介します。

この記事では、以下のセクションについて説明します。

PDF から表を抽出する理由

PDF ファイルは、ポータブルな形式で情報を共有するために広く使用されています。ただし、PDF ファイルは簡単に編集または操作できるように設計されていないため、表などの構造化データを抽出するのは難しい場合があります。C# でプログラム的に表データを抽出することで、データへのアクセス性が向上し、さまざまなアプリケーション間でのデータ交換に広く使用されている CSV などのさまざまな形式でデータを分析、変更、または保存できるようになります。

PDF テーブル抽出 - C# API 構成

以下の NuGet インストール コマンドを使用して Conholdate.Total for .NET を構成することで、PDF テーブルからデータを抽出できます。

PM> NuGet\Install-Package Conholdate.Total

C# で PDF から表を抽出する

このセクションでは、C# を使用して PDF ドキュメントからテーブルを抽出する手順を説明します。

  • PDF ドキュメントの読み込み: コードは、PDF ファイルを Document クラス オブジェクトに読み込むことから始まります。
  • Table Absorber: TableAbsorber クラスは、PDF の各ページの表を検出して吸収するために使用されます。
  • テーブル データの抽出: コードは見つかった各テーブルを反復処理し、テーブル内の各セルの内容を抽出して、構造化された形式で出力します。

この方法は、PDF ドキュメントから表形式のデータに効率的にアクセスし、プログラムで情報を操作できるようにします。以下のコード スニペットは、C# での表の抽出を示しています。

// ソースPDFドキュメントを読み込む
var filePath = "input.pdf";
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(filePath);
foreach (var page in pdfDocument.Pages)
{
    Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
    absorber.Visit(page);
    foreach (AbsorbedTable table in absorber.TableList)
    {
        Console.WriteLine("Table");
        foreach (AbsorbedRow row in table.RowList)
        {
            foreach (AbsorbedCell cell in row.CellList)
            {
                foreach (TextFragment fragment in cell.TextFragments)
                {
                    var sb = new StringBuilder();
                    foreach (TextSegment seg in fragment.Segments)
                        sb.Append(seg.Text);
                    Console.Write("{sb.ToString()}|");
                }
            }
            Console.WriteLine();
        }
    }
}

C# で PDF テーブル データを CSV に変換する

PDF からテーブル データを抽出したら、CSV などのよりアクセスしやすい形式で保存したい場合があります。CSV (カンマ区切り値) は、Microsoft Excel、Google Sheets、多くのデータ処理システムなどのアプリケーションで広くサポートされています。このセクションでは、C# で PDF テーブル データを CSV に変換します。

次の手順は、C# で PDF テーブルから CSV 形式にデータをエクスポートする方法を示しています。

  • PDF ドキュメントの読み込み: PDF ドキュメントは以前と同じように Document オブジェクトに読み込まれます。
  • ExcelSaveOptions: ExcelSaveOptions のインスタンスは、形式が CSV に設定された状態で作成されます。これにより、PDF のテーブル データが CSV ファイルとして直接エクスポートされるようになります。
  • CSV ファイルの保存: Save メソッドを呼び出して、PDF テーブル データを .csv ファイルにエクスポートします。

以下のコード サンプルは、C# で PDF テーブルを CSV 形式に変換する方法を示しています。

// PDF文書を読み込む
Document pdfDocument = new Document("input.pdf");

// ExcelSaveオプションオブジェクトをインスタンス化する
ExcelSaveOptions excelSave = new ExcelSaveOptions { Format = ExcelSaveOptions.ExcelFormat.CSV };

// 出力をXLS形式で保存する
pdfDocument.Save("PDFToXLS_out.xlsx", excelSave);

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしで API のさまざまな機能をテストできます。

まとめ

C# では、PDF から表を抽出し、そのデータを CSV 形式にエクスポートする作業を簡単かつ効率的に行うことができます。表の抽出を自動化する機能は、PDF から表形式のデータを分析したり、CSV などのより柔軟な形式で共有したりする必要がある場合に役立ちます。このブログ記事の手順に従うと、PDF ファイルから表データを簡単に取得して保存できます。このプロセスは、データ分析、レポート作成、または、固定された PDF ドキュメントから構造化されたデータを必要とするタスクで特に役立ちます。ご質問がある場合は、フォーラム からお問い合わせください。

参照