IRONPDFの使用

C# で PDF テーブルを読む方法

Kannaopat Udonpant
カンナパット・ウドンパント
2023年3月25日
更新済み 2024年3月3日
共有:

PDFファイルからデータを抽出することは、C#では非常に難しいことです。 データは、テキスト、画像、チャート、グラフ、表などの形式で存在する場合があります。時々、ビジネスアナリストはデータを抽出し、データ分析を実行して、その結果に基づいて意思決定を行う必要があります。 IronPDF C# PDFライブラリは、PDFファイルからデータを抽出するための優れたソリューションです。

この記事では、IronPDFライブラリを使用してC#でPDFドキュメントから表データを抽出する方法を示します。

IronPDF - C# PDFライブラリ

IronPDFは、.NETでのPDF生成用のC# .NETライブラリソリューションです。これにより、開発者はソフトウェアアプリケーション内でPDFドキュメントを簡単に読み取り、作成および編集することができます。 そのChromiumエンジンは、PDFドキュメントを高精度かつ高速にレンダリングします。 それにより、開発者はさまざまな形式からPDFへ、またはその逆方向へシームレスに変換することができます。 それは最新の .NET 7 フレームワーク、また .NET フレームワーク 6、5、4、.NET Core、および Standard をサポートしています。

さらに、IronPDF .NET APIは、開発者がPDFを操作および編集し、ヘッダーとフッターを追加し、簡単にPDFからテキスト、画像、テーブルを抽出することも可能にします。

いくつかの重要な機能には以下が含まれます

IronPDFライブラリを使用してC#でテーブルデータを抽出する手順

PDFドキュメントから表データを抽出するためには、ローカルコンピュータシステムに以下のコンポーネントがインストールされている必要があります:

  1. Visual Studio - Visual Studio 2022はC#開発の公式IDEであり、コンピュータにインストールする必要があります。 Visual Studio のウェブサイトからダウンロードしてインストールしてください。

  2. プロジェクトを作成 - データを抽出するためのコンソールアプリを作成します。 プロジェクトを作成するには、以下の手順に従ってください:

    • Visual Studio 2022 を開いて、新しいプロジェクトを作成 ボタンをクリックします。

    C#でPDFテーブルを読む方法、図1:Visual Studioのスタート画面

    Visual Studioのスタート画面

    • 次に、C# コンソール アプリケーションを選択し、次へをクリックします。

    C#でPDFテーブルを読む方法、図2: Visual Studioで新しいコンソールアプリケーションを作成

    Visual Studioで新しいコンソールアプリケーションを作成する

    • 次に、プロジェクト名"ReadPDFTable"を入力して、「次へ」をクリックしてください。

    C#でPDFテーブルを読み取る方法、図3: 新しく作成されたアプリケーションの構成

    新しく作成したアプリケーションを設定する

    • プロジェクトには「.NET Framework 6 長期サポート」を選択してください。

    C#でPDFテーブルを読む方法、図4: .NET Frameworkを選択

    .NET Framework を選択

    • 作成 ボタンをクリックすると、コンソールプロジェクトが作成されます。 さて、PDFドキュメントからテーブルデータをプログラム上で抽出する準備が整いました。
  3. IronPDFをインストール - IronPDFライブラリをインストールするには、3つの異なる方法があります。 それらは次の通りです:

    • Visual Studio を使用する Visual Studio には NuGet パッケージ マネージャーが含まれており、C# アプリケーションにすべての NuGet パッケージをインストールするのに役立ちます。

      • トップメニューのツールをクリックするか、

      • ソリューションエクスプローラーでプロジェクトを右クリックします。

    C#でPDFテーブルを読む方法、図5: ツール & NuGetパッケージの管理

    ツールと NuGet パッケージの管理

    - NuGetパッケージマネージャーが開いたら、IronPDFを検索して以下のようにインストールをクリックします:

    C#でPDFテーブルを読む方法、図6: ツール & NuGetパッケージの管理

    ツールと NuGet パッケージの管理

    • NuGet パッケージを直接ダウンロードします。 IronPDF をダウンロードしてインストールするもう1つの簡単な方法は、そのNuGet パッケージページを訪問することです。

    • IronPDF .DLLライブラリをダウンロード。 IronPDFは公式IronPDFウェブサイトからもダウンロードできます。 あなたのプロジェクトで使用するには、.DLL を参照する必要があります。

テーブルデータを使用してPDFドキュメントを作成する

何かを作成する前に、ファイルにIronPDF名前空間を追加し、IronPDFライブラリのExtractTextメソッドを使用するためのライセンスキーを設定する必要があります。

using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";
using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";

ここでは、表を含むHTML文字列からPDFドキュメントを作成し、そのデータをIronPDFを使用して抽出します。 HTMLは文字列変数に格納され、コードは以下の通りです:

string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";
string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";

次に、ChromePdfRenderer は HTML 文字列から PDF を作成するために使用されます。 コードは以下の通りです:

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");

SaveAs メソッドは、PdfDocument オブジェクトを "table_example.pdf" という名前のPDFファイルに保存します。 保存されたファイルは以下の通りです:

C#でPDFテーブルを読む方法、図7: NuGetパッケージマネージャーUIでIronPDFを検索

NuGet パッケージ マネージャー UIで IronPDF を検索する

IronPDFを使用してPDFドキュメントから表データを抽出する

PDFテーブルからデータを抽出するには、PdfDocumentオブジェクトを使用してドキュメントを開き、その後ExtractAllTextメソッドを使用して、さらなる分析のためにデータを取得します。 次のコードは、このタスクを達成する方法を示しています:

PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();
PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();

上記のコードは、ExtractAllText メソッドを使用してPDFドキュメント全体を解析し、抽出されたデータ(表形式のデータを含む)を文字列変数として返します。 その後、変数の値は表示されたり、後で使用するためにファイルに保存されたりすることができます。 以下のコードは画面に表示します:

Console.WriteLine("The extracted Text is:\n" + text);
Console.WriteLine("The extracted Text is:\n" + text);

C#でPDFテーブルを読み取る方法、図8:テキストを抽出するPDFファイル

テキストを抽出するPDFファイル

抽出されたテキストコンテンツから表形式データを抽出する

C#には、区切り文字に基づいて文字列を分割するのに役立つString.Splitメソッドがあります。 以下のコードは、出力をテーブルデータのみに制限するのに役立ちます。

string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}
string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}

このシンプルなコード例は、抽出されたテキストからテーブルセルデータのみを抽出するのに役立ちます。 最初に、テキスト行は分割されて文字列配列に保存されます。 次に、各配列要素が繰り返され、末尾に句点「。」が付いている要素はスキップされます。 ほとんどの場合、抽出されたデータから表形式のデータのみが取得されますが、他の行も取得される場合があります。 出力は以下の通りです:

C#でPDFテーブルを読む方法、図9: コンソールに抽出されたテキストが表示される

コンソールには抽出されたテキストが表示されます

上記のスクリーンショットから、Console.WriteLine メソッドの出力においてテーブルデータのフォーマットと論理構造が保持されていることがわかります。 PDFドキュメントからデータを抽出する方法の詳細については、こちらのC#でPDFからデータを抽出するためのコード例をご覧ください。

出力はCSVファイルとして保存することもでき、その後のデータ分析のためにフォーマットや編集を行うことができます。 コードは以下の通りです:

using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}
using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}

出力はCSVファイルに保存され、各textItemが1つの列になります。

サマリー

この記事では、IronPDFを使用してPDFドキュメントからデータやテーブルを抽出する方法を示しました。 IronPDFは、PDFファイルからテキストを抽出するためのいくつかの便利なオプションを提供します。 特定のページからデータを抽出できる ExtractTextFromPage メソッドを提供します。 IronPDFは、markdownファイルDOCXファイルなどの異なるフォーマットをPDFに変換したり、PDFを異なるフォーマットに変換することも可能です。 これにより、開発者はPDF機能をアプリケーション開発プロセスに簡単に統合することができます。 また、PDFドキュメントを表示および編集するためにAdobe Acrobat Readerを必要としません。

IronPDFは開発には無料で使用でき、商用利用にはライセンスが必要です。 それは、ライブラリの完全な機能をテストするためのIronPDFの無料試用ライセンスを提供します。 詳細情報は、このリンクにてご確認いただけます。

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
QRコードをPDFに変換する方法
次へ >
PDFビューア C# ウィンドウズアプリケーション (チュートリアル)