IRONSOFTWAREHOME
IRONPDFの使用

How to Create an Azure PDF Generator Using IronPDF

Curtis Chau
Curtis Chau
Updated: 2026年4月23日

多くの業界では、PDFファイルはレポート、請求書、データテーブルなどの構造化文書を共有するための標準フォーマットです。 しかし、特にテーブルに関しては、PDFからデータを抽出するのはPDFフォーマットの特性上、難しい場合があります。 構造化データフォーマットとは異なり、PDFは主にプレゼンテーション用に設計されており、データ抽出のためではありません。

しかし、IronPDF(強力なC# PDF .NETライブラリ)を使用すれば、PDFからテーブルのような構造化データを簡単に抽出し、.NETアプリケーションで処理することができます。 この記事では、IronPDFを使用してPDFファイルからテーブルデータを抽出する方法をステップバイステップでガイドします。

PDFドキュメントからテーブルを抽出する必要があるのはいつですか?

テーブルは在庫管理、データ入力、降水量の記録など、データを構造化して表示するのに便利な方法です。このため、PDFドキュメントからテーブルやテーブルデータを抽出する必要がある理由も多くあります。 最も一般的な使用例のいくつかを以下に示します:

  • データ入力の自動化: PDFのレポートや請求書内のテーブルからデータを抽出することで、データベースやスプレッドシートの入力を自動化できます。
  • データ分析: 企業はPDFフォーマットで構造化されたレポートを受け取ることがよくあります。 テーブルを抽出すると、このデータをプログラムで分析できます。
  • 文書変換: テーブルデータをExcelやCSVのようなよりアクセスしやすいフォーマットに抽出することで、データの操作、保存、共有が容易になります。
  • 監査およびコンプライアンス: 法的または財務記録のために、PDFドキュメントからプログラムでテーブルデータを抽出することで、監査の自動化やコンプライアンスの確保に役立ちます。

PDFのテーブルはどのように機能しますか?

PDFファイルフォーマットでは、テーブルのような構造化された形式でデータを保存するネイティブな機能は提供されていません。 今日の例で使用するテーブルは、HTMLで作成された後、PDFフォーマットに変換されました。 テーブルはテキストと線としてレンダリングされるため、OCRソフトウェア(IronOCRなど)を使用しない限り、テーブルデータの抽出には内容の解析と解釈がしばしば必要です。

How to Extract Table Data from a PDF File in C#

このタスクをIronPDFで解決する方法を探る前に、PDF抽出を扱えるオンラインツールをまず探ってみましょう。 オンラインのPDFツールを使用してPDFドキュメントからテーブルを抽出するには、以下の手順に従います:

  1. 無料のオンラインPDF抽出ツールにアクセスする
  2. テーブルを含むPDFをアップロードする
  3. 結果を表示してダウンロードする

ステップ1: 無料のオンラインPDF抽出ツールにアクセスする

今日は、オンラインPDFツールの例としてDocsumoを使用します。 Docsumoは無料のPDFテーブル抽出ツールを提供するオンラインPDFドキュメントAIです。

C#でPDFファイルから表データを抽出する方法: 図1

ステップ2: テーブルを含むPDFをアップロードする

次に、"ファイルをアップロード"ボタンをクリックして、PDFファイルをアップロードして抽出します。 ツールは、PDFの処理を即座に開始します。

C#でPDFファイルから表データを抽出する方法: 図2

ステップ3: 結果を表示してダウンロードする

DocsumoがPDFの処理を終えると、抽出されたテーブルが表示されます。 ここで、行の追加や削除などのテーブルの構造に調整を加えることができます。 ここで、テーブルを別のPDF、XLS、JSON、またはTextとしてダウンロードできます。

C#でPDFファイルから表データを抽出する方法: 図3

IronPDFを使用したテーブルデータの抽出

IronPDFを使用すると、PDFからデータ、テキスト、グラフィックスを抽出し、それをプログラムでテーブルとして再構築することができます。 これを行うには、まずPDF内のテーブルからのテキストコンテンツを抽出し、そのテキストを使用してテーブルを行と列に解析する必要があります。 テーブルを抽出し始める前に、テーブル内のデータを抽出するIronPDFのExtractAllText()メソッドの動作を見てみましょう:

using IronPDF;

class Program
{
    static void Main(string[] args)
    {
        // Load the PDF document
        PdfDocument pdf = PdfDocument.FromFile("example.pdf");
        
        // Extract all text from the PDF
        string text = pdf.ExtractAllText();
        
        // Output the extracted text to the console
        Console.WriteLine(text);
    }
}

C#でPDFファイルから表データを抽出する方法: 図4

この例では、まずPdfDocumentクラスを使用してPDFドキュメントを読み込み、次に**ExtractAllText()**メソッドを使用して文書内のすべてのテキストを抽出し、最後にコンソールにテキストを表示します。

IronPDFを使用したテキストからのテーブルデータの抽出

PDFからテキストを抽出した後、テーブルはプレーンテキストの一連の行と列として表示されます。 このテキストを行の区切り(\n)に基づいて分割し、さらに列に分割するには、一貫したスペースまたはカンマやタブなどの区切り文字を使用します。 テキストからテーブルを解析する基本的な例を以下に示します:

using IronPDF;
using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        // Load the PDF document
        PdfDocument pdf = PdfDocument.FromFile("table.pdf");
        
        // Extract all text from the PDF
        string text = pdf.ExtractAllText();
        
        // Split the text into lines (rows)
        string[] lines = text.Split('\n');
        
        foreach (string line in lines)
        {
            // Split the line into columns using the tab character
            string[] columns = line.Split('\t').Where(col => !string.IsNullOrWhiteSpace(col)).ToArray();
            Console.WriteLine("Row:");
            
            foreach (string column in columns)
            {
                Console.WriteLine("  " + column); // Output each column in the row
            }
        }
    }
}

C#でPDFファイルから表データを抽出する方法: 図5

この例では、PDFドキュメントを読み込み、テキストを抽出するために、前述と同じ手順に従いました。 次に、抽出したテキストをline breaks(改行)に基づいて行に分割し、結果をlines配列に保管します。 foreachループを使用して配列内の行をループし、**line.Split('\t')を使用してタブ文字'\t'を区切りにして行をさらに列に分割します。 columns配列の次の部分であるWhere(col => !string.IsNullOrWhiteSpace(col)).ToArray()**は、余分なスペースにより生じる空の列をフィルタリングし、列を配列に追加します。

最後に、基本的な行と列の構造でテキストをコンソール出力ウィンドウに書き込みます。

抽出されたテーブルデータのCSVへのエクスポート

PDFファイルからテーブルを抽出することをカバーしたので、その抽出されたデータで何ができるかを見てみましょう。 テーブルをCSVファイルとしてエクスポートすることは、データ入力のようなタスクを自動化し、このようなテーブルデータを処理するための便利な方法です。 この例で、テーブルにはシミュレートされたデータを入れ、今回は一週間の毎日の降水量を、PDFから抽出し、CSVファイルにエクスポートしました。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using IronPDF;

class Program
{
    static void Main(string[] args)
    {
        string pdfPath = "table.pdf";
        string csvPath = "output.csv";
        
        // Extract and parse table data
        var tableData = ExtractTableDataFromPdf(pdfPath);
        
        // Write the extracted data to a CSV file
        WriteDataToCsv(tableData, csvPath);
        Console.WriteLine($"Data extracted and saved to {csvPath}");
    }

    static List<string[]> ExtractTableDataFromPdf(string pdfPath)
    {
        var pdf = PdfDocument.FromFile(pdfPath);
        
        // Extract text from the first page
        var text = pdf.ExtractTextFromPage(0); 
        var rows = new List<string[]>();
        
        // Split text into lines (rows)
        var lines = text.Split('\n');
        
        // Variable to hold column values temporarily
        var tempColumns = new List<string>();
        
        foreach (var line in lines)
        {
            var trimmedLine = line.Trim();
            
            // Check for empty lines or lines that don't contain table data
            if (string.IsNullOrEmpty(trimmedLine) || trimmedLine.Contains("Header"))
            {
                continue;
            }
            
            // Split line into columns. Adjust this based on how columns are separated.
            var columns = trimmedLine.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
            
            if (columns.Length > 0)
            {
                // Add columns to temporary list
                tempColumns.AddRange(columns);
                rows.Add(tempColumns.ToArray());
                tempColumns.Clear(); // Clear temporary list after adding to rows
            }
        }
        
        return rows;
    }

    static void WriteDataToCsv(List<string[]> data, string csvPath)
    {
        using (var writer = new StreamWriter(csvPath))
        {
            foreach (var row in data)
            {
                // Join columns with commas and quote each field to handle commas within data
                var csvRow = string.Join(",", row.Select(field => $"\"{field.Replace("\"", "\"\"")}\""));
                writer.WriteLine(csvRow);
            }
        }
    }
}

サンプルPDFファイル

C#でPDFファイルから表データを抽出する方法: 図6

出力CSVファイル

C#でPDFファイルから表データを抽出する方法: 図7

ご覧の通り、我々はPDFテーブルをCSVに正常にエクスポートしました。まず、テーブルを含むPDFをロードし、新しいCSVファイルパスを作成しました。 この後、var tableData = ExtractTableDataFromPdf(pdfPath)行を使用してテーブルを抽出しました。これはExtractTableDataFromPdf()メソッドと呼ばれます。 このメソッドは、テーブルが存在するPDFページ上のすべてのテキストを抽出し、それをtext変数に格納します。

その後、テキストを行と列に分割しました。 最終的に、この分割プロセスからの結果を返した後、抽出し分割したテキストを取って、それをStreamWriterを使用してCSVファイルに書き込む**static void WriteDataToCsv()**メソッドを呼び出します。

ヒントとベストプラクティス

PDFテーブルを使用する際には、いくつかの基本的なベストプラクティスを守ることで、エラーや問題に遭遇する可能性を最小限に抑えることができます。

  • PDFの前処理: 可能であれば、PDFを前処理して一貫したフォーマットを保証することで抽出プロセスを簡素化します。
  • データの検証: 常に抽出されたデータを検証して、正確性と完全性を確保します。
  • エラーの処理: テキスト抽出や解析が失敗した場合に備えて、try-catchブロックでコードをラップするなど、エラーハンドリングを実装します。
  • パフォーマンスの最適化: 大規模なPDFの場合、パフォーマンス問題を扱うためにテキスト抽出と解析を最適化することを検討します。

IronPDFのライセンス

IronPDFは異なるライセンスオプションを提供しており、ライセンスを決定する前にIronPDFが提供するすべての強力な機能を試すことができます。

結論

IronPDFを使用してPDFからテーブルを抽出することは、データの抽出を自動化し、分析を容易にし、ドキュメントをよりアクセスしやすい形式に変換する強力な方法です。 単純なテーブルから複雑で不規則な形式に至るまで、IronPDFはテーブルデータを効率的に抽出し処理するために必要なツールを提供します。

IronPDFを使用することで、自動データ入力、ドキュメント変換、データ分析などのワークフローを合理化できます。 IronPDFが提供する柔軟性と高度な機能は、様々なPDFベースのタスクを処理するための貴重なツールとなります。

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

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

bullet_checkedクレジットカードやアカウントの作成は不要です。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge related to IronPDF Product Demo

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

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