フッターコンテンツにスキップ
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を使用します。

PDF ビューアには、請求書番号、日付、金額を含む請求書概要表と、部門業績および財務概要セクションを含む 2024 年の年次報告書が表示されています。

以下のコードは、この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 Debug Console showing extracted invoice data with invoice summary, dates, amounts, and final total of $2,230.00

財務書類を処理する際には、専門用語の正確性を向上させるために、財務用語パックを利用すると役立つ場合があります。 さらに、進捗状況の追跡は、大量の文書バッチにおける抽出パフォーマンスを監視するのに役立ちます。

PDFファイルから表を抽出するにはどうすればよいですか?

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

Sample invoice showing structured data with customer details, itemized products, and total amount of $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拡張機能をご利用ください。

このワークフローは、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」データの元のフォーム、右側は「Updated Value」を示す更新済みフォームでデータ抽出と変更の成功を確認

チェックボックスやラジオボタンを含むフォームを扱う場合、特殊なフィールドタイプに対して、バーコードや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』を再視聴したりしていることが多いです。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね