IronOCR vs Azure OCR PDF:どちらのソリューションがよりよくテキストを抽出するか?

開発者がPDF文書や画像からテキストを抽出する必要がある場合、2つの有力な選択肢が挙げられます。それは、マイクロソフトのクラウドベースのAzure AI Document Intelligenceと、IronOCRのローカル.NETライブラリです。 どちらも光学文字認識(OCR)機能を備えているが、導入モデル、価格体系、実装の容易さにおいて大きく異なる。
IronOCRは、お客様のサーバーまたはワークステーション上で直接ドキュメントを処理します。クラウドアカウントは不要で、ページごとの料金も発生せず、お客様の環境からデータが外部に送信されることもありません。 Azure Document Intelligenceは、お客様のファイルをMicrosoftのクラウドインフラストラクチャに送信し、分析するページ数に応じて課金され、アクティブなインターネット接続が必要です。 この比較では、各ソリューションがPDFファイルとTIFFファイルをどのように処理し、検索可能なPDFドキュメントをどのように作成し、複数の言語をどのようにサポートし、 .NET開発ワークフローにどのように適合するかを検証します。
IronOCRの無料トライアルを利用して、ご自身のプロジェクトでこれらの機能をぜひお試しください。
これら2つのOCRソリューションをひと目で比較するにはどうすればよいでしょうか?
| 特徴 | IronOCR | Azure Document Intelligence |
|---|---|---|
| デプロイメント | ローカルマシン/オンプレミス | クラウドベースのAPI |
| インターネット接続必須 | なし | はい |
| 価格モデル | 一度限りの永久ライセンス | ページごとの料金(1,000ページあたり1.50ドル~10ドル) |
| 検索可能なPDF出力 | 組み込みの単一メソッド呼び出し | 追加のライブラリが必要です |
| 対応言語 | 125以上の言語 | 100以上の言語 |
| ファイルフォーマット | PDF、TIFF、PNG、JPG、BMP、GIF | PDF、TIFF、JPEG、PNG、BMP |
| 無料プラン | 30 日間の試用版 | 月500ページ |
| データプライバシー | 完全ローカル - データはサーバーから一切出ません | マイクロソフトのクラウドに送信されるデータ |
クラウド OCR 処理とローカル OCR 処理の主な違いは何ですか?
基本的な違いは、テキスト抽出を行う場所にあります。 Azure AI Document Intelligence (旧称:Azure Form Recognizer)は、マイクロソフトのクラウドインフラストラクチャ上でドキュメントを処理します。 開発者はファイルをAzureポータルにアップロードするか、Read API経由で送信し、サービスは画像やスキャンされたドキュメントをリモートで分析します。 この方法にはインターネット接続と有効なAzure認証情報が必要であり、ドキュメントの量に応じてページごとの料金が発生します。
IronOCRは完全にローカルマシンまたはサーバー上で動作するため、データプライバシー要件のある組織や、エアギャップ環境に最適です。 このライブラリは、最も広く利用されているオープンソースのOCRエンジンの一つであるTesseract OCRをベースに構築されており、その上に洗練された.NET APIが追加されています。 このライブラリは外部API呼び出しなしで動作するため、開発者はドキュメント処理パイプラインを完全に制御できます。デスクトップアプリケーション、Webアプリケーション、バッチ処理ジョブなど、ローカル処理によりネットワーク遅延が解消され、サードパーティの稼働状況への依存もなくなります。
Azure VisionとAzure Formsサービスは、どちらもより広範なAzure AIサービス群に含まれます。 Azureのコンピュータビジョン機能は、一般的な目的のために画像を分析することができますが、Document Intelligenceは、特に、言語が混在し、複雑なレイアウトの文書からのテキスト抽出を処理します。 既にAzureエコシステムに深く投資している組織は、この統合を好むかもしれないが、その統合には継続的なコストとクラウドへの依存が伴う。
IronOCRのアーキテクチャは、予測可能なコストとデータ主権が最も重要なシナリオに最適です。単一の永久ライセンスでページ処理が無制限にカバーされるため、ページごとの課金制クラウドサービスと比較して、大量のアプリケーションは長期的に見て大幅にコスト効率が向上します。
NuGet経由でIronOCRをインストールするにはどうすればよいですか?
OCRコードを記述する前に、 .NETプロジェクトにIronOCR NuGetパッケージを追加する必要があります。 最も簡単な方法は、 NuGetパッケージマネージャーコンソールを使用することです。
Install-Package IronOcr
Install-Package IronOcr
または、 .NET CLI を使用してください。
dotnet add package IronOcr
dotnet add package IronOcr
インストール後、 IronOCRのメソッドを呼び出す前にライセンスキーを設定してください。 これはアプリケーションの起動コードで実行できます。
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"
開発期間中は、キーを入力せずに30日間の無料トライアルをご利用いただけます。 試用版では透かしが出力されますが、それ以外は評価に必要な機能はすべて備えています。
Azure Document Intelligence を使用するには、アクティブな Azure サブスクリプション、Azure ポータルで作成された Document Intelligence リソース、および Azure.AI.FormRecognizer NuGetパッケージを別途インストールする必要があります。 アプリケーションの設定において、エンドポイントのURLとAPIキーを安全に保存および管理する必要もあります。
PDFファイルやTIFFファイルからテキストを抽出する方法
IronOCRでテキストを抽出する
IronOCRは、様々なファイル形式からテキストを抽出するための直接的なAPIを提供します。 以下のコードは、 .NET 10 のトップレベルステートメントを使用してスキャンされた PDF を処理する方法を示しています。
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("document.pdf");
var result = ocr.Read(input);
Console.WriteLine($"Pages processed: {result.Pages.Length}");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("document.pdf");
var result = ocr.Read(input);
Console.WriteLine($"Pages processed: {result.Pages.Length}");
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput("document.pdf")
Dim result = ocr.Read(input)
Console.WriteLine($"Pages processed: {result.Pages.Length}")
Console.WriteLine(result.Text)
End Using
これはPDFファイルを読み込み、すべてのページを処理し、抽出したテキストを出力します。 OcrInputクラスは、PDF文書、複数ページのTIFFファイル、およびPNG、JPEG、JPG、BMPなどの標準画像フォーマットをサポートしています。画像のサイズと品質は自動的に処理され、ライブラリに組み込まれた画像前処理を適用することで、低品質のスキャン画像の精度を向上させます。
特に文書アーカイブのワークフローでよく使われるTIFFファイルの場合、 IronOCRはマルチフレームTIFF画像をネイティブに処理し、追加の設定なしで各フレームからテキストを抽出します。
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("archive-scan.tiff");
var result = ocr.Read(input);
foreach (var page in result.Pages)
{
Console.WriteLine($"Frame {page.PageNumber}: {page.Text}");
}
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("archive-scan.tiff");
var result = ocr.Read(input);
foreach (var page in result.Pages)
{
Console.WriteLine($"Frame {page.PageNumber}: {page.Text}");
}
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput("archive-scan.tiff")
Dim result = ocr.Read(input)
For Each page In result.Pages
Console.WriteLine($"Frame {page.PageNumber}: {page.Text}")
Next
End Using
OCR 出力

また、読み取り前に画像フィルターを適用して、難しいスキャンの精度を高めることもできます。傾き補正、ノイズ除去、二値化、コントラスト補正はすべて、OcrInput API を通じて利用できます。
Azureドキュメント インテリジェンスでテキストを抽出する
Azure Document Intelligenceを使用するには、まずAzureポータルでリソースを作成し、認証資格情報を構成し、Azure SDKをインストールする必要があります。 Read API呼び出しは非同期操作を使用します。
using Azure;
using Azure.AI.FormRecognizer.DocumentAnalysis;
var client = new DocumentAnalysisClient(
new Uri(endpoint),
new AzureKeyCredential(key));
using var stream = File.OpenRead("document.pdf");
var operation = await client.AnalyzeDocumentAsync(
WaitUntil.Completed, "prebuilt-read", stream);
var result = operation.Value;
foreach (var page in result.Pages)
{
foreach (var line in page.Lines)
{
Console.WriteLine(line.Content);
}
}
using Azure;
using Azure.AI.FormRecognizer.DocumentAnalysis;
var client = new DocumentAnalysisClient(
new Uri(endpoint),
new AzureKeyCredential(key));
using var stream = File.OpenRead("document.pdf");
var operation = await client.AnalyzeDocumentAsync(
WaitUntil.Completed, "prebuilt-read", stream);
var result = operation.Value;
foreach (var page in result.Pages)
{
foreach (var line in page.Lines)
{
Console.WriteLine(line.Content);
}
}
Imports Azure
Imports Azure.AI.FormRecognizer.DocumentAnalysis
Imports System.IO
Dim client = New DocumentAnalysisClient(
New Uri(endpoint),
New AzureKeyCredential(key))
Using stream = File.OpenRead("document.pdf")
Dim operation = Await client.AnalyzeDocumentAsync(
WaitUntil.Completed, "prebuilt-read", stream)
Dim result = operation.Value
For Each page In result.Pages
For Each line In page.Lines
Console.WriteLine(line.Content)
Next
Next
End Using
認証情報の管理、非同期操作の処理、応答データ構造の走査など、すべてが複雑さを増す要因となる。 ネットワークの中断やAzureサービスの障害が発生すると、抽出ジョブが失敗する可能性があるため、本番環境のアプリケーションでは再試行ロジックが必要になります。
どのソリューションがより優れた検索可能PDFを作成しますか?
スキャンした文書を検索可能なPDFに変換することは、文書のアーカイブ、法的コンプライアンス、および全文検索インデックス作成において一般的に求められる要件です。 IronOCRは、専用のSaveAsSearchablePdfメソッドを通じてこの機能を提供します。
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned.pdf");
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine("Searchable PDF created successfully.");
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned.pdf");
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine("Searchable PDF created successfully.");
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput("scanned.pdf")
Dim result = ocr.Read(input)
result.SaveAsSearchablePdf("searchable-output.pdf")
End Using
Console.WriteLine("Searchable PDF created successfully.")
検索可能なPDFを作成しました

これにより、スキャンされたPDFファイルが完全に検索可能なドキュメントに変換され、ユーザーはテキストの検索、選択、コピーが可能になります。 このプロセスでは、OCRの結果から生成された目に見えないテキストレイヤーを埋め込みながら、元の文書の視覚的な外観を維持します。 これは、内部ですべてを処理する単一のメソッド呼び出しです。
Azure Document Intelligenceは、検索可能なPDFを直接作成する機能を提供していません。 Azureで同様の結果を得るには、開発者はAPIレスポンスからテキストデータを抽出し、その後、別のPDFライブラリ(iTextSharpやPdfSharpなど)を使用して、埋め込まれたテキストレイヤーを含むドキュメントを再構築する必要があります。 これにより、プロジェクトに新たな依存関係、開発時間、および保守負担が加わります。
請求書、契約書、履歴記録など、大量のスキャン文書を定期的に変換する組織にとって、 IronOCRの単一方式アプローチは、統合作業を大幅に削減します。
文書処理の価格比較はどうなっていますか?
価格体系は、両ソリューション間の最も重要な実務上の違いの一つである。 Azureの従量課金モデルは、使用する特定の既製モデルに基づいて課金されます。 Microsoftの公式Azure料金ページによると、Read APIの料金は1,000ページあたり約1.50ドルで、フォームや請求書用の既製モデルは1,000ページあたり最大10ドルとなっています。 大量利用ユーザーは、利用量に応じた料金プランを交渉できますが、アプリケーションが稼働している限り、コストは継続的に発生します。
Enterprise文書ワークフローとしては控えめな量である、月間10万ページを処理する開発チームの場合、Azureの料金は月額150ドルから1,000ドルの範囲で、無期限に発生する可能性があります。
IronOCRは、開発者1名向けの1回限りの料金で利用できる永久ライセンスを提供しています。 この一度限りの投資で、ページ処理回数無制限、継続料金は一切かかりません。 最新の価格情報については、 IronOCRのライセンスページをご覧ください。 毎月数千件のドキュメントを分析するアプリケーションの場合、Azureのページ単位の料金に対する損益分岐点は通常、運用開始後数か月以内に到達します。
どちらのソリューションも、多数の言語に対応した印刷文字および手書き文字の光学文字認識をサポートしています。 IronOCRは125種類の言語パックを提供しており、1つの文書内に複数の言語が混在する場合にも対応しています。 アプリケーションの要件に応じて、言語データファイルを個別にダウンロードすることも、バンドルとしてダウンロードすることもできます。
言語および多言語サポートはどのように機能するのですか?
IronOCRで言語を設定する
IronOCRは、Tesseract言語データファイルを通じて125以上の言語をサポートしています。 IronTesseract インスタンスを設定する際に、言語(または複数の言語)を指定します。
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
// For multi-language documents:
ocr.AddSecondaryLanguage(OcrLanguage.French);
using var input = new OcrInput("multilingual-doc.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
// For multi-language documents:
ocr.AddSecondaryLanguage(OcrLanguage.French);
using var input = new OcrInput("multilingual-doc.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.EnglishBest
' For multi-language documents:
ocr.AddSecondaryLanguage(OcrLanguage.French)
Using input As New OcrInput("multilingual-doc.pdf")
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
言語パックは、個別のNuGetパッケージを介してインストールされます。たとえば、フランス語のサポートには IronOcr.Languages.French を使用します。 これにより、コアライブラリの軽量性を維持しながら、アプリケーションに必要な言語のみを追加できるようになります。
言語に関するドキュメントには、利用可能な言語パックとその対応するNuGetパッケージ名の完全なリストが記載されています。 IronOCRは、複数の文字体系が混在する文書や、未知の言語コンテンツを含む文書に対して、自動言語検出機能もサポートしています。
Azure Document Intelligence の言語サポート
Azure Document Intelligence の Read API は、100 種類以上の印刷言語と、手書き文字認識のための言語の一部をサポートしています。 言語検出はクラウド側で自動的に行われるため、ほとんどの場合、開発者は言語を明示的に指定する必要はありません。 この自動検出機能は便利ですが、ページあたりのコストが増加し、すべての文書をマイクロソフトのサーバーに送信する必要が生じます。
機密情報を含む文書(財務記録、医療データ、法的契約書など)の場合、コンテンツをクラウドのエンドポイントに送信すると、ローカル処理では完全に回避できるデータガバナンス上の考慮事項が生じます。
文書の一括処理はどのように行っていますか?
IronOCRによるバッチ処理
IronOCRは、大量のワークフローに対して、標準的な.NET並列処理を使用してバッチ処理を効率的に処理します。 このライブラリはローカルで動作するため、レート制限やAPIスロットリングなしに複数のOCRジョブを並行して実行できます。
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;
var pdfFiles = Directory.GetFiles("input-folder", "*.pdf");
var results = new List<string>();
await Parallel.ForEachAsync(pdfFiles, async (file, ct) =>
{
var ocr = new IronTesseract();
using var input = new OcrInput(file);
var result = ocr.Read(input);
lock (results) { results.Add(result.Text); }
});
Console.WriteLine($"Processed {results.Count} documents.");
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;
var pdfFiles = Directory.GetFiles("input-folder", "*.pdf");
var results = new List<string>();
await Parallel.ForEachAsync(pdfFiles, async (file, ct) =>
{
var ocr = new IronTesseract();
using var input = new OcrInput(file);
var result = ocr.Read(input);
lock (results) { results.Add(result.Text); }
});
Console.WriteLine($"Processed {results.Count} documents.");
Imports IronOcr
Imports System.Collections.Generic
Imports System.Threading.Tasks
Imports System.IO
Dim pdfFiles = Directory.GetFiles("input-folder", "*.pdf")
Dim results As New List(Of String)()
Await Task.WhenAll(pdfFiles.Select(Function(file) Task.Run(Async Function()
Dim ocr As New IronTesseract()
Using input As New OcrInput(file)
Dim result = ocr.Read(input)
SyncLock results
results.Add(result.Text)
End SyncLock
End Using
End Function)))
Console.WriteLine($"Processed {results.Count} documents.")
このパターンは、PDFファイルが格納されたフォルダ全体を同時に処理します。処理速度は、お使いのマシンのCPUとメモリのリソースによってのみ制限され、APIのレート制限やネットワーク帯域幅には影響されません。
より高度なバッチ処理シナリオについては、 IronOCRのハウツーガイドで、一括処理パターン、進捗状況の追跡、出力管理について解説しています。
Azure Document Intelligence を使用したバッチ処理
Azure Document Intelligenceはバッチ処理をサポートしていますが、各ドキュメントごとに個別のAPI呼び出し、またはバッチ分析ドキュメントAPIを使用する必要があります。 大量のジョブはAzureのレート制限の対象となります。標準ティアの場合、通常は1秒あたり15リクエストです。 毎日数万件もの文書を処理する組織は、サービス制限内に収まるように、キューイング、再試行ロジック、およびスロットリング管理を実装する必要があります。
予測可能な高負荷ワークロード向けには、コミットメントベースの料金プランが用意されていますが、これには事前のコミットメント契約が必要であり、マイクロソフトのサービス利用規約が適用されます。
次のステップは何ですか?
IronOCRは、.NET開発者に対し、クラウドへの依存やページごとの料金なしに、正確なローカルドキュメントテキスト抽出を実現するシンプルな方法を提供します。 PDF、TIFF、またはスキャン画像を処理するアプリケーションを開発するチームにとって、永続ライセンスモデルと単一方式の検索可能なPDF作成機能は、クラウドベースのOCRサービスと比較して、コストと統合の複雑さの両方を削減します。
IronOCRの機能をぜひお試しください。
- NuGet経由でIronOCRをダウンロードしてインストールします-- インストール手順と前提条件の詳細 -操作ガイドをお読みください。一般的なOCRタスクの手順をステップバイステップで説明しています。 -言語パックを表示-- サポートされている125以上の言語すべてを閲覧できます -検索可能なPDFの作成を探索する-- スキャンしたドキュメントを単一のメソッド呼び出しで変換する IronOCRのライセンスについてご確認ください。個人、チーム、組織向けの永久ライセンス(1回限り)をご用意しています。 -コード例を参照- プロジェクトですぐに使える、実際のOCRパターン
Azure Document Intelligenceは、Microsoftのエコシステムにすでに投資している組織や、特定の事前構築済みフォームモデルを必要とする組織にとって、引き続き適切なものです。 しかし、単純なOCR処理、検索可能なPDFの作成、そして予測可能な運用コストといった点においては、IronOCRのローカル処理モデルと開発者にとって使いやすいAPIは、 .NETプロジェクトにとってより有力な選択肢となる。
よくある質問
Azure OCR PDFとIronOCRの主な違いは何ですか?
主な違いは、価格モデル、統合のしやすさ、言語サポートやテキスト抽出の精度などの特定の機能にあります。
IronOCRはAzure OCR PDFと比較してPDFテキスト抽出をどのように処理しますか?
IronOCRは、高度な画像前処理や様々な言語のサポートを含む、PDFからテキストを抽出するための堅牢な機能を提供し、Azure OCR PDFと比較してより正確な結果を提供することができます。
IronOCRを使用するためのコード例はありますか?
IronOCRは、開発者がOCR機能を.NETアプリケーションに簡単に統合できるよう、C#による包括的なコード例を提供しています。
Azure OCR PDFとIronOCRの価格モデルを教えてください。
Azure OCR PDFは通常、従量課金モデルを採用していますが、IronOCRはさまざまなプロジェクト規模に適した柔軟なライセンスオプションを提供しています。
IronOCRは検索可能なPDFを作成できますか?
IronOCRは検索可能なPDFを作成することができます。
どのOCRソリューションがより優れた言語サポートを提供していますか?
IronOCRは多言語認識を含む広範な言語サポートを提供しており、Azure OCR PDFに比べ、多様なテキスト抽出ニーズに有益です。
IronOCRは.NETアプリケーションに簡単に統合できますか?
IronOCRは、.NETアプリケーションにシームレスに統合できるように設計されており、インストールと使用方法がわかりやすく説明されています。
Azure OCR PDFとIronOCRのテキスト抽出精度の比較は?
IronOCRは、その高度な画像処理能力により、テキスト抽出の精度の高さで知られており、特定のシナリオではAzure OCR PDFを上回る可能性があります。
IronOCRは開発者向けのサポートを提供していますか?
IronOCRは、詳細なドキュメンテーションと迅速なテクニカルサポートを含め、開発者に優れたサポートを提供します。
Azure OCR PDFよりもIronOCRを使う利点は何ですか?
IronOCRは、高度なテキスト抽出機能、.NETとのより良い統合、包括的な言語サポート、競争力のある価格オプションなどの利点を提供します。


