フッターコンテンツにスキップ
IRONOCRの使い方

PDF データ抽出 .NET:完全開発者ガイド

PDFドキュメントはビジネスのどこにでもあります。 現代の例としては、請求書、レポート、契約書、マニュアルが含まれます。 しかし、それらからプログラム的に重要な情報を取得することは難しい場合があります。 PDFはデータのアクセス方法ではなく、見た目に焦点を当てています。

.NET開発者にとって、IronPDFは、PDFファイルからデータを簡単に抽出することができる強力な .NET PDFライブラリです。 テキスト、テーブル、フォームフィールド、画像、添付ファイルを入力PDFドキュメントから直接抽出できます。 請求書処理を自動化する場合、知識ベースを構築する場合、またはレポートを生成する場合、このライブラリは多くの時間を節約します。

このガイドでは、テキストコンテンツの抽出、表データの抽出、フォームフィールドの値の抽出に関する実用的な例を説明し、各コードスニペットの後に説明を加えて、独自のプロジェクトに適応可能にします。

IronPDFを始めよう

IronPDFのインストールは、NuGetパッケージマネージャーを介して数秒で完了します。 パッケージマネージャーコンソールを開いて、以下を実行します:

Install-Package IronPDF
Install-Package IronPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
$vbLabelText   $csharpLabel

インストールが完了すると、すぐに入力PDFドキュメントの処理を開始できます。 IronPDFのAPIのシンプルさを示す最小限の .NET例です。

using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードはPDFを読み込み、テキストをすべて抽出します。 IronPDFは、他のライブラリで一般的に問題を引き起こす複雑なPDF構造、フォームデータ、およびエンコーディングを自動的に処理します。 PDFドキュメントから抽出されたデータは、テキストファイルに保存するか、さらに分析のために処理できます。

実用的なヒント:抽出したテキストは、後で処理するために.txtファイルに保存したり、データベース、Excelシート、またはナレッジベースに入力するために解析することができます。 この方法は、レポート、契約書、または未処理のテキストがすぐに必要なPDFに適しています。

抽出されたテキスト出力

PDF Data Extraction .NET:完全な開発者ガイド:画像1 - 例題PDFとその抽出テキスト

PDFドキュメントからのデータ抽出

実世界のアプリケーションでは、正確なデータ抽出が必要です。 IronPDFは、PDF内の特定のページから貴重な情報をターゲットにする複数の方法を提供します。 この例では、次のPDFを使用します。

PDF Data Extraction .NET:完全な開発者ガイド:画像2 - PDF Data Extraction .NETに関連する6件の画像中2件目:完全な開発者ガイド</a

次のコードは、このPDFの特定のページからデータを抽出し、結果をコンソールに返します。

using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例は、PDFドキュメントからテキストを抽出し、キー情報を検索し、データファイルや知識ベースへの保存の準備をする方法を示しています。 ExtractTextFromPage()メソッドはドキュメントの読み順を維持するので、ドキュメント分析やコンテンツのインデックス作成作業に最適です。

PDF Data Extraction .NET:完全な開発者ガイド:画像3 - 特定のページから抽出されたデータのコンソール出力

PDFドキュメントからの表データの抽出

PDFファイル内の表はネイティブな構造を持っていません。 それらは単に表のように見えるように配置されたテキストコンテンツです。 IronPDFはレイアウトを維持しながら表データを抽出し、Excelまたはテキストファイルに加工できます。 この例では、このPDFを使用します。

PDF Data Extraction .NET:完全な開発者ガイド:画像4 - PDF Data Extraction .NETに関連する6件の画像中4件目:完全な開発者ガイド</a

私たちのゴールは、IronPDFの表形式データ解析能力を実証しながら、表そのものからデータを抽出することです。

using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF内の表は、通常、グリッドのように見えるように配置されたテキストに過ぎません。 この確認は、行が表の行またはヘッダーに属しているかどうかを判断するのに役立ちます。 ヘッダー、フッター、関連のないテキストをフィルタリングすることで、PDFからクリーンな表データを抽出でき、CSVまたはExcelの準備ができます。

このワークフローは、PDFフォーム、財務文書、レポートに有効です。 後でPDFのデータをxlsxファイルに変換したり、すべての有用なデータを含むzipファイルにマージすることができます。 セルが合併された複雑な表の場合、列の位置に基づいて解析ロジックを調整する必要があるかもしれません。

PDF Data Extraction .NET:完全な開発者ガイド:イメージ5 - 抽出されたテーブルデータ

PDFからフォームフィールドデータを抽出する

IronPDFは、フォームフィールドデータの抽出と変更も可能です。

using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このスニペットは、PDFからフォームフィールドの値を抽出し、それをプログラムで更新できるようにします。 これにより、PDFフォームを処理し、分析やレポート生成のために指定された範囲の情報を抽出することが容易になります。 これは、顧客オンボーディング、アンケート処理、データ検証などのワークフローの自動化に役立ちます。

PDF Data Extraction .NET:完全な開発者ガイド:画像6 - 抽出されたフォームデータと更新されたフォーム

次のステップ

IronPDFは、.NETでのPDFデータ抽出を実用的かつ効率的にします。 画像、テキスト、表、フォームフィールド、さらには通常追加のOCR処理を必要とするスキャンされたPDFを含むさまざまなPDFドキュメントから添付ファイルを抽出することができます。

知識ベースの構築、レポートワークフローの自動化、または財務PDFからのデータ抽出を目指す場合でも、このライブラリがあれば手作業のコピーやエラーのある解析を避けて目標を達成できます。 簡単で速く、Visual Studioプロジェクトに直接統合できます。 試してみてください。PDFを扱う時の通常の悩みを避け、大幅に時間を節約できることでしょう。

PDFデータ抽出をアプリケーションに実装する準備はできていますか? IronPDFは、あなたにとって.NETライブラリでしょうか? 無料トライアルを開始して全機能にアクセスするか、商用利用のためのライセンスオプションを検索してください。 包括的なガイドやAPIリファレンスについては、ドキュメントをご覧ください。

よくある質問

PDF文書からデータを抽出する際の主な課題は何ですか?

PDFドキュメントは、主に特定のレイアウトでコンテンツを表示するように設計されているため、データへのアクセシビリティよりも見た目に重点を置いているため、プログラムでデータを抽出するのは困難です。

IronOCRは.NETでのPDFデータ抽出をどのようにサポートできますか?

IronOCRは、光学式文字認識(OCR)を利用してテキストの画像を機械読み取り可能なデータに変換することにより、スキャン文書を含むPDFからテキストとデータを抽出するツールを提供します。

IronOCRはスキャンしたPDF文書を扱えますか?

IronOCRは高度なOCR技術を使ってスキャンしたPDFを処理し、文書内の画像からテキストを認識・抽出することができます。

IronOCRでPDFデータ抽出に使用されるプログラミング言語は何ですか?

IronOCRはC#で使用するように設計されており、.NETフレームワークでPDFからデータを抽出する開発者に最適です。

IronOCRを使ったPDFデータ抽出のコード例はありますか?

このガイドには、IronOCRを使ってPDFファイルから効果的にデータを抽出する方法を示す完全なC#コード例が含まれています。

IronOCRはPDFドキュメントのテーブルを解析できますか?

IronOCRにはPDF文書からテーブルを解析する機能があり、開発者は構造化されたデータを効率的に抽出することができます。

IronOCRはどのようなPDFコンテンツを抽出できますか?

IronOCRはPDFからテキスト、表、スキャンされた画像からのデータなど、様々なタイプのコンテンツを抽出することができ、データ抽出のための汎用性の高いツールです。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。