IRONSOFTWAREHOME
IRONPDFの使用

IronPDFを使用してASP.NET CoreでPDFビューアを構築する方法

Curtis Chau
Curtis Chau
Updated: 2026年7月12日

IronPDF は、複雑な依存関係や手動解析なしで、簡単な C# コードを使用して PDF ファイルからテキスト、フォーム データ、およびテーブルを読み取るメソッドを提供することで、 ASP.NET Coreでの PDF データ抽出を簡素化します。

.NETアプリケーションで PDF ファイルを操作するのは、一見したよりも難しい場合があります。 アップロードされた請求書からテキストを抽出したり、アンケートからフォーム データを取得したり、データベースのテーブルを解析したりする必要がある場合があります。 多くのプロジェクトは、開発者が広範囲にわたるカスタム解析コードを必要とする過度に複雑なライブラリを使用するために速度が低下します。 IronPDF は、最小限のセットアップで PDF ドキュメントを読み取って処理できる簡単な代替手段を提供します。

単純なテキスト、インタラクティブなフォーム フィールド、構造化された表形式のデータなどを処理する場合でも、IronPDF の API を使用すると、低レベルの解析を行わずに PDF コンテンツに直接アクセスできます。 このガイドでは、 ASP.NET Coreで PDF ファイルからデータを読み取る方法について説明します。テキスト抽出、フォーム データの取得、テーブル解析、非同期ファイル アップロードの処理など、すべてプロジェクトにドロップできる C# コードを使用して説明します。

ASP.NET CoreプロジェクトでIronPDFをセットアップするにはどうすればよいですか?

始めるのは簡単です。 NuGet Package Manager Consoleまたは.NET CLIからIronPDF NuGetパッケージをインストールしてください:

PM > Install-Package IronPdf

パッケージをインストールしたら、PDF ドキュメントを操作するファイルの先頭にIronPDF名前空間を追加します。

using IronPdf;

ほとんどのプロジェクトに必要な設定はこれですべてです。 IronPDF は、外部のレンダリング プロセスや Windows 上の追加のネイティブ依存関係に依存しません。 Linux または Docker 環境の場合、プラットフォーム固有のガイダンスについてはIronPDF のドキュメントを参照してください。

無料の試用ライセンスを使用すると、実稼働で使用する前に完全な機能セットをテストできます。 IronPDFサイトから直接試用ライセンスを取得し、最初の PDF 操作の前に 1 行のコードで適用することができます。

PDF ファイルからテキストを抽出するにはどうすればよいでしょうか?

テキスト抽出は、最も一般的な PDF 読み取りタスクです。 IronPDFは、ExtractTextFromPageでページレベルのアクセスを提供します。 どちらの方法でも読み取り順序が保持され、標準のテキスト エンコードが処理されます。

// Load a PDF document from disk
var pdf = PdfDocument.FromFile("document.pdf");

// Extract all text from every page
string allText = pdf.ExtractAllText();

// Extract text from a specific page (zero-based index)
string pageOneText = pdf.ExtractTextFromPage(0);

Console.WriteLine(allText);

ExtractAllTextは改行を保持したまま1つの文字列として完全なテキストコンテンツを返します。 ExtractTextFromPageはゼロベースのインデックスを使用して特定のページを対象とし、これはマルチページドキュメントの特定のセクションのコンテンツのみが必要な場合に役立ちます。

テキストと画像の抽出オプションの詳細については、 PDF からのテキスト抽出ガイドで、領域ベースの抽出などの高度なシナリオについて説明しています。

テキスト抽出をASP.NET Coreコントローラーに組み込むにはどうすればよいでしょうか?

以下のコントローラー アクションは、MemoryStream に読み込み、抽出されたテキストをJSONとして返します。

using IronPdf;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpPost("extract-text")]
    public IActionResult ExtractText(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());
        string extractedText = pdf.ExtractAllText();

        return Ok(new { text = extractedText });
    }
}

このエンドポイントはアップロードされたファイルをバイト配列に変換し、それをPdfDocumentに直接渡します。 一時ファイルはディスクに書き込まれないため、コードがクリーンな状態に保たれ、不要なストレージのオーバーヘッドが回避されます。 IFormFileインターフェースは、マルチパートフォーム送信とPostmanのようなAPIクライアントの両方で自然に機能します。

ASP.NET Coreで PDF フォーム データを読み取るにはどうすればよいでしょうか?

PDF フォーム ( AcroFormsとも呼ばれます) には、ユーザーが入力するインタラクティブなフィールドが含まれています。 IronPDFは、Formプロパティを通じてフォームフィールドを公開しており、ドキュメント内の各フィールドの名前と値を取得できます。

次のエンドポイントは、アップロードされたフォーム PDF を読み取り、すべてのフィールド値を JSON 辞書として返します。

[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 });
}

Valueプロパティ(ユーザーが入力したテキストまたは選択)が含まれています。 テキスト ボックス、チェック ボックス、ラジオ ボタン、ドロップダウンはすべてこのコレクションに表示されます。

JSON 応答を使用すると、追加の解析を行わずに、フォームの送信をデータベース、サードパーティ API、またはメッセージ キューに簡単に転送できます。 PDFフォームをプログラムで作成または編集するワークフローに関しては、PDFフォームガイドがフィールドの追加と事前入力値を詳しく解説します。

典型的なフォーム抽出応答はどのようなものですか?

APIレスポンスに表示されているJSONデータは、PDFフォームから抽出されたName、Email、AddressフィールドをPostmanテストインターフェースに表示し、200 OKステータスであります

上記の応答には、サンプルの連絡先フォーム PDF のフィールド名と値を含む 200 OK の結果が表示されます。 構造はフラットなキーと値のマップであり、ほとんどのデータベース スキーマまたは REST ペイロードにきれいにマップされます。

PDF から表データを抽出するにはどうすればよいでしょうか?

PDF ファイル内の表は位置指定されたテキストとして保存されます。PDF 形式にはネイティブの表データ構造はありません。 したがって、表形式のデータを抽出するということは、生のテキストを抽出し、解析ロジックを適用して行と列を再構築することを意味します。

IronPDFのExtractAllTextは、空白とタブ文字を保持することで、行をプログラム的に列に分割することが可能です。 次のコントローラー アクションは、このアプローチを示しています。

[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);

    var pdf = new PdfDocument(memoryStream.ToArray());
    string text = pdf.ExtractAllText();

    // Split into lines, then split each line into columns
    string[] lines = text.Split(
        new[] { '\r', '\n' },
        StringSplitOptions.RemoveEmptyEntries
    );

    var tableData = new List<string[]>();
    foreach (string line in lines)
    {
        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 });
}

このアプローチは、一貫してタブで区切られた列を使用する表を持つ PDF に適しています。 列が可変の空白で区切られているドキュメントの場合、最小ギャップヒューリスティックを適用するか、文字の位置を検査する必要がある場合があります。 PDF の結合または分割ガイドは、抽出前にテーブルを含む特定のページを分離する必要がある場合に役立ちます。

テーブルを手動で解析する必要があるのはどのような場合ですか?

APIレスポンスは、PDFから抽出された顧客情報、請求書メタデータ、価格付きの商品を含む構造化された請求書データをJSON形式で表示します

PDF が HTML または構造化データ ソースから生成されていない場合 (スキャンされた請求書やデスクトップ パブリッシング ツールで作成されたドキュメントなど) は、手動解析が適切な選択です。 タブ分割アプローチは、多くの標準 PDF を確実に処理します。 列の境界が不規則な場合は、IronPDF の DOM アクセス API を通じて生の文字座標を調べることでロジックを調整できます。

HTML から生成されたドキュメントの場合は、HTML 仲介を介したラウンドトリップを検討してください。 データ駆動型の HTML テンプレート ( HTML 文字列から PDF へのガイドで説明) から PDF を生成すると、テキストの位置が予測可能になり、抽出が簡単になります。

非同期 PDF ファイルのアップロードをどのように処理しますか?

運用ASP.NET Coreアプリケーションでは、スレッド プールのブロックを回避するために、ファイルのアップロードを非同期的に処理する必要があります。 awaitと組み合わせてコントローラーをノンブロッキングに保ちます。

[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);

    var pdf = new PdfDocument(ms.ToArray());
    string text = pdf.ExtractAllText();
    int pageCount = pdf.PageCount;

    return Ok(new
    {
        text,
        pages = pageCount
    });
}

PdfDocumentコンストラクターは同期的ですが、アップロードステップ(通常はパイプライン内で最も遅い部分)は非同期で実行されます。 このパターンは同時負荷でも適切にスケーリングされ、最小限の API エンドポイント、 Razor Pages ハンドラー、gRPC サービスと互換性があります。

アップロードファイルのサイズをどのように制限しますか?

ASP.NET Core、 要求本文のサイズ制限としてデフォルトで 30 MB が適用されます。 大きなPDFの場合は、Program.csの制限を増やします:

builder.Services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 100 * 1024 * 1024; // 100 MB
});

Kestrel には独自の制限があり、これを引き上げる必要がある場合もあります。

builder.WebHost.ConfigureKestrel(options =>
{
    options.Limits.MaxRequestBodySize = 100 * 1024 * 1024;
});

アプリケーションが処理する PDF の現実的な最大サイズに基づいてこれらの値を設定します。 予期しない入力を防ぐために、アップロードされたファイルをIronPDFに渡す前に、必ずそのファイルの MIME タイプと拡張子を検証してください。

抽出した PDF コンテンツを他の形式に変換するにはどうすればよいですか?

テキストまたはフォーム データを取得したら、それをアプリケーションに必要なダウンストリーム プロセス (データベース書き込み、検索インデックス作成、レポート生成、API 呼び出しなど) にパイプできます。 IronPDF は、HTML を PDF にレンダリングする、逆方向の変換もサポートしています。

抽出したコンテンツを視覚的に表示したい場合は、 PDF から画像への変換ガイドを使用して元の PDF を画像としてレンダリングできます。 これは、ブラウザに完全な PDF を読み込まずにページのサムネイルを表示するドキュメントプレビュー機能に役立ちます。

出力ドキュメントをユーザーに配信する前に保護する必要がある場合、 IronPDF は後処理手順としてデジタル署名透かしをサポートします。 ヘッダーとフッターの追加 (ヘッダーとフッターのガイドで説明されています) も同様に簡単です。

一般的なPDFデータ抽出シナリオと推奨されるIronPDFメソッド
シナリオIronPDFメソッド / プロパティ注意事項
すべてのページのテキストを抽出するpdf.ExtractAllText()を使用してください。読み順で文書の全文を返します
1ページからテキストを抽出するpdf.ExtractTextFromPage(n)のようにします。ゼロベースのページインデックス
AcroFormフィールドの読み取りpdf.Formfield.Namefield.Valueを列挙する
テーブル行を解析するExtractAllText() + 分割ロジックタブまたは空白のギャップで分割
ページ数を数えるpdf.PageCountページ区切りや検証に便利
バイト配列から読み込むnew PdfDocument(bytes).一時ファイルは不要
ファイルパスから読み込むPdfDocument.FromFile(パス)サーバー側のファイルアクセスの場合

PDF データ抽出を設定した後の次の手順は何ですか?

これで、テキスト抽出、フォーム データの読み取り、テーブル解析、非同期アップロードの作業パターンが完成しました。 ここでは、アプリケーションの要件に基づいて次に検討すべきいくつかの方向性を示します。

抽出ワークフローと並行して PDF レポートを生成する必要がある場合は、 IronPDF の機能の概要で、 HTML から PDF へのレンダリング、スタンプ オーバーレイ、ページ操作について説明しています。 複数のソースからのレポートを結合するアプリケーションの場合、 "PDF の結合または分割"ガイドでドキュメントの結合と分割の手順を説明します。

ドキュメントを安全に配信するために、デジタル署名を使用すると、クライアントに送信する前に PDF を認証できます。 カスタム透かしは、生成されたドキュメントに視覚的なブランド化やドラフト ラベルを追加します。

プロジェクトがスキャンされたPDF(検索可能なテキストではなく画像)からデータを抽出する場合、ExtractAllTextを呼び出す前にOCRステップが必要です。 Iron SoftwareのIronOCRはIronPDFと統合して、スキャンされたドキュメントのワークフローを処理します。

IronPDF は、個々の開発者およびチーム向けに柔軟なライセンス オプションで利用できます。 制限なしですべての機能をテストするには、無料トライアルから始めてください。 完全なドキュメントには、API リファレンス、スタートガイド、Windows、Linux、Docker、クラウド環境の展開ノートなどが含まれています。

ASP.NET Coreで PDF ファイルからデータを読み取る際に、低レベルの解析コードや重い依存関係は必要なくなります。 IronPDFを使用すると、アップロードされたファイルから抽出されたコンテンツまでのパスは、任意のコントローラーまたはサービス レイヤーに自然に収まる数行になります。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から