IRONPDFの使用

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

更新済み 2024年3月3日
共有:

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

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

IronPDF - C#(IronPDF) ライブラリ

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フレームワークを選択してください

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

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

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

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

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

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

    - NuGetパッケージマネージャーが開いたら、IronPDFを検索して以下のようにインストールをクリックします:
    
         ![C#でPDFテーブルを読む方法、図6:ツール&NuGetパッケージの管理](/static-assets/pdf/blog/csharp-read-pdf-table-tutorial/csharp-read-pdf-table-tutorial-6.webp)

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

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

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

using IronPdf;

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

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

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY"
$vbLabelText   $csharpLabel

ここでは、表を含む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>";
Dim HTML As String = "<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>"
$vbLabelText   $csharpLabel

次に、ChromePdfRendererHTML文字列から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");
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(HTML)
pdfDocument.SaveAs("table_example.pdf")
$vbLabelText   $csharpLabel

についてSaveAsメソッドは保存されますPdfDocument(PDFドキュメント)オブジェクトを「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();
Dim pdfDocument As New PdfDocument("table_example.pdf")
Dim text As String = pdfDocument.ExtractAllText()
$vbLabelText   $csharpLabel

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

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

Console.WriteLine("The extracted Text is:" & vbLf & text)
$vbLabelText   $csharpLabel

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);
    }
}
Imports Microsoft.VisualBasic

Dim textList() As String = text.Split(vbLf)
For Each textItem As String In textList
	If textItem.Contains(".") Then
		Continue For
	Else
		Console.WriteLine(textItem)
	End If
Next textItem
$vbLabelText   $csharpLabel

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

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

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

上記のスクリーンショットから、Console.WriteLineメソッドの出力で表データのフォーマットと論理構造が保持されていることが確認できます。 以下のリンクで、IronPDFを使用して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);
        }
    }
}
Imports Microsoft.VisualBasic

Using file As New StreamWriter("table_example.csv", False)
	Dim textList() As String = text.Split(vbLf)
	For Each textItem As String In textList
		If textItem.Contains(".") Then
			Continue For
		Else
			file.WriteLine(textItem)
		End If
	Next textItem
End Using
$vbLabelText   $csharpLabel

出力は、それぞれの textItem が一つの列になるCSVファイルとして保存されます。

サマリー

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

IronPDFは開発には無料で使用でき、商用利用にはライセンスが必要です。 以下を日本語に翻訳してください:

提供しますIronPDFをテストするための無料トライアルライセンスライブラリの全機能を試すために。 詳細情報は、このリンクにてご確認いただけます。

リーガン・パン

リーガン・パン

ソフトウェアエンジニア

 LinkedIn

レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
QRコードをPDFに変換する方法
次へ >
PDFビューア C# ウィンドウズアプリケーション (チュートリアル)