IRONSOFTWAREHOME

C#でPDFを読む方法 with IronOCR

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronOCRはC#のコード一行でPDFファイルからテキストを抽出することができ、全てのPDFバージョンをサポートし、Tesseractベースのエンジンによって正確なOCR結果を提供します。

PDFは、"Portable Document Format "の略です。Adobeが開発したファイル形式で、作成に使用したアプリケーションやプラットフォームに関係なく、あらゆるソース文書のフォント、画像、グラフィック、レイアウトを保持します。 PDF ファイルは通常、ドキュメントを開くために使用されるソフトウェアやハードウェアに関係なく、一貫した形式でドキュメントを共有および表示するために使用されます。 IronOcrは、古いPDF 1.0仕様から最新のPDF 2.0標準まで、様々なバージョンのPDF文書を扱います。

クイックスタート: PDFファイルを数秒でOCRする

IronOCR を使用して、PDF を指す OcrPdfInput を構築し、次に Read を呼び出します。 この例ではIronOCRを使ったPDFからのテキスト抽出を示します。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2このコード スニペットをコピーして実行します。

    using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronOCR を使い始めましょう無料トライアル
    arrow pointer

PDFファイル全体を読むにはどうすればよいですか?

まず、OCR を実行するために IronTesseract クラスをインスタンス化します。 次に、'using' ステートメントを利用して PDF ファイルパスを渡して OcrPdfInput オブジェクトを作成します。 最後に、Read メソッドを使用して OCR を実行します。 このアプローチは、スキャンされたPDF(画像ベース)と検索可能なPDF(テキストベース)の両方で動作し、さまざまなPDFタイプからテキストを抽出するのに適しています。

/* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);

// Access the extracted text
string extractedText = ocrResult.Text;
System.Console.WriteLine(extractedText);
フォーマットされたハリー・ポッターのテキストと、抽出されたプレーンテキストの出力を比較したスプリットビュー。

ほとんどの場合、DPI プロパティを指定する必要はありません。 しかし、OcrPdfInput の構築時に高い DPI 数を指定すると、読取精度を向上させることができます。 ほとんどの標準的なPDF文書では、デフォルトのDPI設定で十分ですが、特殊な文書では調整が必要な場合があります。

DPI設定はいつ調整すべきですか?

低解像度のスキャン文書や小さなテキストを含むPDFを扱う場合、DPI(Dots Per Inch)設定が重要になります。 最適な結果を得るには、DPI設定を調整することを検討してください:

  • 200 DPI以下のスキャン文書での作業
  • 歴史的またはアーカイブPDFの処理
  • 複雑なレイアウトや小さなフォントへの対応
  • デフォルト設定での精度の問題

ほとんどのOCR処理では300DPIを推奨しますが、非常に小さなテキストや複雑な細部が含まれる文書では600DPIが必要になる場合があります。

IronOCRはPDF以外にどのようなファイル形式をサポートしていますか?

IronOCRはPDF以外にも多くのファイル形式を包括的にサポートしています。 さまざまな形式の画像を処理できます

  • 標準的な写真のJPEG/JPG
  • 透過画像用PNG
  • 複数ページのドキュメントにはTIFF
  • 非圧縮画像用BMP
  • シンプルなグラフィックのためのGIF

さらに、IronOCRはPDFストリームをメモリから直接扱うことができ、ウェブアプリケーションやクラウドサービスに適しています。

PDFコンテンツタイプで作業する

PDFを処理する際、コンテンツタイプを指定することでパフォーマンスを最適化することができます。 PdfContents 列挙型を使用すると、特定のコンテンツを対象とすることができます:

// For text-only PDFs (faster processing)
var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text);

// For image-only PDFs (scanned documents)
var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images);

// For mixed content (default)
var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages);

PDFから特定のページを読むにはどうすればよいですか?

PDF文書から特定のページを読み取る場合は、ページインデックス番号を指定してインポートします。 これを行うには、ページインデックスのリストを PageIndices パラメーターに渡して、OcrPdfInput を構築します。 ページ インデックスでは 0 ベースの番号が使用されることに注意してください。 この機能は、特定のページのみに関連情報が含まれている大規模なドキュメントを扱う場合に特に役立ちます。

using IronOcr;
using System.Collections.Generic;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Create page indices list
List<int> pageIndices = new List<int>() { 0, 2 };

// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf", PageIndices: pageIndices);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);

なぜページ番号はゼロから始まるのですか

ゼロベース・インデックスは、C#やほとんどのプログラミング言語の標準的な規約です。 つまり、1ページ目はインデックス0、2ページ目はインデックス1、といった具合です。 この配列インデックスとの一貫性により、開発者はプログラムでページ・コレクションを扱うことが容易になります。 人間が読めるページ番号(1、2、3...)からインデックスに変換する場合は、単純にページ番号から1を引いてください。

連続しないページを読むにはどうすればよいですか?

IronOCRを使えば、連続しないページも簡単に読むことができます。 ご希望のページインデックスをリストに追加してください。 例えば:

// Read pages 1, 3, 5, and 10 (using zero-based indices)
List<int> pageIndices = new List<int>() { 0, 2, 4, 9 };

// Or use LINQ for range-based selection
var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList();

OCRエンジンは、指定されたページのみを処理し、大規模な文書のパフォーマンスを大幅に向上させます。

無効なページ番号を指定するとどうなりますか?

文書のページ数を超えるページインデックスを指定した場合、IronOCRは例外をスローします。 エラー処理を実装したり、処理前にページ数を検証したりすること。 インデックスが有効であることを確認するために、OCRを実行する前にPDFの総ページ数をチェックすることができます。

PDFの特定の領域をOCRするにはどうすればよいですか?

読み取るエリアを絞り込むことで、読書効率を大幅に高めることができます。 これを達成するために、読み取る必要がある取り込まれたPDFの正確な領域を指定します。 下記のコード例では、IronOCRは章番号とタイトルの抽出のみに焦点を当てています。 このテクニックは、画像のOCR領域を定義するのと似ており、速度と精度の両方を向上させます。

using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Specify crop regions
Rectangle[] scanRegions = { new Rectangle(550, 100, 600, 300) };

// Add PDF
using (var pdfInput = new OcrPdfInput("Potter.pdf", ContentAreas: scanRegions))
{
    // Perform OCR
    OcrResult ocrResult = ocrTesseract.Read(pdfInput);

    // Output the result to console
    Console.WriteLine(ocrResult.Text);
}

正しい矩形座標を決定するにはどうすればよいですか?

OCR処理のために章タイトルを選択する赤い四角が付いたPDF、実行完了を示すVisual Studioコンソール

正しい座標を見つけるには、PDFの座標系を理解する必要があります。 Rectangle コンストラクターは、X (横位置)、Y (縦位置)、Width、および Height の4つのパラメーターを取ります。 単位はすべてピクセルです。 定規機能を持つPDFビューアやデバッグユーティリティのようなツールは、正確な座標を特定するのに役立ちます。 また、試行錯誤を繰り返し、少しずつ調整しながら、選択範囲を絞り込んでください。

より正確な領域の定義のために、highlight texts for debugging 機能を利用して、処理されている領域を視覚化することができます。

1回の操作で複数のリージョンを指定できますか?

はい、IronOCRは一回のOCR操作で複数のリージョンをサポートします。 単に複数の Rectangle オブジェクトを配列に追加します:

Rectangle[] scanRegions = { 
    new Rectangle(50, 50, 200, 100),    // Header region
    new Rectangle(50, 200, 500, 300),   // Main content region
    new Rectangle(50, 550, 200, 50)     // Footer region
};

各地域は別々に処理され、結果は指定された順序で結合されます。

なぜ全ページではなく、地域固有の OCR を使用するのですか?

地域固有のOCRには、いくつかの利点があります:

  • パフォーマンス:小さな領域の処理が大幅に高速化
  • 正確さ:特定の領域に焦点を当てることで、無関係なコンテンツによるノイズを低減します。
  • 構造: フォームやテーブルからデータをより確実に抽出する
  • コスト効率:処理時間の短縮は、計算コストの削減を意味します。

このアプローチは、請求書、フォーム、レポートなど、データが予測可能な場所に表示される構造化されたドキュメントを扱う場合に特に有効です。 複雑な文書構造については、文書内のテーブルを読むで、特殊なテーブル抽出テクニックを調べてください。

どのような高度な PDF OCR 機能がありますか?

IronOCRは基本的なテキスト抽出にとどまらず、PDF処理のための追加機能を提供します。 スキャンした文書から検索可能なPDFを作成し、元のレイアウトを保持しながら、検索やコピーのためのテキストレイヤーを追加することができます。 このライブラリは、大規模なPDFコレクションの高速処理のためのマルチスレッドもサポートしています。

.NETアプリケーションでOCRを始めようとする開発者のために、簡単なOCRの例はIronOCRの機能とベストプラクティスを理解するための強固な基礎となります。

複雑なPDFシナリオを処理する

IronOCRは、困難なPDF文書を扱う際、いくつかの高度な機能を提供します:

  1. 画像の前処理: テキストの明瞭さを高めるために画像フィルターを適用します
  2. 多言語: 複数の言語を含むドキュメントを同時に処理します
  3. カスタム設定: 特定のドキュメントタイプのためにOCR設定を微調整します 4.エクスポートオプション:検索可能なPDFやhOCR HTMLを含むさまざまな形式で結果を保存します。

これらの機能により、IronOCRは企業レベルのPDF処理に必要な包括的なソリューションとなります。

よくある質問

C# で PDF フ ァ イ ルか ら テ キ ス ト を抽出す る 方法は?

IronOCRを使ってPDFファイルからテキストを抽出することができます。IronTesseractインスタンスを作成し、OcrPdfInputでReadメソッドを使用するだけです:var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));`.IronOCRはスキャンしたPDF(画像ベース)と検索可能なPDF(テキストベース)の両方を扱います。

テキスト抽出に対応しているPDFのバージョンは?

IronOCRは、古いPDF 1.0仕様から最新のPDF 2.0標準まで、すべてのPDFバージョンをサポートしています。OCRエンジンはTesseractテクノロジーで構築されており、PDFのバージョンに関係なく正確なテキスト抽出を保証します。

文書全体ではなく、PDFの特定のページだけを読むことはできますか?

はい、IronOCRはページインデックスを提供することで、PDFから特定のページを読み取ることができます。文書全体を処理する代わりに、OcrPdfInputオブジェクトを使用してテキストを抽出するページを指定することができます。

PDFファイルのOCRの最小限のワークフローは?

IronOCRの最小ワークフローは5つのステップで構成されています:1) C#ライブラリのダウンロード、2) PDFドキュメントの準備、3) PDFファイルパスでOcrPdfInputオブジェクトの作成、4) Readメソッドを使用してOCRを実行、5) オプションでページインデックスを指定して選択的読み取り。

PDF OCRのDPI設定はいつ調整すべきですか?

IronOCRのデフォルトのDPI設定はほとんどの標準的なPDFに適していますが、低解像度のスキャン文書(200DPI以下)や小さなテキストを含むPDFを扱う場合はDPIの調整を考慮する必要があります。OcrPdfInputコンストラクションのDPI設定を高くすると、特殊な文書の読み取り精度が大幅に向上します。

OCRエンジンは、スキャンしたPDFと検索可能なPDFの両方で動作しますか?

IronOCRは、スキャンされたPDF(画像ベース)と検索可能なPDF(テキストベース)の両方を効果的に処理します。Tesseractベースのエンジンは異なるPDFタイプを自動的に処理するため、異なるアプローチを必要とせず、様々なPDFフォーマットからテキストを抽出することができます。

What are the advantages of using region-specific OCR over full-page OCR?

Region-specific OCR improves performance by focusing on relevant areas, enhancing accuracy and reducing noise from irrelevant content. It is especially useful for forms and structured documents.

What advanced OCR features does IronOCR offer for PDFs?

IronOCR provides features such as creating searchable PDFs, multithreading for faster processing, image preprocessing, and support for multiple languages, catering to complex document processing needs.

How do you handle invalid page numbers in IronOCR?

If invalid page numbers are specified in IronOCR, it will throw an exception. It is recommended to implement error handling or verify page counts prior to processing.

Can IronOCR process non-consecutive pages from a PDF?

Yes, IronOCR can handle non-consecutive pages by specifying the desired page indices in a list. This allows for selective processing of pages in any order.

Curtis Chau
テクニカルライター

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

...
詳しく読む

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

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

バージョン: 2026.9

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

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

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

Your trial license will be sent to your email address

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

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。