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

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

IronPDF を使用して、わずか数行のコードで .NET の PDF からテキスト、表、フォーム、画像を抽出します。NuGet 経由でインストールし、PDF を読み込み、 ExtractAllText () を呼び出すだけで、5 分以内に開始できます。

PDF ドキュメントは、請求書、レポート、契約書、マニュアルなど、ビジネスのあらゆる場所で使用されています。 しかし、プログラムによって重要な情報を取得するのは難しい場合があります。 PDFはデータのアクセス方法ではなく、見た目に焦点を当てています。 C# で OCRを扱う開発者にとって、これはスキャンされたドキュメントを扱う際に特有の課題をもたらします。

.NET開発者にとって、IronPDFは、PDFファイルからデータを簡単に抽出することができる強力な .NET PDFライブラリです。 入力 PDF ドキュメントからテキスト、表、フォーム フィールド、画像、添付ファイルを直接取得できます。 請求書処理の自動化、ナレッジベースの構築、レポート生成など、このライブラリは作業時間を大幅に節約します。スキャンしたPDFを扱う場合は、画像ベースのコンテンツを処理するためにPDF OCRテキスト抽出機能も必要になる場合があります。

このガイドでは、テキスト コンテンツ、表形式のデータ、フォーム フィールドの値を抽出する実用的な例を、各コード スニペットの後に説明を付けて紹介しているので、独自のプロジェクトに適応できます。 他の種類のドキュメントも扱っている場合は、スキャンしたドキュメントの読み取りや、 TIFF から検索可能な PDF への変換を検討すると役立つかもしれません。

IronPDF を使い始めるにはどうすればいいですか?

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

Install-Package IronPDF
Install-Package IronPDF
$vbLabelText   $csharpLabel

より高度なインストール シナリオについては、 NuGet パッケージのドキュメントを参照してください。 インストールが完了すると、すぐに入力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);
$vbLabelText   $csharpLabel

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

実用的なヒント:抽出したテキストは、後で処理するために.txtファイルに保存したり、データベース、Excelシート、またはナレッジベースに入力するために解析することができます。 この方法は、レポート、契約書、または生のテキストをすぐに必要とするあらゆる PDF に適しています。 テーブルが関係するシナリオでは、より構造化されたデータ抽出のためにドキュメント内のテーブルの読み取りについて学習することを検討してください。

抽出されたテキストはどのように見えるでしょうか?

! 左側に"PDFとは何か"を説明するPDF文書、右側にそのPDFから抽出したテキストを表示するVisual Studioコンソールウィンドウを表示する分割画面

特定のページからデータを抽出するにはどうすればよいですか?

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

! 請求書番号、日付、金額を含む請求書概要表と、部門の業績および財務概要セクションを含む2024年度年次報告書を表示するPDFビューア

次のコードは、この PDF 内の特定のページからデータを抽出し、結果をコンソールに返します。 複数ページのドキュメントを扱う場合、同様の課題に対して複数ページの TIFF 処理テクニックも役立つことがあります。

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()}");
        }
    }
}
$vbLabelText   $csharpLabel

この例は、PDFドキュメントからテキストを抽出し、キー情報を検索し、データファイルや知識ベースへの保存の準備をする方法を示しています。 ExtractTextFromPage()メソッドはドキュメントの読み順を維持するので、ドキュメント分析やコンテンツのインデックス作成作業に最適です。 精度を高めるには、品質の低い PDF を扱うときに画像最適化フィルターの使用を検討してください。

! Microsoft Visual Studio デバッグ コンソールに、抽出された請求書データと請求書の概要、日付、金額、最終合計 2,230.00 ドルが表示されています。

財務文書を処理する場合、専門用語の精度を向上させるために財務言語パックが役立つ場合があります。 さらに、進捗状況の追跡は、大規模なドキュメント バッチの抽出パフォーマンスを監視するのに役立ちます。

PDF から表を抽出するにはどうすればいいですか?

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

! 顧客の詳細、明細化された製品、合計金額 180.00 ドルを含む構造化データを示す請求書のサンプル

私たちのゴールは、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");
$vbLabelText   $csharpLabel

PDF内の表は、通常、グリッドのように見えるように配置されたテキストに過ぎません。 この確認は、行が表の行またはヘッダーに属しているかどうかを判断するのに役立ちます。 ヘッダー、フッター、関連のないテキストを除外することで、PDF からクリーンな表形式のデータを抽出し、CSV または Excel に出力できるようになります。 複雑なレイアウトの領収書や請求書を処理するには、 AdvancedScan Extensionをご覧ください。

このワークフローは、PDFフォーム、財務文書、レポートに有効です。 後でPDFのデータをxlsxファイルに変換したり、すべての有用なデータを含むzipファイルにマージすることができます。 セルが合併された複雑な表の場合、列の位置に基づいて解析ロジックを調整する必要があるかもしれません。 データ出力ドキュメントには、構造化された結果の操作に関する詳細なガイダンスが記載されています。

! 品目、数量、価格、合計の計算値の列を持つ製品在庫を表示する Excel スプレッドシート

表の抽出精度を高めるには、処理前にコンピューター ビジョン技術を使用して表の領域を自動的に検出することを検討してください。 このアプローチにより、複雑なレイアウトでの結果が大幅に改善されます。

フォーム フィールド データを抽出するにはどうすればよいでしょうか?

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");
$vbLabelText   $csharpLabel

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

! データ抽出結果を示す 2 つの PDF フォームの横並びの比較 - 左側の元のフォームには"John Doe"データが表示され、右側の更新されたフォームには"更新された値"が表示され、データの抽出と変更が成功したことが示されています

チェックボックスやラジオボタンを含むフォームを扱う場合、特殊なフィールドタイプに対して、バーコードやQRコードの読み取りと同様のカスタムロジックを実装する必要があるかもしれません。OcrResultクラスのドキュメントには、様々な結果タイプの処理に関する詳細な情報が記載されています。

次に何をすべきでしょうか?

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

ナレッジベースの構築、レポートワークフローの自動化、財務 PDF からのデータの抽出など、このライブラリには、手動でのコピーやエラーが発生しやすい解析を行わずに作業を完了するためのツールが用意されています。 シンプルで高速であり、Visual Studio プロジェクトに直接統合されます。 デプロイメントに関しては、IronPDF はWindowsLinuxDockerAWSAzureなどのクラウド プラットフォームを含むさまざまなプラットフォームをサポートしています。

ぜひお試しください。時間を節約でき、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』を再視聴したりしていることが多いです。