IRONSOFTWAREHOME
他のコンポーネントと比較する

IronOCRとAspose.OCRの比較

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年6月28日

Asprise OCRは最初にJavaライブラリを提供し、.NETを二次的なターゲットとして扱うため、その設計上の決定が製品のすべての層に現れます。Javaの例で書かれたドキュメントから、プラットフォーム固有のDLLs(aocr.dll, aocr_x64.dll, libaocr.so, libaocr.dylib)を必要とするネイティブバイナリデプロイメントモデルまで、ソフトウェアを実行するすべてのマシンで必要です。 Liteモデルはこの問題をさらに悪化させます。LITEおよびSTANDARDライセンスは、契約上、シングルスレッド、シングルプロセスでの実行に制限されているため、これらのティアでAspriseを呼び出すすべてのASP.NET Coreエンドポイント、Windowsサービス、またはAzure Functionは、ライセンス契約に違反することになります。 .NETチームで本番システムを構築する場合、これらは理論上の懸念事項ではなく、導入を阻害する要因となります。導入前に高額なEnterpriseライセンスを取得するか、ライブラリを切り替えるかの選択を迫られるからです。

Asprise OCRの理解

Asprise OCRは、Asprise Inc.が提供する商用OCR製品です。この製品は当初Java OCRエンジンとして開発されました.NETサポートは、マネージドC#コードと基盤となるアンマネージドOCRバイナリを接続するネイティブライブラリラッパーを介して後から追加されました。 このブリッジアーキテクチャは、 .NET開発者向けライブラリの決定的な特徴です。

主な建築上の特徴:

  • **Java優先設計:**主要なドキュメント、サンプルコード、SDKのサンプルはすべてJavaで記述されています。 .NET開発者は、Javaから頭の中で翻訳するか、あるいは乏しい二次的なドキュメントに頼るしかない。 -**ネイティブバイナリの依存関係:**プラットフォーム固有のアンマネージドDLLが、デプロイメントディレクトリまたはシステムパスに存在する必要があります。 正しいバイナリはプロセスのアーキテクチャに一致しなければなりません—32ビットプロセスではaocr_x64.dllが必要です。
  • 手動のエンジンライフサイクル: ライブラリはそ for Java起源に由来するCスタイルの初期化パターン(Ocr.SetUp(), ocr.StartEngine(), ocr.StopEngine())を公開します。 IDisposable実装はありません。 StopEngine()を忘れるとネイティブメモリがリークします。 -ライセンス階層のスレッド制限: Lite (約299ドル)およびSTANDARD(約699ドル)の階層では、シングルスレッド、シングルプロセスでの実行のみが許可されます。 マルチスレッド機能を利用するにはEnterpriseが必要となり、そのためには営業担当者への問い合わせが必要です。
  • エラーコード、例外はなし: 認識失敗はnullリターンまたは"ERROR:"で始まる文字列として表れ、C/Javaのエラーコードの慣例に従っています。.NETの例外パターンではありません。
  • 20以上のOCR言語: .NETエコシステム向けに構築された代替製品と比べて大幅に少ない。

エンジンライフサイクル問題

AspriseのOCR呼び出しはすべて、明示的なエンジン管理を必要とします。 このパターンは、静的なグローバル設定、インスタンスの作成、言語文字列を使用したエンジンの起動、および完了後のエンジンの停止という、4つの必須ステップで構成されています。 エンジン停止をスキップすると、ガベージコレクタが管理されていないメモリを解放できないため、ネイティブリソースがリークします。

// Asprise: four required steps before reading a single image
Ocr.SetUp();                              // Static global init
Ocr ocr = new Ocr();
try
{
    ocr.StartEngine("eng", Ocr.SPEED_FAST);   // Allocates native engine
    string text = ocr.Recognize(
        imagePath,
        Ocr.RECOGNIZE_TYPE_TEXT,
        Ocr.OUTPUT_FORMAT_PLAINTEXT);
    return text;
}
finally
{
    ocr.StopEngine();                         // Must call — no IDisposable fallback
}

このパターンは三つの一般的な状況で静かに失敗します:StopEngine()が呼ばれる前にキャッチされない例外、クリーンアップをスキップするリファクターされたコードパス、LITE/STANDARDで並列処理を許可しないライセンスの制限がある並行使用。 finallyブロックは最初の問題を軽減しますが、ライセンスの制限によりこのパターンはサーバーのワークロードには無意味です。

IronOCRを理解する

IronOCRは、 .NET向けにゼロから構築された商用OCRライブラリです。 これは、最適化されたTesseract 5エンジンをベースに、自動前処理、ネイティブPDFサポート、そして標準的な.NET規約に準拠したマネージドAPIを備えています。

主な特徴:

  • 単一のNuGetパッケージ: dotnet add package IronOcrはすべてをインストールします—ネイティブバイナリの管理、tessdataフォルダー、プラットフォーム固有の設定は不要です。
  • IDisposableリソース管理: IDisposableを実装します。 usingステートメントはクリーンアップを自動で処理します。 -**すべてのライセンスレベルでスレッドセーフ:**人工的なスレッド制限はありません。 $999 Liteライセンスで並列に使用しても安全です。
  • 自動前処理: 組み込みのEnhanceResolution()メソッドにより、外部の画像処理ライブラリは必要ありません。 -ネイティブPDF入力: PDFパスを直接渡すことができます。ページを画像に変換するための外部レンダリングライブラリは不要です。
  • 125以上の言語: 別々のNuGetパッケージとして利用可能で(IronOcr.Languages.Frenchなど)、必要に応じてのみインストールされます。
  • 検索可能なPDF出力: result.SaveAsSearchablePdf()はあらゆるOCR結果からPDF/A準拠の出力を生成します。 -**構造化データへのアクセス:**結果として、ピクセル座標と単語ごとの信頼度スコアとともに、単語レベル、行レベル、段落レベルのテキストが表示されます。

機能比較

フィーチャーAsprise OCRIronOCR
主要プラットフォームJava.NET
NuGetデプロイメントラッパー+ネイティブDLL単一パッケージ、追加料金なし
スレッド処理(全ティア)Enterprise版のみ全ティア
サーバー/Webアプリケーションでの使用Enterprise版のみ全ティア
ネイティブPDF入力なしはい
組み込みの前処理なしはい
OCR言語20歳以上125+
検索可能なPDF出力なしはい

詳細な機能比較

フィーチャーAsprise OCRIronOCR
アーキテクチャ
デザインの由来Java、.NET(二次).NETネイティブ
APIスタイル整数定数を用いたCスタイル流暢なC#言語
IDisposable / usingパターン未実装はい(OcrInput
エラー処理null / エラー文字列が返されます.NET の例外
ネイティブからの例外伝播相互運用性のギャップ例外管理
スレッド処理とサーバーの使用
マルチスレッド処理 - Liteティア禁止許可されています
マルチスレッド処理 - 標準ティア禁止許可されています
マルチスレッド処理 —Enterprise/上位層許可されています許可されています
.NET Core Web APIEnterpriseが必要ですどのティアでも
Azure Functions / AWS LambdaEnterpriseが必要ですどのティアでも
並列処理。各バッチごとにEnterpriseが必要ですどのティアでも
入力サポート
画像ファイル(JPG、PNG、TIFF)はいはい
ネイティブPDF入力いいえ(外部ライブラリが必要です)はい
パスワードで保護されたPDFなしはい
バイト配列/ストリーム入力制限的はい
複数ページTIFF制限的はい
前処理
デスキュー手動/外部内蔵
ノイズ除去手動/外部内蔵
コントラスト強調手動/外部内蔵
二値化手動/外部内蔵
解像度スケーリング(DPI)手動/外部内蔵
出力
プレーンテキストはいはい
検索可能なPDF出力なしはい
単語座標制限的はい
単語ごとの信頼度スコアなしはい
hOCRエクスポートなしはい
言語
言語数20歳以上125+
言語のインストールバンドルNuGetパッケージ
厳密な型付け言語列挙型いいえ(文字列コード)はい(OcrLanguage
デプロイメント
ネイティブバイナリが必要はい(プラットフォーム固有のDLL)なし
Tessdataフォルダ管理なしなし
Docker手動バイナリ設定箱から出してすぐに使えます
Linuxlibaocr.soが必要ですNuGetハンドル
価格について
エントリー価格価格についてAspriseに問い合わせてください(LITE、シングルスレッドのみ)$999(Lite、すべての機能)
サーバー利用料(エントリー価格)Enterprise(営業担当までお問い合わせください)$999(Lite)

ネイティブ.NETとJavaブリッジアーキテクチャの比較

.NETチームにとって根本的な問題は、どちらのライブラリが仕様上より多くの機能を備えているかではなく、実際に使用する展開環境や運用環境において、どちらのライブラリが第一級 for .NETコンポーネントとして機能できるか、ということである。

驚きのアプローチ

Aspriseは、マネージド.NETコードとアンマネージドOCRエンジンとの間で、P/Invokeマーシャリングを介して通信を行います。 asprise-vs-ironocr-examples.csソースが基礎となるメカニズムを示します:

// Asprise interop layer — bridging managed C# to native OCR engine
[DllImport("aocr.dll")]
private static extern IntPtr OCR(string imagePath, int type);

public string ExtractText(string imagePath)
{
    // P/Invoke call into unmanaged DLL
    IntPtr result = OCR(imagePath, 0);
    return Marshal.PtrToStringAnsi(result);  // Manual string marshal
}

上位レベルのAPIでは、開発者はクラスラッパーを介して同じブリッジを呼び出しますが、デプロイメント要件は変わりません。すべてのターゲットマシンには、正しいネイティブバイナリが正しいパスに配置され、正しいプロセスアーキテクチャに一致している必要があります。 BadImageFormatExceptionをスローします。Linux DockerコンテナでDllNotFoundExceptionをスローします。 どちらのエラーもビルド時には検出されません。

IronOCRのアプローチ

IronOCRは単一のNuGet参照としてインストールされます。 このパッケージは、NuGetのプラットフォーム固有のパッケージ選択メカニズムを通じて、すべてのネイティブ依存関係を内部的に処理します。

// Installation — one command, all platforms
// dotnet add package IronOcr

// License setup
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Basic OCR — no native binary setup, no tessdata, no config files
var text = new IronTesseract().Read("document.jpg").Text;

OcrInputで手動エンジンライフサイクルコールを置き換えます。 呼び出すStopEngine()もありません。 ガベージコレクタとtry/finallyの足場を必要とせずに例外シナリオでクリーンアップを正しく処理します。

詳細な設定手順については、 IronTesseract のセットアップガイドを参照してください。

ねじ切りモデル

スレッド制限は、 .NETサーバー開発者にとって、Aspriseと他の代替製品との最も重要な違いである。 これはパフォーマンス上の問題ではなく、ライセンス遵守の問題です。

驚きのアプローチ

LiteライセンスおよびSTANDARDライセンスでは、マルチスレッドおよびマルチプロセス実行が明示的に禁止されています。 複数のスレッドから同時にAspriseを呼び出すコードは、該当するティアのライセンス契約に違反します。 ASP.NET Coreは、デフォルトではスレッドプール上でリクエストを処理します。 つまり、 Lite/STANDARD では、Asprise を呼び出すすべての標準 Web API コントローラーがライセンス違反となります。

// ASPRISE LITE/STANDARD — violates license in ASP.NET Core context
// Web server thread pool = multiple concurrent threads = prohibited
[ApiController]
public class OcrController : ControllerBase
{
    [HttpPost("extract")]
    public IActionResult ExtractText(IFormFile file)
    {
        // Two concurrent requests = two threads = license violation
        var ocr = new Ocr();
        ocr.StartEngine("eng", Ocr.SPEED_FAST);
        var text = ocr.Recognize(tempPath, Ocr.RECOGNIZE_TYPE_TEXT, Ocr.OUTPUT_FORMAT_PLAINTEXT);
        ocr.StopEngine();
        return Ok(text);
    }
}

Lite/STANDARD におけるバッチ処理は、利用可能な CPU コア数に関わらず、強制的に逐次処理されます。

// ASPRISE LITE/STANDARD — sequential only (100 docs at 2 sec each = 3+ minutes)
Ocr.SetUp();
Ocr ocr = new Ocr();
try
{
    ocr.StartEngine("eng", Ocr.SPEED_FAST);
    foreach (var path in imagePaths)  // Cannot use Parallel.ForEach — license violation
    {
        string text = ocr.Recognize(path, Ocr.RECOGNIZE_TYPE_TEXT, Ocr.OUTPUT_FORMAT_PLAINTEXT);
        results.Add(text);
    }
}
finally
{
    ocr.StopEngine();
}

ENTERPRISEはスレッド制限を解除しますが、ENTERPRISEは公開されていない価格でAspriseのセールスに連絡が必要です。

IronOCRのアプローチ

IronTesseractはスレッドセーフであり、いかなるライセンスタイアにもスレッド制限はありません。 $999 Liteライセンスでの並列バッチ処理は完全にサポートされています:

// IronOCR — parallel batch on any license tier
// 100 docs at 2 sec each, 8 cores = ~25 seconds vs 200 seconds sequential
var results = imagePaths
    .AsParallel()
    .Select(path => new IronTesseract().Read(path).Text)
    .ToList();

ASP.NET Coreのコントローラーは、特別な設定なしに動作します:

// IronOCR — concurrent requests on any license tier
[ApiController]
public class OcrController : ControllerBase
{
    [HttpPost("extract")]
    public IActionResult ExtractText(IFormFile file)
    {
        // Thread-safe on Lite, Plus, Professional, Unlimited — all tiers
        var text = new IronTesseract().Read(tempPath).Text;
        return Ok(text);
    }
}

バッチ処理ワークロードにおける並列スループットパターンについては、マルチスレッドの例を参照してください。

画像の前処理

Aspriseは、画像を前処理せずにネイティブエンジンに渡します。 スキャン品質が低い場合(ページの歪み、ノイズ、コントラスト不足など)は、認識処理の前に画像の欠陥を補正する前処理段階がないため、OCRの精度が直接低下します。

驚きのアプローチ

前処理には、外部の画像ライブラリが必要です。 Aspriseを使用する開発者は、ImageMagick、SkiaSharp、またはSystem.Drawingなどの依存関係を追加し、前処理操作を手動で実行して、処理済みの画像を一時ファイルに保存し、そのファイルをAspriseに渡します:

// Asprise preprocessing: external dependency required
// 1. Load with external library
// 2. Apply corrections (deskew, denoise, contrast) with external library
// 3. Save to temp file
// 4. Pass temp file to Asprise

var ocr = new Ocr();
ocr.StartEngine("eng", Ocr.SPEED_FAST);
// preprocessedImagePath comes from your external preprocessing pipeline
string text = ocr.Recognize(preprocessedImagePath, Ocr.RECOGNIZE_TYPE_TEXT, Ocr.OUTPUT_FORMAT_PLAINTEXT);
ocr.StopEngine();

これにより、ビルドの依存関係が増え、追加のライブラリによる実行時のオーバーヘッドが発生し、開発者は効果的な補正を実装するために画像処理を十分に理解している必要があります。

IronOCRのアプローチ

前処理はOcrInputに組み込まれています。 外部ライブラリと入念なパラメータ調整で50~100行かかっていた処理が、5つのメソッド呼び出しで済むようになります:

// IronOCR — preprocessing built in, no external dependencies
using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");
input.Deskew();               // Correct page rotation
input.DeNoise();              // Remove scanner artifacts
input.Contrast();             // Improve text/background separation
input.Binarize();             // Convert to black/white for cleaner engine input
input.EnhanceResolution(300); // Scale to optimal DPI

var result = new IronTesseract().Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");

回転角度が予測できないスキャン画像の場合、自動傾き補正機能により、開発者が回転値を検知したり指定したりする必要なく、任意の角度に対応します。 画像品質補正ガイドでは、フィルターの全セットと、それぞれの適用タイミングについて解説しています。

PDF処理

PDFの入力は、ドキュメント処理パイプラインにおいて頻繁に求められる要件です。 AspriseはネイティブなPDFサポートを提供していません。このライブラリは画像ファイルを処理します。 AspriseでPDFを処理するには、まず外部ライブラリを使用して各ページを画像に変換し、その後、各画像ファイルを個別に処理する必要があります。

驚きのアプローチ

// Asprise PDF workaround — external library required to render PDF pages
var images = ExternalPdfLibrary.RenderPages("invoice.pdf");

Ocr.SetUp();
Ocr ocr = new Ocr();
try
{
    ocr.StartEngine("eng", Ocr.SPEED_FAST);
    var allText = new System.Text.StringBuilder();
    foreach (var imagePath in images)
    {
        string pageText = ocr.Recognize(imagePath, Ocr.RECOGNIZE_TYPE_TEXT, Ocr.OUTPUT_FORMAT_PLAINTEXT);
        allText.Append(pageText);
    }
    return allText.ToString();
}
finally
{
    ocr.StopEngine();
}
// Also: clean up temp image files

このアプローチは、PDFレンダリングの依存関係(通常はiText、PDFSharp、または商用レンダラー)を追加し、一時ファイルの管理が必要になり、ネイティブPDFリーダーが保持するPDFメタデータと構造が失われます。 パスワードで保護されたPDFには、3つ目のコンポーネントが必要です。

IronOCRのアプローチ

IronOCRはPDFを直接読み込みます。 OcrInput.LoadPdf()メソッドは内部でレンダリングを処理し、複数ページの文書やパスワード保護されたファイルを含みます:

// IronOCR — native PDF input, no external rendering library
using var input = new OcrInput();
input.LoadPdf("invoice.pdf");
var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);

// Password-protected PDFs — same API, one parameter
using var secureInput = new OcrInput();
secureInput.LoadPdf("confidential.pdf", Password: "secret");
var secureResult = new IronTesseract().Read(secureInput);

// Generate searchable PDF from a scanned document
var scanResult = new IronTesseract().Read("scanned-contract.pdf");
scanResult.SaveAsSearchablePdf("searchable-contract.pdf");

PDF OCRガイドでは、ページ範囲の選択、異なる種類のPDFの混在への対応、およびアーカイブワークフロー向けの検索可能なPDF出力について解説しています。

APIマッピングリファレンス

Asprise OCRIronOCR相当値
Ocr.SetUp()不要
new Ocr()new IronTesseract()
ocr.StartEngine("eng", Ocr.SPEED_FAST)不要(初回使用時にエンジンが初期化されます)
ocr.Recognize(path, type, format)ocr.Read(path)
Ocr.RECOGNIZE_TYPE_TEXTデフォルトの動作
Ocr.RECOGNIZE_TYPE_BARCODEocr.Configuration.ReadBarCodes = true
Ocr.RECOGNIZE_TYPE_ALLocr.Configuration.ReadBarCodes = true
Ocr.OUTPUT_FORMAT_PLAINTEXTresult.Text
Ocr.OUTPUT_FORMAT_XMLresult.Words / 構造化結果
Ocr.OUTPUT_FORMAT_PDFresult.SaveAsSearchablePdf()
Ocr.SPEED_FASTESTocr.Configuration速度設定
Ocr.SPEED_FASTデフォルト設定
Ocr.SPEED_SLOW高精度設定
ocr.StopEngine()必要ありません(usingがクリーンアップを処理します)
言語文字列"eng+fra"ocr.Language = OcrLanguage.English; ocr.AddSecondaryLanguage(OcrLanguage.French)
手動による try/finally クリーンアップusing var input = new OcrInput()
エラー文字列の戻り値.NET Standardの例外

チームが Asprise から IronOCR への移行を検討する際

本番環境への移行を阻む要因

スレッド数の制限は、ほとんどの本番環境における.NETワークロードにとって、重大な障害となっています。 開発チームがAsprise Liteを使用してOCR機能を構築している最中、シングルスレッドでのテストは成功し、すべて正常に動作している。 その後、その機能が ASP.NET Core API の背後にあるステージング環境にデプロイされると、テストリクエストが同時に到着し、アプリケーションはエラーをスローするか、技術的に準拠していない状態で動作します。 解決策としては、Enterpriseへのアップグレード(それに伴う費用および営業担当者の関与を含む)か、ライブラリの置き換えのいずれかとなります。 本番環境ではなく、ステージング環境でこの段階に達したチームは幸運だと言えます; リリース後にこの問題に気付いたユーザーは、より緊急性の高い移行を迫られることになります。 IronOCRはこの問題の全クラスを解決します—$999 Liteライセンスは、制限なしに並行要求処理、バッチ並列処理、Windowsサービス、クラウド機能のサポートを行います。

導入の複雑さによるコスト

Dockerコンテナ、Linux VM、Kubernetesポッドといった最新のデプロイ環境で運用するチームは、Aspriseを利用することで継続的なメンテナンスコストを負担することになりますが、これは純粋なNuGetパッケージでは発生しないコストです。 すべてのコンテナイメージのビルドには、ターゲットアーキテクチャに対応した正しいネイティブバイナリを含める必要があります。 複数のプラットフォームを対象とするすべてのCI/CDパイプラインは、プラットフォーム固有のファイルの組み込みを処理する必要があります。 本番環境のLinuxコンテナでネイティブライブラリが欠落している場合、これはビルド時のエラーではなく、実行時に検出される問題です。 64ビットプロセスにロードされた32ビットDLLのデバッグに何時間も費やした経験のあるチームなら、そのコストを具体的に理解しているはずです。 IronOCRのNuGet限定のデプロイメントにより、この種のデプロイメント失敗は完全に排除されます。

Javaドキュメントの問題

.NETアプリケーションを開発するチームには、Javaの例ではなく、C#の例が必要です。 Aspriseの主要なドキュメント、APIリファレンス、およびコミュニティリソースは、Java開発者を対象としています。 Aspriseのドキュメントを読む.NET開発者は、Javaの構文、Javaのパッケージ規約、およびJava固有のパターンをC#の対応する表現に変換します。ただし、.NETラッパーがJava側のすべての機能を公開しているわけではないため、その変換が必ずしも直訳とは限らない場合があります。 IronOCRのドキュメント、チュートリアル、およびコードサンプルは、C#開発者を対象に作成されています。 "画像からのテキスト読み取り"チュートリアルおよびチュートリアルハブ全体では、翻訳の手間をかけずに、各機能について動作するC#のサンプルコードを提供しています。

PDFパイプラインのギャップ

PDF形式のスキャン文書、請求書、契約書、またはフォームを処理するチームは、依存関係グラフにPDFレンダリングライブラリを追加しない限り、Aspriseを使用することはできません。 そのレンダリングライブラリには、独自のライセンス上の考慮事項、メンテナンスの負担、および潜在的な非互換性が伴います。 OCRとPDFを単一のスタックで必要とするチームにとって、IronOCRは両方をネイティブに処理します。 スキャンした入力データから検索可能なPDFを作成する機能(アーカイブやコンプライアンスのワークフローにおいて一般的な要件)は、Aspriseのどのライセンスレベルにも同等の機能はありません。

言語対応のギャップ

Aspriseは20以上のOCR言語に対応しています。 IronOCRは125以上の機能をサポートしており、それぞれを独立したNuGetパッケージとしてインストール可能です。 IronOCRではサポートされているものの、Aspriseではサポートされていないアラビア語、ヒンディー語、タイ語、その他数十の言語で文書を処理するチームは、Aspriseを通じて多言語サポートを利用する方法がありません。多言語ガイドでは、複数の言語パックのインストールと組み合わせ方、および複数の文字体系にわたる同時認識について解説しています。

一般的な移行の考慮事項

エンジンライフサイクルコードの置換

移行における最大の機械的変更は、Aspriseエンジンのライフサイクルパターンを削除し、直接IronTesseractインスタンス化と交換することです。 SetUp() / StartEngine() / Recognize() / Read()呼び出しに変わります:

// Before: Asprise lifecycle (15 lines, manual cleanup)
Ocr.SetUp();
Ocr ocr = new Ocr();
try
{
    ocr.StartEngine("eng", Ocr.SPEED_FAST);
    string text = ocr.Recognize(
        imagePath,
        Ocr.RECOGNIZE_TYPE_TEXT,
        Ocr.OUTPUT_FORMAT_PLAINTEXT);
    return text;
}
finally
{
    ocr.StopEngine();
}

// After: IronOCR (1 line)
return new IronTesseract().Read(imagePath).Text;

多くの文書を連続的に処理するパフォーマンスに敏感なコードには、IronTesseractインスタンスを再利用し、新しいものを呼び出しごとに作成しないでください—エンジンの初期化にはオーバーヘッドがあり、連続的に使用される単一のインスタンスは、各文書ごとに作成および廃棄するよりも効率的です。

文字列ベースの言語コードの置換

Aspriseは言語選択に文字列パラメータを使用します("eng", "fra", "eng+fra")。 IronOCRは強く型付けされたOcrLanguage列挙型を使用し、二次言語APIを持っています。 多言語ガイドでは、利用可能な言語識別子と、それぞれに必要な NuGet パッケージについて解説しています:

// Before: Asprise string-based language
ocr.StartEngine("eng+fra", Ocr.SPEED_FAST);

// After: IronOCR strongly-typed language enum
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.French);
var result = ocr.Read(imagePath);

エラー文字列のチェックの置換

Aspriseは、認識に失敗した場合、nullまたはエラー接頭辞が付いた文字列を返します。 IronOCRは.NET例外をスローします。 nullと文字列プレフィックスチェックを標準のtry/catchブロックで置き換えます。 これにより、OCRエラー処理が.NETの例外処理モデルと整合し、解析されたエラー文字列ではなく、完全なスタックトレースや例外型の階層構造にアクセスできるようになります。

並列処理の実現

移行後、既存のParallel.ForEachまたはPLINQに変換できます。 Lite/STANDARD では従来順次処理されていたドキュメントのバッチ処理において、並列処理はスループットを直接的に向上させます。 非同期OCRガイドでは、スレッドプールの飽和を避けるためにノンブロッキングOCRが推奨されるWebアプリケーションのコンテキストにおける非同期パターンについて解説しています。

IronOCRの追加機能

この比較で取り上げた分野以外にも、IronOCRにはAspriseにはない独自の機能があります:

  • OCR中のバーコード読み取り: 文書から分割して条バーコードとQRコードを抽出するocr.Configuration.ReadBarCodes = trueを有効にします—二番目のライブラリは不要です。
  • 領域ベースのOCR: 文書の特定の領域からCropRectangleを使用してテキストを抽出します。請求書のヘッダー、フォームフィールド、および構造化データゾーンに便利です。
  • **信頼度スコア:**WORDごとの認識信頼度および全体的な認識信頼度値にアクセスし、信頼度の低い抽出結果を特定して、人間によるレビューに回すことができます。
  • **構造化データの抽出:**ページ、段落、行、WORD単位で結果オブジェクトをナビゲートでき、それぞれにピクセル座標が付与されるため、単なるテキスト出力にとどまらない、レイアウトを意識したドキュメント解析が可能になります。
  • hOCR エクスポート: 認識結果を hOCR 形式でエクスポートし、下流の文書処理ツールと連携させます。
  • **特殊な文書認識:**一般的なTesseractの認識機能を超える、パスポート、MICR小切手、ナンバープレート、手書き文字に特化したワークフロー。
  • 進捗の追跡: 長時間実行されるバッチ処理中に進捗イベントを購読し、UI フィードバックやモニタリングに活用します。

.NETの互換性と将来の準備

IronOCRは.NET Standard 2.0を対象としており、これには.NET Framework 4.6.1以降、.NET Core 2.0以降、および.NET 5から.NET 9以降のすべてのバージョンが含まれます。 このライブラリは、.NETのリリースサイクルに合わせて定期的に更新されており、Windows x64、Windows x86、Linux x64、macOS、Docker、Azure App Service、およびAWS Lambda上でテストされています。 Asprise for .NET互換性は、そのネイティブバイナリモデルによって制約されています。新しいプラットフォームターゲット(ARM64、WASM)にはAsprise Inc.による新しいネイティブビルドが必要であり、Java優先のリリースサイクルにより、.NETプラットフォームの更新が遅れる可能性があります。 現在.NET8 および.NET9 を対象とし、2026年に.NET10 への移行を計画しているチームにとって、IronOCR のマネージド NuGet アーキテクチャは、ネイティブバイナリに関する懸念を抱くことなく、シンプルな互換性パスを提供します。

結論

Asprise OCRは、.NETラッパーを備えたJava OCRライブラリです。 Javaの遺産は偶然のものではありません。それは、デプロイメントモデル(プラットフォーム固有のネイティブDLL)、APIのスタイル(整数定数を使用したCスタイルのライフサイクルメソッド)、ドキュメントの言語(翻訳が必要なJavaのサンプル)、およびスレッドに関する制限(ライセンス契約によるLite/STANDARDのシングルスレッド)を定義しています。 たまたま.NETプロジェクトを抱えているJavaチームにとって、Aspriseのクロス言語対応は理にかなっています。 本番システムを構築する.NETチームにとって、こうした特性はあらゆる段階で障害となります。

スレッドに関する制限については、特に注意を払う必要があります。 Aspriseの最も手頃な2つのプラン(製品の評価を行っているチームの大部分が利用しているプラン)では、マルチスレッドおよびマルチプロセスでの実行が禁止されています。 すべてのASP.NET Core Web API、すべての作業キューを持つWindowsサービス、すべての並行トリガーを処理するAzure Function:これらは標準 for .NETプロダクションパターンであり、すべてにAspriseのENTERPRISEライセンスが必要です。IronOCRの$999 Liteライセンスは、これらすべてを制限なしにカバーします。

導入の複雑さは、2番目に重要な実務上の懸念事項である。 Dockerコンテナを実行するチーム、Linuxビルド、またはプラットフォームをまたがるCI/CDパイプラインは、プラットフォーム固有のネイティブバイナリをAspriseで管理しなければなりません。それらの失敗—DllNotFoundException, BadImageFormatException—はターゲットインフラストラクチャでの実行時に発生し、ビルド時ではありません。IronOCRは標準のNuGetパッケージ管理を通じてデプロイされ、パッケージ選択メカニズムはプラットフォーム固有のバイナリを内部で処理します。 デプロイメントの対象となるのは、単一のNuGet参照です。

.NETチームが新しいOCR統合を開始する際の出発点は明確です:単一のnew IronTesseract().Read("document.jpg").Textです。 エンジン初期化なし、ネイティブバイナリソースなし、スレッドライセンス監査なし。

ご注意: Asprise OCR, PDFSharp, Tesseract, および iText はそれぞれの所有者の登録商標です。 本サイトはAsprise、Google、empira Software GmbH、またはiText Groupと提携しておらず、推薦またはスポンサーされていません。すべての製品名、ロゴおよびブランドはそれぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

関連する記事

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。