フッターコンテンツにスキップ
IRONOCRの使い方

PDFをOCRする方法:C# .NET OCR PDFでスキャン文書からテキストを抽出する

スキャンしたPDF文書は、.NET開発者にとって共通の課題です。テキストが画像としてしか存在しないため、検索、コピー、プログラムによる処理が不可能です。 光学式文字認識(OCR)技術は、スキャンした画像や画像ファイルを編集・検索可能なデータに変換し、スキャンした紙文書やデジタルカメラで撮影した画像、検索可能なPDFファイルなどを機械が読み取り可能なテキストに変換することで、この問題を解決します。 紙のアーカイブをデジタル化するにしても、データ抽出を自動化するにしても、AIを活用した文書処理アプリケーションを構築するにしても、光学式文字認識を使ってPDFファイルを変換する機能は不可欠です。 IronOCRは強力な.NET OCRライブラリであり、C#でPDF OCRへの合理的なアプローチを提供します。 精度を高めたTesseract OCRエンジンをベースに構築されたこの.NET光学式文字認識ライブラリを使えば、わずか数行のコードであらゆるPDFドキュメントからテキストを抽出することができます。

IronOCRは強力な.NET OCRライブラリで、C#でPDF OCRへの合理的なアプローチを提供します。 精度を高めたTesseract OCRエンジンをベースに構築されたこの.NET光学式文字認識ライブラリを使えば、わずか数行のコードであらゆるPDFドキュメントからテキストを抽出することができます。

どのように C# で PDF に OCR を実行できますか?

まず、NuGetパッケージマネージャ経由でIronOCRライブラリをインストールし、この強力なOCRエンジンをシステムに追加します:

Install-Package IronOcr

次の例は、PDFファイルを読み込んで、スキャンした文書全体からテキストを認識する方法を示しています:

using IronOcr;
// Initialize the OCR engine
IronTesseract ocr = new IronTesseract();
// Load the PDF and perform OCR
using var pdfInput = new OcrPdfInput("scanned-report.pdf");
OcrResult result = ocr.Read(pdfInput);
// Output the extracted text
string extractedText = result.Text;
Console.WriteLine(extractedText);
using IronOcr;
// Initialize the OCR engine
IronTesseract ocr = new IronTesseract();
// Load the PDF and perform OCR
using var pdfInput = new OcrPdfInput("scanned-report.pdf");
OcrResult result = ocr.Read(pdfInput);
// Output the extracted text
string extractedText = result.Text;
Console.WriteLine(extractedText);
$vbLabelText   $csharpLabel

IronTesseractクラスは主要なOCRエンジンとして機能し、Tesseract 5を.NET Coreと.NET Frameworkアプリケーション用に最適化しています。 OcrPdfInputオブジェクトは、PDFの読み込みとページのレンダリングを内部で処理するため、手動で画像フォーマットを変換する必要がありません。 Readメソッドを呼び出すと、OCRプロセスは各ページを分析し、段落、行、単語、およびそれらの位置に関する構造化されたデータとともに、抽出されたテキストを文字列として含むOcrResultを返します。 ユーザーは、出力をTXTファイル、ターゲットフォルダ、Word文書に保存したり、APIを使用してデータをさらに処理することができます。

入力

PDFをOCRする方法:C# .NET OCR PDFでスキャン文書からテキストを抽出する:画像1 - サンプルPDF入力</a

出力

PDFをOCRする方法:C# .NET OCR PDFでスキャン文書からテキストを抽出する:画像2 - コンソール出力

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

必要なページだけをターゲットにすれば、大規模なテキスト文書の処理も効率的になります。 スキャンしたPDFページを選択的に変換するために、PageIndicesパラメータにページインデックスのリストを渡します:

using IronOcr;
using System.Collections.Generic;
IronTesseract ocr = new IronTesseract();
// Specify pages to process (zero-based indexing)
List<int> targetPages = new List<int>() { 0, 2, 4 };
using var pdfInput = new OcrPdfInput("lengthy-document.pdf", PageIndices: targetPages);
OcrResult result = ocr.Read(pdfInput);
// Save or process the OCR results
Console.WriteLine(result.Text);
using IronOcr;
using System.Collections.Generic;
IronTesseract ocr = new IronTesseract();
// Specify pages to process (zero-based indexing)
List<int> targetPages = new List<int>() { 0, 2, 4 };
using var pdfInput = new OcrPdfInput("lengthy-document.pdf", PageIndices: targetPages);
OcrResult result = ocr.Read(pdfInput);
// Save or process the OCR results
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

IronOCRはゼロベース・インデックスを使用しているため、ページ0はPDFドキュメントの最初のページを表します。 この選択的なアプローチにより、特定のセクションにのみ検索可能な関連データが含まれる複数ページのスキャン文書を処理する際の処理時間とメモリ消費量が削減されます。

特定の地域からデータを抽出するにはどうすればよいですか?

請求書処理、フォームのデジタル化、ドキュメントの解析では、ページ全体ではなく、定義された領域からテキストを抽出する必要があります。 この OCR ツールでは、ContentAreas パラメータを使用してターゲット スキャンを作成できます:

using IronOcr;
using IronSoftware.Drawing;
using System;
IronTesseract ocr = new IronTesseract();
// Define the scan region (x, y, width, height in pixels)
Rectangle[] invoiceFields = {
    new Rectangle(130, 290, 250, 50)   // Invoice number area
};
using var pdfInput = new OcrPdfInput("invoice.pdf", ContentAreas: invoiceFields);
OcrResult result = ocr.Read(pdfInput);
// Extract and output the structured data
Console.WriteLine(result.Text);
using IronOcr;
using IronSoftware.Drawing;
using System;
IronTesseract ocr = new IronTesseract();
// Define the scan region (x, y, width, height in pixels)
Rectangle[] invoiceFields = {
    new Rectangle(130, 290, 250, 50)   // Invoice number area
};
using var pdfInput = new OcrPdfInput("invoice.pdf", ContentAreas: invoiceFields);
OcrResult result = ocr.Read(pdfInput);
// Extract and output the structured data
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Rectangleコンストラクタは、4つのパラメータを受け入れます:X位置、Y位置、幅、高さです。すべて、ページの左上隅からピクセル単位で測定されます。 このターゲットテキスト認識アプローチでは、OCRエンジンが無関係な背景要素を処理するのではなく、特定のコンテンツ領域に集中することで、速度と精度の両方が劇的に向上します。 請求書のバッチ処理では、領域抽出と結果ページの反復を組み合わせて、複数のPDFファイルから編集可能な構造化データを構築します。

入力

PDFをOCRする方法:C# .NET OCR PDFでスキャン文書からテキストを抽出する:画像3 - サンプル請求書

出力

PDFをOCRする方法:C# .NET OCR PDFでスキャン文書からテキストを抽出する:画像4 - 抽出されたデータの出力

スキャンしたドキュメントの OCR 精度を向上させるには?

実際にスキャンされた紙文書は、ページの傾きや解像度の低さ、スキャンソフトウェアによるデジタルノイズなど、品質に問題があることがよくあります。 IronOCRには、これらの課題に対処し、画質の問題を正確なテキスト変換に変換するための前処理フィルターが含まれています:

using IronOcr;
IronTesseract ocr = new IronTesseract();
using var input = new OcrInput();
// Load PDF with higher DPI for better text recognition
input.LoadPdf("poor-quality-scan.pdf", DPI: 300);
// Apply image correction filters to process scanned images
input.Deskew();   // Straighten rotated pages
input.DeNoise();  // Remove scanning artifacts
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using var input = new OcrInput();
// Load PDF with higher DPI for better text recognition
input.LoadPdf("poor-quality-scan.pdf", DPI: 300);
// Apply image correction filters to process scanned images
input.Deskew();   // Straighten rotated pages
input.DeNoise();  // Remove scanning artifacts
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

DPIパラメータは、OCR処理の前にPDFページがレンダリングされる解像度を制御します。 Deskewメソッドはページの回転を自動的に検出して修正し、DeNoiseは光学式文字認識(OCR)の妨げとなる斑点やアーチファクトを除去します。 IronOCRはコントラスト強調、二値化、その他の画質編集ツールを提供します。

この.NET OCRライブラリは、入力構築時に認証情報を受け付けることで、パスワードで保護されたPDF文書も処理します。 このソフトウェアは、125以上の言語パックをサポートしており、国際文書のOCRが可能です。 IronOCRは標準的なPDFファイル以外にも、PNG、TIFF(マルチページTIFFを含む)、その他の画像フォーマットのファイルを処理することができます。 Windows、Linux、macOS、およびAzureやDockerコンテナを含むクラウドプラットフォーム上でシームレスに動作します。

結論

IronOCRはPDFのテキスト抽出という複雑な作業を簡単な操作に変えます。 基本的な文書の読み取りから、ターゲット領域の抽出、困難なスキャン画像の前処理まで、このOCRライブラリは、.NET Coreと.NET Frameworkで動作するクリーンなC# APIを公開しながら、技術的な複雑さを処理します。

上記のコード例はコア機能を示していますが、IronOCRはバーコードやQRコードの読み取り、スキャンしたPDFファイルを編集可能な検索可能ドキュメントに変換する検索可能PDFの作成、信頼度スコアやテキストの位置決めを含む構造化データの出力など、さらに拡張しています。 高度な実装のための完全なAPIリファレンスを検索するか、トライアル中に無料のプロバージョンの機能をお試しください。

ライセンスを購入する .NETアプリケーションの本番環境にIronOCRを導入する、またはプロジェクトに特化したガイダンスについてはエンジニアリング・チームとチャットしてください。

.NETアプリケーションでOCRを実行する準備はできましたか? 無料トライアルで全機能を確認し、SDKをダウンロードしてください。

よくある質問

OCRとは何か、なぜ.NET開発者にとって重要なのか。

OCR(光学式文字認識)は、スキャンした画像やPDFファイルを編集・検索可能なテキストに変換する技術です。これは、文書画像をプログラムで処理する必要がある.NET開発者にとって非常に重要であり、検索やテキストのコピーなどの機能を実現します。

IronOCRはOCRプロセスをどのように強化しますか?

IronOCRはTesseract OCRエンジンをベースにOCRプロセスを強化し、C#でスキャンされたドキュメントからテキストを抽出するための精度の向上と合理的なアプローチを提供します。

IronOCRはテキスト抽出のためにPDFファイルを直接扱うことができますか?

はい、OCRはPDFファイルを直接扱うことができ、開発者はわずか数行のC#コードでスキャンしたPDF文書からテキストを抽出することができます。

IronOCR はどのような種類の文書を処理できますか?

IronOCRは、スキャンした紙文書、デジタルカメラで撮影した画像、検索可能なPDFファイルなど、さまざまな文書を処理し、機械可読テキストに変換します。

IronOCRはデータ抽出作業の自動化に適していますか?

IronOCRは、スキャンした画像を構造化された編集可能なデータに変換し、ワークフローを合理化し、生産性を向上させるので、データ抽出作業の自動化に最適です。

IronOCRを使用することで、AIを活用した文書処理アプリケーションにどのような利点がありますか?

IronOCRは、ドキュメントを機械可読テキストに変換する利点を提供します。これは、テキスト認識と分析機能を必要とするAI搭載ドキュメント処理アプリケーションの構築に不可欠です。

C#プロジェクトにIronOcrを実装するのは簡単ですか?

IronOCRをC#プロジェクトに実装するのは簡単で、OCR機能を統合し、ドキュメントからテキストを抽出するのに必要なコードは数行だけです。

IronOCRはTesseract OCRエンジンを改良していますか?

IronOCRはTesseract OCRエンジンの上に構築され、その精度とパフォーマンスを向上させ、優れたテキスト認識結果を提供します。

IronOCRは紙のアーカイブのデジタル化に使用できますか?

IronOcrは紙文書のデジタル化に適しており、スキャンした紙文書を検索・編集可能なデジタルテキストに変換し、文書管理を容易にします。

IronOCRはOCR実装のためにどのようなコーディング言語をサポートしていますか?

IronOCRはC#でのOCR実装をサポートし、.NETフレームワークで作業する開発者にとって強力なツールとなります。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。