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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
より高度なインストールシナリオについては、 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);
Imports IronPdf
' Load any PDF document
Dim pdf = PdfDocument.FromFile("document.pdf")
' Extract all text with one line
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine(allText)
このコードはPDFを読み込み、テキストをすべて抽出します。 IronPDFは、他のライブラリで一般的に問題を引き起こす複雑なPDF構造、フォームデータ、およびエンコーディングを自動的に処理します。 PDFドキュメントから抽出されたデータは、テキストファイルに保存するか、さらに分析のために処理できます。 より複雑な抽出ニーズに対応するには、専門的な文書処理技術を検討することをお勧めします。
実用的なヒント:抽出したテキストは、後で処理するために.txtファイルに保存したり、データベース、Excelシート、またはナレッジベースに入力するために解析することができます。 この方法は、レポート、契約書、またはPDFファイルなど、生のテキストを素早く取得する必要がある場合に効果的です。 表を扱うシナリオでは、より構造化されたデータ抽出のために、文書内の表の読み方を学ぶことを検討してください。
抽出されたテキストはどのようなものですか?

特定のページからデータを抽出するにはどうすればよいですか?
実世界のアプリケーションでは、正確なデータ抽出が必要です。 IronPDFは、PDF内の特定のページから貴重な情報をターゲットにする複数の方法を提供します。 この手法はOCRの領域特定抽出に似ていますが、PDFファイルを対象としています。 この例では、次の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()}");
}
}
}
Imports IronPdf
Imports System
Imports System.Text.RegularExpressions
' Load any PDF document
Dim pdf = PdfDocument.FromFile("AnnualReport2024.pdf")
' Extract from selected pages
Dim pagesToExtract As Integer() = {0, 2, 4} ' Pages 1, 3, and 5
For Each pageIndex In pagesToExtract
Dim pageText As String = pdf.ExtractTextFromPage(pageIndex)
' Split on 2 or more spaces (tables often flatten into space-separated values)
Dim tokens = Regex.Split(pageText, "\s{2,}")
For Each token As String In tokens
' Match totals, invoice headers, and invoice rows
If token.Contains("Invoice") OrElse token.Contains("Total") OrElse token.StartsWith("INV-") Then
Console.WriteLine($"Important: {token.Trim()}")
End If
Next
Next
この例は、PDFドキュメントからテキストを抽出し、キー情報を検索し、データファイルや知識ベースへの保存の準備をする方法を示しています。 ExtractTextFromPage() メソッドはドキュメントの読み上げ順序を維持するため、ドキュメント分析やコンテンツインデックス作成タスクに最適です。 精度を高めるには、低品質のPDFを扱う際に画像最適化フィルターを使用することを検討してください。

財務書類を処理する際には、専門用語の正確性を向上させるために、財務用語パックを利用すると役立つ場合があります。 さらに、進捗状況の追跡は、大量の文書バッチにおける抽出パフォーマンスを監視するのに役立ちます。
PDFファイルから表を抽出するにはどうすればよいですか?
PDFファイル内の表には本来の構造はありません。単に表のように見えるように配置されたテキストコンテンツです。 IronPDFはレイアウトを維持しながら表データを抽出し、Excelまたはテキストファイルに加工できます。 これはOCRによる図形抽出に似ていますが、表形式のコンテンツに特化して最適化されています。 この例では、こちらのPDFファイルを使用します。

私たちのゴールは、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");
Imports IronPdf
Imports System
Imports System.Text
Imports System.Text.RegularExpressions
Dim pdf = PdfDocument.FromFile("example.pdf")
Dim rawText As String = pdf.ExtractAllText()
' Split into lines for processing
Dim lines As String() = rawText.Split(ControlChars.Lf)
Dim csvBuilder As New StringBuilder()
For Each line As String In lines
If String.IsNullOrWhiteSpace(line) OrElse line.Contains("Page") Then
Continue For
End If
Dim rawCells As String() = Regex.Split(line.Trim(), "\s+")
Dim cells As String()
' If the line starts with "Product", combine first two tokens as product name
If rawCells(0).StartsWith("Product") AndAlso rawCells.Length >= 5 Then
cells = New String(rawCells.Length - 2) {}
cells(0) = rawCells(0) & " " & rawCells(1) ' Combine Product + letter
Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2)
Else
cells = rawCells
End If
' Keep header or table rows
Dim isTableOrHeader As Boolean = cells.Length >= 2 AndAlso (cells(0).StartsWith("Item") OrElse cells(0).StartsWith("Product") OrElse Regex.IsMatch(cells(0), "^INV-\d+"))
If isTableOrHeader Then
Console.WriteLine($"Row: {String.Join("|", cells)}")
Dim csvRow As String = String.Join(",", cells).Trim()
csvBuilder.AppendLine(csvRow)
End If
Next
' Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString())
Console.WriteLine("Table data exported to CSV")
PDF内の表は、通常、グリッドのように見えるように配置されたテキストに過ぎません。 この確認は、行が表の行またはヘッダーに属しているかどうかを判断するのに役立ちます。 ヘッダー、フッター、関連のないテキストを除外することで、PDF からクリーンな表形式のデータを抽出し、CSV または Excel に出力できるようになります。 複雑なレイアウトの領収書や請求書を処理するには、 AdvancedScan拡張機能をご利用ください。
このワークフローは、PDFフォーム、財務文書、レポートに有効です。 後でPDFのデータをxlsxファイルに変換したり、すべての有用なデータを含むzipファイルにマージすることができます。 セルが合併された複雑な表の場合、列の位置に基づいて解析ロジックを調整する必要があるかもしれません。 データ出力に関するドキュメントには、構造化された結果を扱うための詳細なガイダンスが記載されています。

表の抽出精度を向上させるには、処理前にコンピュータビジョン技術を用いて表の領域を自動的に検出することを検討してください。 この手法は、複雑なレイアウトにおける結果を大幅に改善できる。
フォームフィールドデータを抽出するにはどうすればよいですか?
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");
Imports IronPdf
Imports System.Drawing
Imports System.Linq
Dim pdf = PdfDocument.FromFile("form_document.pdf")
' Extract form field data
Dim form = pdf.Form
For Each 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" Then
field.Value = "Updated Value"
End If
Next
' Save modified form
pdf.SaveAs("updated_form.pdf")
このコードは、PDFからフォームフィールドの値を抽出し、プログラムで更新できるようにします。これにより、PDFフォームの処理が容易になり、分析やレポート生成のために指定された範囲の情報を抽出できます。 これは、顧客オンボーディング、アンケート処理、データ検証などのワークフローの自動化に役立ちます。 本人確認書類の処理については、本人確認書類のOCR処理におけるベストプラクティスを検討してください。

チェックボックスやラジオボタンを含むフォームを扱う場合、特殊なフィールドタイプに対して、バーコードやQRコードの読み取りと同様のカスタムロジックを実装する必要が生じる場合があります。OcrResultクラスのドキュメントには、さまざまな結果タイプの処理に関する詳細な情報が記載されています。
次に何をすればいいですか?
IronPDFは、.NETでのPDFデータ抽出を実用的かつ効率的にします。 画像、テキスト、表、フォームフィールド、さらには通常追加のOCR処理を必要とするスキャンされたPDFを含むさまざまなPDFドキュメントから添付ファイルを抽出することができます。 スキャンされた文書の場合、 IronPDFとIronOCRの機能を組み合わせることで、包括的な文書処理機能が実現します。
ナレッジベースの構築、レポート作成ワークフローの自動化、財務PDFからのデータ抽出など、どのような作業を行う場合でも、このライブラリを使えば、手動でのコピーやエラーが発生しやすい解析作業をすることなく、これらの作業を完了できます。 シンプルで高速であり、Visual Studio プロジェクトに直接統合されます。 IronPDFは、導入にあたって、 Windows 、 Linux 、 Docker 、 AWSやAzureなどのクラウドプラットフォームを含む様々なプラットフォームをサポートしています。
ぜひ試してみてください。きっと時間を節約でき、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からテキスト、表、スキャンされた画像からのデータなど、様々なタイプのコンテンツを抽出することができ、データ抽出のための汎用性の高いツールです。



