ASP.NET CoreでPDFからデータを読み取る方法
PDFファイルを.NET Coreアプリケーションで扱うことは、思ったよりも難しいことがあります。 アップロードされた請求書からテキストを抽出したり、調査のフォームデータを取得したり、データベースのために表を解析したりする必要があるかもしれません。 私は、開発者が過度に複雑なライブラリを使用したために、遅くなったプロジェクトをたくさん見てきました。 IronPDFが登場するのはそこでです。 これにより、PDFドキュメントを混乱した依存関係と格闘したり、大量のカスタム解析コードを書かなくても読み書きできます。
簡単なテキスト、デジタル署名、または構造化データを扱う場合でも、IronPDFは簡単に実現します。 このガイドは、ASP.NETでPDFファイルからデータを読み取る方法、IFormFileを扱う方法、バイト配列を使用する方法、さらにはユーザーにファイルを返す方法やHTML文字列としてレンダリングする方法を示しています。 ソリューションに統合し、ブラウザで出力を表示したり、データベースに保存することもできます。
ASP.NET CoreでIronPDFをどのように設定しますか?
ASP.NET CoreプロジェクトでIronPDFを始めるのに必要な時間はほんの数分です。 NuGet Package Manager Consoleを介して、次のコマンドを使用してIronPDF NuGetパッケージをインストールしてください。
Install-Package IronPdf
.NET CLI経由でも可能です:
dotnet add package IronPdfインストールが完了したら、IronPDFの名前空間をクラスプログラム、コントローラ、またはサービスに追加してください。
using IronPdf;using IronPdf;Imports IronPdfDocker展開、Azureセットアップを含む詳細なインストールオプションや追加情報については、包括的なドキュメントをご確認ください。
PDFファイルからテキストをどのように抽出しますか?
IronPDFのExtractAllTextメソッドは、PDFドキュメント内のすべてのテキストコンテンツに即座にアクセスできます。 このメソッドはさまざまなテキストエンコーディングに対応しており、元のドキュメントの読み順を維持することで、ASP.NET Coreアプリケーションでの正確なデータ抽出を確保しています。
// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current page// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current pageIRON VB CONVERTER ERROR developers@ironsoftware.comExtractAllTextメソッドは、PDFからすべての読み取り可能なテキストを含む文字列を返し、改行やスペースを維持します。 ページごとの抽出には、ExtractTextFromPageを使用してゼロベースのインデックスを用いて個々のページをターゲットにすることができます。 このアプローチは、正しいパスワードを提供した場合、暗号化されたPDFともシームレスに連携します。
以下は、このPDFを使用してPDFファイルからデータを読み取る方法を示す実用的なASP.NET Coreコントローラの実装例です:
コードの例
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpPost("extract-text")]
public IActionResult ExtractText(IFormFile pdfFile)
{
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var extractedText = pdf.ExtractAllText();
return Ok(new { text = extractedText });
}
}[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpPost("extract-text")]
public IActionResult ExtractText(IFormFile pdfFile)
{
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var extractedText = pdf.ExtractAllText();
return Ok(new { text = extractedText });
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこのサンプルコードは、アップロードされたPDFファイルを効率的に処理します。 IFormFileパラメータはRazor PagesまたはMVCコントローラーで動作し、MemoryStreamは一時ファイルを作成せずにスムーズな処理を保証し、最終的に応答時間を改善します。 開発者は、ダウンロード、保存、またはデータベースストレージ、レポート生成、またはブラウザでのコンテンツ表示のために抽出されたテキストを処理することができます。
PDFフォームデータをどのように読み取りますか?
PDFフォームにはユーザーが記入するインタラクティブなフィールドが含まれています。 IronPDFは包括的なフォームAPIを通じてこのフォームデータを抽出する作業を簡単にし、すべての標準的なAcroFormフィールドタイプをサポートしています。テキストボックス、チェックボックス、コンテンツタイプの詳細を含むすべてのフォームフィールドデータを簡単に抽出できます。
応答はデータベースに保存したり、ユーザーに返したり、ASP.NETアプリケーションのワークフローに統合したりすることができます。 次のコードは、ちょうどこれを実現する方法を示しています:
[HttpPost("extract-form")]
public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
{
return BadRequest("No PDF file uploaded.");
}
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var formData = new Dictionary<string, string>();
if (pdf.Form != null)
{
foreach (var field in pdf.Form)
{
formData[field.Name] = field.Value;
}
}
return Ok(new { formFields = formData });
}[HttpPost("extract-form")]
public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
{
return BadRequest("No PDF file uploaded.");
}
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var formData = new Dictionary<string, string>();
if (pdf.Form != null)
{
foreach (var field in pdf.Form)
{
formData[field.Name] = field.Value;
}
}
return Ok(new { formFields = formData });
}IRON VB CONVERTER ERROR developers@ironsoftware.comExtractFormエンドポイントはPdfDocumentのFormプロパティを使用して、アップロードされたPDFからインタラクティブフィールドを読み取ります。 各フィールドにはNameとValueがあり、辞書に収集され、JSONとして返されます。 これにより、テキストボックス、チェックボックス、および他の入力からデータをキャプチャし、PDFフォームの提出が直接アプリケーションまたはデータベースに処理され統合されることが可能になります。
出力

PDFドキュメントからテーブルデータをどのように抽出しますか?
PDFのテーブルは本質的にフォーマットされたテキストであり、構造化データを抽出するには解析ロジックが必要です。 IronPDFはPDFファイルからデータを読み取るために、スペーシングを保持しながらテキストを抽出し、その後の解析が可能です:
[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
return BadRequest("No PDF file uploaded.");
using var memoryStream = new MemoryStream();
pdfFile.CopyTo(memoryStream);
// Load PDF from byte array
var pdf = new PdfDocument(memoryStream.ToArray());
// Extract all text
string text = pdf.ExtractAllText();
// Split text into lines (rows)
string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var tableData = new List<string[]>();
foreach (string line in lines)
{
// Split line into columns using tab character
string[] columns = line
.Split('\t')
.Where(c => !string.IsNullOrWhiteSpace(c))
.ToArray();
if (columns.Length > 0)
tableData.Add(columns);
}
var table = tableData.Select(r => string.Join(" | ", r)).ToList();
return Ok(new { Table = table });
}[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
return BadRequest("No PDF file uploaded.");
using var memoryStream = new MemoryStream();
pdfFile.CopyTo(memoryStream);
// Load PDF from byte array
var pdf = new PdfDocument(memoryStream.ToArray());
// Extract all text
string text = pdf.ExtractAllText();
// Split text into lines (rows)
string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var tableData = new List<string[]>();
foreach (string line in lines)
{
// Split line into columns using tab character
string[] columns = line
.Split('\t')
.Where(c => !string.IsNullOrWhiteSpace(c))
.ToArray();
if (columns.Length > 0)
tableData.Add(columns);
}
var table = tableData.Select(r => string.Join(" | ", r)).ToList();
return Ok(new { Table = table });
}IRON VB CONVERTER ERROR developers@ironsoftware.comこのコードはテキストを抽出し、スペーシングパターンに基づいてそれを潜在的なテーブル行に分割します。 より複雑なテーブルのためには、キーワードを使用してテーブル境界を識別する、または特定のPDF構造に基づいたより高度な解析ロジックを実装する必要があるかもしれません。
この出力はダウンロード、ブラウザでの表示、または追加情報のために処理できます。 ソリューションで動的にテーブルを表示するためにCSSフォーマットまたはHTML文字列レンダリングを統合できます。
出力

ASP.NET CoreでアップロードされたPDFファイルをどのように処理しますか?
アップロードされたPDFを処理するには、IFormFileをIronPDFが読み取れる形式に変換する必要があります。 このアプローチは、Razor PagesおよびMVCコントローラーとシームレスに連携します:
[HttpPost("process-upload")]
public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No PDF file uploaded.");
using var ms = new MemoryStream();
await file.CopyToAsync(ms);
// Load PDF from byte array
var pdf = new PdfDocument(ms.ToArray());
// Extract text and page count
var text = pdf.ExtractAllText();
var pageCount = pdf.PageCount;
return Ok(new
{
text = text,
pages = pageCount
});
}[HttpPost("process-upload")]
public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No PDF file uploaded.");
using var ms = new MemoryStream();
await file.CopyToAsync(ms);
// Load PDF from byte array
var pdf = new PdfDocument(ms.ToArray());
// Extract text and page count
var text = pdf.ExtractAllText();
var pageCount = pdf.PageCount;
return Ok(new
{
text = text,
pages = pageCount
});
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの非同期タスクは非ブロッキング処理を確保し、オブジェクトsender、eventargs e、および標準の.NETライブラリと連携します。 ReturnFileをContent-Dispositionヘッダーと使用して、処理されたPDFファイルをユーザーに安全にダウンロードできるようにします。 追加のセキュリティを考慮し、処理前にファイル検証を実装することを検討してください。
結論
IronPDFは、ASP.NET Coreおよび他の.NET CoreアプリケーションでPDFドキュメントを読み取り、抽出し、処理し、保存するのを簡単にします。 フォーム、テーブル、プレーンテキスト、またはデジタル署名を扱っている場合でも、この .NET ライブラリは通常数時間かかるタスクをわずか数行のコードに簡素化します。 HTML、ブラウザ、さらには画像形式で出力を作成、変換、アクセス、表示できます。
無料トライアルを開始して、ASP.NET CoreでのIronPDFの全機能を探求してください。 PDF抽出ワークフローを構築し、テストした後、ライセンスにコミットする前に評価することができます。 本番環境では、IronPDFは個人の開発者や大規模ソリューションに適した柔軟なオプションを提供します。 正直なところ、いつもの頭痛の種なしにASP.NET CoreでPDFファイルを扱うための最速の方法の一つがIronPDFを使用することです。
よくある質問
.NET CoreアプリケーションでPDFファイルを扱う際に発生する可能性のある課題は何ですか?
.NET CoreでのPDFファイルの取り扱いは、過度に複雑なライブラリを使わずにテキストを抽出したり、フォームデータを取得したり、テーブルを解析したりする必要があるため厄介です。
ASP.NETでのPDFファイルからのデータの読取りをIronPDFがどのように簡素化できるか?
IronPDFは、煩雑な依存関係や広範なカスタム解析コードの必要性を排除することで、PDF文書の読取りと処理を簡素化します。
PDFを処理する際に過度に複雑なライブラリを避けることが重要なのはなぜですか?
過度に複雑なライブラリを使用すると、プロジェクトが遅くなり開発時間が増加する可能性がありますが、IronPDFのような単純なソリューションはプロセスを簡素化します。
IronPDFはPDFファイルからどのような種類のデータを抽出できますか?
IronPDFは、テキスト、フォームデータ、およびテーブルをPDFファイルから抽出でき、多様なデータ処理ニーズに柔軟に対応します。
IronPDFはASP.NETアプリケーションでアップロードされた請求書を処理するのに使用できますか?
はい、IronPDFはASP.NETアプリケーションでアップロードされた請求書からテキストを効率的に読み取り処理できます。
IronPDFを使用する際にカスタムの解析コードを書く必要がありますか?
いいえ、IronPDFを使用することで、広範なカスタム解析コードを必要とせずにPDFドキュメントを処理できます。
.NET CoreアプリケーションでIronPDFを使用する利点は何ですか?
IronPDFは、PDFファイルを読取り処理するための簡単な方法を提供し、複雑な依存関係なしにデータ処理能力を向上させます。
.NET 10 — IronPDF は完全に互換性がありますか?
はい。IronPDF は .NET 10(および .NET 9、8、7、6、5、Core、Standard、Framework 4.6.2+)と完全に互換性があるように設計されており、最新の .NET プラットフォームで特別な回避策を講じることなく、すべての PDF 読み取りおよび書き込み機能を実行できます。
IronPDF は、ストリーミングされた PDF コンテンツを読み取るために .NET 10 の最新の API をサポートしていますか?
はい。.NET 10では、IronPDFはStreamやMemoryStreamなどのAPIを使用して、バイト配列またはメモリストリームからPDFデータを処理できるため、一時ファイルを保存することなくPDFを読み取ることができます。そのため、高パフォーマンスのサーバーシナリオや、Web APIでのPDFデータのアップロードや処理に適しています。






