フッターコンテンツにスキップ
他のコンポーネントと比較する

ABBYY FineReader Engine と IronOCR の比較: .NET OCR

XImage.OCRは、無料で利用できるTesseractエンジンと同じ機能を提供するOCRライブラリに対して商用ライセンス料を請求するだけでなく、必要な言語ごとに個別のNuGetパッケージをインストールするように要求します。そのため、英語のみの場合は2つのパッケージから始まり、小規模な多言語アプリケーションでは11個のパッケージにまで依存関係が拡大します。 この断片化はパッケージング上の特異性によるものではありません。 それは XImage.OCR の中心的なアーキテクチャ決定であり、ライブラリのすべての側面に影響を与えます:あなたの .csproj ファイル、CI/CD パイプライン、バージョン管理、そして最終的にはあなたが実際に購入している商業的価値への答え。

XImage OCRについて理解する

XImage.OCRは、RasterEdge社が提供する商用.NET OCRライブラリであり、同社の包括的なドキュメントイメージングSDKSuiteの一部です。このライブラリは、GoogleのオープンソースエンジンであるTesseractをラップし、OCR操作のためのマネージド.NETバインディングを提供します。 RasterEdgeは、既存のドキュメントイメージングエコシステムに組み込まれた、開発者EnterpriseOCRソリューションとしてこれを販売している。

このライブラリは.NET Standard 2.0および.NET Framework 4.5以降を対象としているため、既存のプロジェクトでも利用可能です。 主なサポート対象はWindowsであり、クロスプラットフォーム対応は最新の代替製品に比べてかなり限定的である。

主な建築上の特徴:

  • 分割言語パッケージ化: 各サポートされる言語は、個別の NuGet パッケージ (XImage.OCR.Language.English, XImage.OCR.Language.German, etc.) として提供され、個別のインストールとバージョン同期されたメンテナンスが必要です。
  • Tesseractコアエンジン:基盤となるOCR技術は、無料のラッパーが提供するものと同一です。Apache 2.0ライセンスのTesseractは無料で利用できます。 -組み込みの前処理なし:自動的な傾き補正、ノイズ除去、コントラスト強調、解像度補正なしで、生の Tesseract にアクセスできます。 poor-quality input produces poor output -スレッドセーフティの制限: Tesseract のラッパーである XImage.OCR はスレッドセーフではありません。 各同時スレッドは自分の OCRHandler インスタンスを必要とし、メモリ消費を比例的に増加させます。
  • RasterEdgeエコシステムとの連携: PDF処理には別途RasterEdge PDF SDKが必要であり、ネイティブPDF OCRはXImage.OCR自体には含まれていません。 -対応言語が限られている:約10~15種類の言語パッケージしか存在せず、標準のtessdataディストリビューションで無料で利用できる100種類以上の言語に比べるとはるかに少ない。

言語パッケージの断片化の実践

言語ごとにパッケージを分けることによる影響は、プロジェクトファイルに具体的に現れます。5つのヨーロッパ言語のドキュメントを処理するアプリケーションの場合、パッケージマニフェストは次のようになります。


<PackageReference Include="RasterEdge.XImage.OCR" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.English" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.German" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.French" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Spanish" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Italian" Version="12.4.0" />

<PackageReference Include="RasterEdge.XImage.OCR" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.English" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.German" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.French" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Spanish" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Italian" Version="12.4.0" />
XML

コアパッケージと言語パッケージのバージョン不一致は、実行時初期化エラーを引き起こします。 RasterEdge.XImage.OCR が 12.4.0 で XImage.OCR.Language.English が 12.3.0 の場合 — 部分更新後の現実的なシナリオ — ランタイムでライブラリが失敗し、バージョンの同期が原因であることを明確に特定しないエラーが発生します。 CI/CDパイプラインには、現在6つの異なる復元操作と6つの独立した障害発生箇所があります。 グローバル展開のためにアジア言語を追加すると、CJKパッケージが追加されます。中国語(簡体字)、中国語(繁体字)、日本語、韓国語はそれぞれ独自のパッケージを必要とするため、10言語のアプリケーションでは11個の個別のNuGet依存関係が必要になります。

IronOCRを理解する

IronOCRは、最適化されたTesseract 5エンジンをベースに構築された、 .NET向けの商用OCRライブラリであり、独自のプリプロセス機能と出力拡張機能を備えています。 OCRエンジン、すべての前処理機能、ネイティブPDF入力と検索可能なPDF出力、バーコード読み取り、フルクロスプラットフォームランタイムサポートを含む単一のNuGetパッケージとして出荷されます(IronOcr)。

主な特徴:

  • 単一パッケージ展開: すべてをインストールする dotnet add package IronOcr コマンドが一つ; ネイティブバイナリ管理なし、tessdataフォルダ構成なし、プラットフォーム固有のDLL調整なし
  • 自動前処理パイプライン: 組み込みの Deskew(), DeNoise(), Contrast(), Binarize(), EnhanceResolution() フィルターが認識前に OcrInput に直接適用されます — 外部の画像処理ライブラリは不要です。
  • ネイティブPDFサポート: input.LoadPdf() がPDFを直接読み取ります; result.SaveAsSearchablePdf() は検索可能なPDFを書き出します; パスワードで保護されたPDFは、単一のパラメータで処理されます。
  • スレッドセーフ設計: 単一の IronTesseract インスタンスが複数のスレッドにわたる同時リクエストを処理し、スレッドごとのインスタンス化を必要としません。
  • 125+言語のオプションNuGetパック: 言語は必要に応じて別々の IronOcr.Languages.* パッケージとしてインストールされます。 コア英語はデフォルトでバンドルされています -クロスプラットフォームランタイム: Windows(x86、x64)、Linux x64、macOS、Docker、Azure App Service、AWS Lambdaはすべて同じパッケージからサポートされています。
  • 構造化結果モデル: OcrResultPages, Paragraphs, Lines, Words, 一語ごとの座標と信頼度スコアを単一の結果オブジェクトを通じて公開します。
  • 価格設定: $999 Lite (永続), $1,499 Plus, $2,999 Professional — 一回限りの購入で1年分の更新が含まれます。

機能比較

フィーチャー XImage.OCR IronOCR
5つの言語に対応しNuGetパッケージ 6 1
組み込みの前処理 なし はい
ネイティブPDF入力 RasterEdge PDF SDKが必要です はい
検索可能なPDF出力 別途SDKが必要です はい
スレッドセーフ なし はい
クロスプラットフォーム 主にWindows Windows、Linux、macOS、Docker
利用可能な言語 約15 125+

詳細な機能比較

フィーチャー XImage.OCR IronOCR
パッケージ管理
NuGetパッケージ(英語のみ) 2 1
NuGetパッケージ(10言語) 11 1
バージョン同期要件 すべてのパッケージは一致している必要があります シングルバージョン
CI/CD リストア操作 1個入り 合計1個
OCRエンジン
コアエンジン Tesseract(無料ラッパーと同じ) 最適化されたTesseract 5
エンジンバージョン 4.x/5.x テッセラクト5
信頼度スコア 部分的(Tesseract経由) はい (result.Confidence)
前処理
デスキュー なし はい (input.Deskew())
ノイズ除去 なし はい (input.DeNoise())
コントラスト強調 なし はい (input.Contrast())
二値化 なし はい (input.Binarize())
解像度の向上 なし はい (input.EnhanceResolution(300))
ドキュメントサポート
画像入力 はい はい
ネイティブPDF入力 追加のSDKが必要です はい
パスワードで保護されたPDF 追加のSDKが必要です はい(単一パラメータ)
検索可能なPDF出力 追加のSDKが必要です はい
hOCR出力 なし はい
言語サポート
利用可能な言語の総数 約15 125+
英語はコアに含まれる はい はい
EUの24の公用語 不完全 全て込み
CJK言語 4つの別々のパッケージ 利用可能
アーキテクチャ
スレッドセーフティ スレッドセーフではありません スレッドセーフ
同時実行スレッドあたりのメモリ インスタンスあたり約100MB 共有単一インスタンス
地域ベースのOCR 制限 (ProcessRegion) はい (CropRectangle)
OCR中のバーコード読み取り なし はい
構造化結果モデル 基本的な文字列出力 ページ、行、単語、座標
デプロイメント
ウィンドウズ はい はい
Linux なし はい
macOS なし はい
Docker なし はい
Azure/AWS なし はい

パッケージの断片化と単一のNuGetパッケージの比較

XImage.OCRとIronOCRの最も明確な構造的違いは、言語サポートの処理方法にある。 これは些細なことではなく、プロジェクトに関わるすべてのチームメンバー、すべてのビルドパイプライン、そしてすべてのデプロイメントに影響を与える問題です。

XImage.OCRアプローチ

XImage.OCRは、各言語を個別のNuGetパッケージとして配布します。 コアインストールコマンドは、OCRエンジンのみをインストールします。 次に、必要な言語をそれぞれインストールします。

# XImage.OCR: Install sequence for a multilingual application
dotnet add package RasterEdge.XImage.OCR
dotnet add package XImage.OCR.Language.English
dotnet add package XImage.OCR.Language.German
dotnet add package XImage.OCR.Language.French
dotnet add package XImage.OCR.Language.Spanish
dotnet add package XImage.OCR.Language.Italian
dotnet add package XImage.OCR.Language.Portuguese
dotnet add package XImage.OCR.Language.ChineseSimplified
dotnet add package XImage.OCR.Language.ChineseTraditional
dotnet add package XImage.OCR.Language.Japanese
# 10 languages = 11 package commands
# XImage.OCR: Install sequence for a multilingual application
dotnet add package RasterEdge.XImage.OCR
dotnet add package XImage.OCR.Language.English
dotnet add package XImage.OCR.Language.German
dotnet add package XImage.OCR.Language.French
dotnet add package XImage.OCR.Language.Spanish
dotnet add package XImage.OCR.Language.Italian
dotnet add package XImage.OCR.Language.Portuguese
dotnet add package XImage.OCR.Language.ChineseSimplified
dotnet add package XImage.OCR.Language.ChineseTraditional
dotnet add package XImage.OCR.Language.Japanese
# 10 languages = 11 package commands
SHELL

コード自体も同様の複雑さを反映している。 多言語OCRを設定するには、すべての言語パッケージが既にインストールされている必要があります。ライブラリはコンパイル時にこれを検証できません。

// XImage.OCR: Language codes must match installed packages exactly
// If XImage.OCR.Language.German is not installed, this fails at runtime

var ocrHandler = new OCRHandler();

// ライセンス認証 required before any OCR operation
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-license-key");

// Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = new[] { "eng", "deu", "fra", "spa", "ita" };

string result = ocrHandler.Process(imagePath);
// XImage.OCR: Language codes must match installed packages exactly
// If XImage.OCR.Language.German is not installed, this fails at runtime

var ocrHandler = new OCRHandler();

// ライセンス認証 required before any OCR operation
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-license-key");

// Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = new[] { "eng", "deu", "fra", "spa", "ita" };

string result = ocrHandler.Process(imagePath);
' XImage.OCR: Language codes must match installed packages exactly
' If XImage.OCR.Language.German is not installed, this fails at runtime

Dim ocrHandler As New OCRHandler()

' ライセンス認証 required before any OCR operation
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-license-key")

' Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = New String() {"eng", "deu", "fra", "spa", "ita"}

Dim result As String = ocrHandler.Process(imagePath)
$vbLabelText   $csharpLabel

言語パッケージが欠落しているか、バージョンが間違っている場合、エラーはコンパイル時やパッケージの復元時ではなく、OCR呼び出しの実行時に発生します。 デプロイメントパイプラインにおいては、これは開発者のマシン上ではなく、本番環境またはプレプロダクション環境で問題を発見することを意味します。

IronOCRのアプローチ

IronOCRは単一パッケージとしてインストールされます。 一般的な欧米言語の言語サポートは、デフォルトで含まれています。 追加の言語パックは、同じ単一パッケージのパターンに従ってオプションのパッケージとしてインストールされますが、壊れた状態からではなく、正常に動作する状態から開始できます。

# IronOCR: Install everything in one command
dotnet add package IronOcr
# English included. Add specific language packs only when needed.
dotnet add package IronOcr.Languages.German
# IronOCR: Install everything in one command
dotnet add package IronOcr
# English included. Add specific language packs only when needed.
dotnet add package IronOcr.Languages.German
SHELL

複数言語OCRのコードではタイプセーフな OcrLanguage 列挙体の値を使用し、誤入力された言語識別子からくるランタイムエラーのクラスを排除します。

// IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);

var result = ocr.Read("multilingual-document.jpg");
Console.WriteLine(result.Text);
// IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);

var result = ocr.Read("multilingual-document.jpg");
Console.WriteLine(result.Text);
Imports IronOcr

' IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
ocr.AddSecondaryLanguage(OcrLanguage.German)
ocr.AddSecondaryLanguage(OcrLanguage.French)

Dim result = ocr.Read("multilingual-document.jpg")
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

IronTesseractのセットアップガイドでは、言語設定について詳細に解説しています。 多言語対応のハウツーガイドでは、複数の言語コンテンツを含む文書において、主要言語と補助言語を組み合わせる方法を解説します。

10言語アプリケーション用:XImage.OCR は11個のパッケージ、.csproj に11行を必要とし、アップデートが来たらすべての11個を継続してバージョン同期させます。IronOCR は .csproj で1パッケージを必要とし、必要に応じてオプションの言語別パックを追加できます。 その差はチーム間でさらに大きくなる。

前処理:Tesseractの生データと組み込みパイプラインの比較

XImage.OCRの主な技術的制約は、前処理機能がないことである。 このライブラリは画像強調処理を追加せずにTesseractをラップしているため、文書の品質がOCRの品質を直接的に制限します。 これは、実際の導入において決定的な制約となる。

XImage.OCRアプローチ

XImage.OCRは画像を直接Tesseractに渡します。 2度の傾き、スキャナーノイズ、150 DPIの解像度でスキャンされた請求書は、そのまま処理されます。 OCRHandler には画像修正のメソッドがありません。

// XImage.OCR: なし preprocessing available
// A skewed, noisy, low-DPI scan goes straight to Tesseract

var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

// Direct OCR on problematic image — skew, noise, and low resolution
// all degrade accuracy with no mitigation available in the library
string result = ocrHandler.Process(imagePath);

// To improve results, you would need:
// - External library (OpenCV.NET, ImageSharp, etc.)
// - 100-200 lines of deskew and noise-reduction code
// - Per-document-type tuning
// - Image processing expertise your OCR developer may not have
// XImage.OCR: なし preprocessing available
// A skewed, noisy, low-DPI scan goes straight to Tesseract

var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

// Direct OCR on problematic image — skew, noise, and low resolution
// all degrade accuracy with no mitigation available in the library
string result = ocrHandler.Process(imagePath);

// To improve results, you would need:
// - External library (OpenCV.NET, ImageSharp, etc.)
// - 100-200 lines of deskew and noise-reduction code
// - Per-document-type tuning
// - Image processing expertise your OCR developer may not have
' XImage.OCR: なし preprocessing available
' A skewed, noisy, low-DPI scan goes straight to Tesseract

Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"

' Direct OCR on problematic image — skew, noise, and low resolution
' all degrade accuracy with no mitigation available in the library
Dim result As String = ocrHandler.Process(imagePath)

' To improve results, you would need:
' - External library (OpenCV.NET, ImageSharp, etc.)
' - 100-200 lines of deskew and noise-reduction code
' - Per-document-type tuning
' - Image processing expertise your OCR developer may not have
$vbLabelText   $csharpLabel

回避策としては、別の画像処理ライブラリを取り込み、前処理コードを自分で記述し、ライブラリのアップデート後もそのコードを維持管理することです。 既にRasterEdgeのエコシステムに深く関わっているチーム向けには、他のRasterEdge SDKコンポーネントを通じて利用できるツールもありますが、そのためには追加製品の購入と統合が必要となります。

IronOCRのアプローチ

IronOCR は文書読み込みとOCR実行の間に OcrInput にチェイン可能なメソッドとして前処理を適用します。 外部ライブラリは不要です。

// IronOCR: 組み込みの前処理 pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply corrections in sequence
input.Deskew();              // Detect and correct rotation angle
input.DeNoise();             // Remove scanner artifacts and noise
input.Contrast();            // Enhance contrast for faded text
input.Binarize();            // Convert to clean black-and-white
input.EnhanceResolution(300); // Scale low-DPI images to 300 DPI

var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
// IronOCR: 組み込みの前処理 pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply corrections in sequence
input.Deskew();              // Detect and correct rotation angle
input.DeNoise();             // Remove scanner artifacts and noise
input.Contrast();            // Enhance contrast for faded text
input.Binarize();            // Convert to clean black-and-white
input.EnhanceResolution(300); // Scale low-DPI images to 300 DPI

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

' IronOCR: 組み込みの前処理 pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Using input As New OcrInput()
    input.LoadImage("low-quality-scan.jpg")

    ' Apply corrections in sequence
    input.Deskew()              ' Detect and correct rotation angle
    input.DeNoise()             ' Remove scanner artifacts and noise
    input.Contrast()            ' Enhance contrast for faded text
    input.Binarize()            ' Convert to clean black-and-white
    input.EnhanceResolution(300) ' Scale low-DPI images to 300 DPI

    Dim result = New IronTesseract().Read(input)
    Console.WriteLine(result.Text)
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
$vbLabelText   $csharpLabel

画像品質補正ガイドでは、前処理フィルターセット全体を網羅しています。 向きに特化した補正については、画像向き補正ガイドページ回転検出機能が、複数の角度で作成された文書に対応します。

前処理が実際の文書に及ぼす実質的な影響は大きい。 Tesseractを前処理なしで、150 DPIで5度の傾斜があるスキャン文書に適用した場合、精度は60~75%の範囲になります。 傾き補正と解像度向上により、同じ文書を300 DPIで回転補正すると、93~97%の精度に達する。 XImage.OCRは、外部コードなしではそのギャップを埋めることはできません。 IronOCRは5つのメソッド呼び出しでそれを閉じます。

価値提案 vs 無料のテセラクトラッパー

Tesseractラッパーの商用価格設定には、明確な答えが必要な質問が一つあります。それは、無料のラッパーでは得られない、商用製品を購入することで得られるメリットは何なのか、ということです。 XImage.OCRの場合、その質問に答えるのは本来あるべきよりも難しい。

無料代替案ギャップ

NuGetで提供されている charlesw/tesseract ラッパーは、800 万回以上ダウンロードされており、活発なメンテナンスが行われ、Apache 2.0 ライセンスで商用利用も無料です。 どちらも同じ Tesseract エンジンを呼び出しているため、基本的に XImage.OCR と同じ OCR 出力が得られます。違いは次のとおりです。

-言語サポート:無料のtessdataは100以上の言語に対応しています。 XImage.OCRは有料パッケージとして約15種類をサポートしています。 -コミュニティ: charlesw/tesseract には 3,000 件以上の Stack Overflow の質問と、豊富なコミュニティ ドキュメントがあります。 XImage.OCR には 100 未満しかありません -前処理:どちらのライブラリも組み込みの前処理機能を提供しておらず、両方とも画像を直接 Tesseract に渡します。 -スレッド処理:どちらも同じスレッドセーフティ制約(スレッドごとにインスタンスが必要)を持つ

商用製品が、無料版と比べて対応言語が少なく、コミュニティが小さく、前処理のギャップが同じで、スレッド処理モデルも同じである場合、ベンダーのサポートやRasterEdgeエコシステムとの統合以外に、商用製品としての価値提案を明確に示すことは難しくなる。

IronOCRを商用代替手段として利用する

IronOCRは、XImage.OCRや無料のラッパーにはない機能、すなわち自動前処理、ネイティブPDFサポート、スレッドセーフ設計、クロスプラットフォーム展開といった機能によって、その商用価格を正当化しています。 $999 Lite ライセンスは一回限りの永続購入です。 問題は、商用OCRにお金を払う価値があるかどうかではなく、多くの場合、それだけの価値があるということだ。 問題は、その金額に見合うだけの価値があるかどうかだ。

// What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

// IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");   // Native PDF — no extra SDK
input.Deskew();                          // Built-in preprocessing
input.DeNoise();                         // なし external library needed
var result = ocr.Read(input);
result.SaveAsSearchablePdf("output.pdf"); // Searchable PDF output
Console.WriteLine($"Confidence: {result.Confidence}%");

// XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
// Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
// What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

// IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");   // Native PDF — no extra SDK
input.Deskew();                          // Built-in preprocessing
input.DeNoise();                         // なし external library needed
var result = ocr.Read(input);
result.SaveAsSearchablePdf("output.pdf"); // Searchable PDF output
Console.WriteLine($"Confidence: {result.Confidence}%");

// XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
// Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
Imports IronOcr

' What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

' IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadPdf("scanned-invoice.pdf") ' Native PDF — no extra SDK
    input.Deskew() ' Built-in preprocessing
    input.DeNoise() ' なし external library needed
    Dim result = ocr.Read(input)
    result.SaveAsSearchablePdf("output.pdf") ' Searchable PDF output
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using

' XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
' Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
$vbLabelText   $csharpLabel

画像からテキストを読み取るチュートリアルC# Tesseract OCRガイドには、Tesseractの全機能が説明されています。 IronOCRが基本的なTesseractラッパーよりも優れている理由を具体的に検討しているチーム向けには、専用の"TesseractではなくIronOCRを選ぶ理由"ページで技術的な違いを詳細に解説しています。

PDF処理

PDF OCRは、XImage.OCRとIronOCRのアーキテクチャ上のギャップが運用コストに最も大きく影響する部分です。

XImage.OCRアプローチ

XImage.OCRはPDFをネイティブに処理しません。 このワークフローでは、PDFページを画像にレンダリングするために、別途購入が必要なRasterEdge PDF SDKを使用し、XImage.OCRが一時ファイルを介して1ページずつ処理します。

// XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
// Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

var pdfDocument = new PDFDocument(pdfPath); // Requires separate RasterEdge SDK

var results = new System.Text.StringBuilder();
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

for (int i = 0; i < pdfDocument.PageCount; i++)
{
    // Render PDF page to image at 200 DPI
    var pageImage = pdfDocument.RenderPage(i, 200);

    string tempPath = Path.GetTempFileName() + ".png";
    pageImage.Save(tempPath);

    try
    {
        string pageText = ocrHandler.Process(tempPath);
        results.AppendLine($"--- Page {i + 1} ---");
        results.AppendLine(pageText);
    }
    finally
    {
        File.Delete(tempPath); // Manual cleanup required
    }
}

return results.ToString();
// XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
// Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

var pdfDocument = new PDFDocument(pdfPath); // Requires separate RasterEdge SDK

var results = new System.Text.StringBuilder();
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

for (int i = 0; i < pdfDocument.PageCount; i++)
{
    // Render PDF page to image at 200 DPI
    var pageImage = pdfDocument.RenderPage(i, 200);

    string tempPath = Path.GetTempFileName() + ".png";
    pageImage.Save(tempPath);

    try
    {
        string pageText = ocrHandler.Process(tempPath);
        results.AppendLine($"--- Page {i + 1} ---");
        results.AppendLine(pageText);
    }
    finally
    {
        File.Delete(tempPath); // Manual cleanup required
    }
}

return results.ToString();
Imports System.Text
Imports System.IO

' XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
' Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

Dim pdfDocument As New PDFDocument(pdfPath) ' Requires separate RasterEdge SDK

Dim results As New StringBuilder()
Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"

For i As Integer = 0 To pdfDocument.PageCount - 1
    ' Render PDF page to image at 200 DPI
    Dim pageImage = pdfDocument.RenderPage(i, 200)

    Dim tempPath As String = Path.GetTempFileName() & ".png"
    pageImage.Save(tempPath)

    Try
        Dim pageText As String = ocrHandler.Process(tempPath)
        results.AppendLine($"--- Page {i + 1} ---")
        results.AppendLine(pageText)
    Finally
        File.Delete(tempPath) ' Manual cleanup required
    End Try
Next

Return results.ToString()
$vbLabelText   $csharpLabel

このパターンでは、一時ファイルの管理、明示的なクリーンアップ、および別の商用製品への依存関係が導入されます。 このパターンにおける200 DPIのレンダリングターゲットは、Tesseractの精度が最適となる300 DPIのしきい値を下回っており、これが画質にさらに影響を与えている。 PDFワークフローにXImage.OCRを使用しているチームは、実質的に、他の製品で1つの製品がカバーする機能を2つの製品に支払っていることになる。

IronOCRのアプローチ

IronOCRはPDFをネイティブに処理します。 中間ステップなし、一時ファイルなし、2つ目のSDKなし:

// IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");  // Direct PDF loading
var result = new IronTesseract().Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine(result.Text);
// IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");  // Direct PDF loading
var result = new IronTesseract().Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine(result.Text);
Imports IronOcr

' IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Using input As New OcrInput()
    input.LoadPdf("scanned-invoice.pdf")  ' Direct PDF loading
    Dim result = New IronTesseract().Read(input)
    result.SaveAsSearchablePdf("searchable-output.pdf")
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

パスワードで保護されたPDFには、次のパラメータが追加されます。

using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);
using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);
Imports IronOcr

Using input As New OcrInput()
    input.LoadPdf("encrypted.pdf", Password: "secret")
    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

PDF入力ガイドでは、複数ページのPDF、ページ範囲の選択、およびDPI設定について説明しています。 検索可能なPDFガイドには、出力オプションが記載されています。 文書アーカイブパイプラインを構築するチーム向けに、 C# を使用した PDF OCR のユースケースページでは、ワークフロー全体を網羅しています。

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

XImage.OCR IronOCR相当値 ノート
new OCRHandler() new IronTesseract() メインOCRクラス
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("key") IronOcr.License.LicenseKey = "key" ライセンス認証
ocrHandler.Language = "eng" ocr.Language = OcrLanguage.English 型安全な列挙型と文字列の比較
ocrHandler.Languages = new[] { "eng", "deu" } ocr.AddSecondaryLanguage(OcrLanguage.German) 多言語
ocrHandler.Process(imagePath) ocr.Read("image.jpg").Text コアOCR操作
ocrHandler.ProcessRegion(path, rect) input.LoadImage(path, new CropRectangle(x, y, w, h)) 地域ベースのOCR
ocrHandler.SetVariable("tessedit_char_whitelist", "0123456789") ocr.Configuration.WhiteListCharacters = "0123456789" 文字フィルタリング
result.Text result.Text 生のテキスト出力
result.MeanConfidence result.Confidence 信頼度パーセンテージ
同等のものはありません result.Words / result.Lines / result.Pages 構造化された結果
同等のものはありません input.Deskew() 組み込みの前処理
同等のものはありません input.DeNoise() 組み込みの前処理
同等のものはありません input.EnhanceResolution(300) 組み込みの前処理
RasterEdge PDF SDKが必要です input.LoadPdf(pdfPath) ネイティブPDF入力
RasterEdge PDF SDKが必要です result.SaveAsSearchablePdf("out.pdf") 検索可能なPDF出力
スレッドごとの OCRHandler インスタンス 単一の IronTesseract インスタンス ねじ安全モデル

チームがXImage.OCRからIronOCRへの移行を検討する場合

パッケージ管理はメンテナンス上の負担となっている

XImage.OCRの言語パッケージを2つか3つから始めたチームは、アプリケーションが8つか10の言語に拡張されたときに、しばしば転換点を迎える。 プロジェクトファイルには現在、9~11個のパッケージ参照が含まれており、すべてバージョン同期が必要です。 コアパッケージのみを更新した開発者が、あらゆる言語のOCR機能を密かに破壊してしまった。 パッケージキャッシュが古い言語パックを復元したため、CI/CDパイプラインが断続的に失敗します。 この段階では、バージョン同期のオーバーヘッドが言語ごとのパッケージングによって得られるメリットを上回ってしまうため、単一パッケージソリューションに統合することが、当然のアーキテクチャ上の決定となる。

実世界の文書品質には前処理が不可欠

XImage.OCRを管理された高品質のスキャンデータに適用するチームは、当初は精度に関する問題に遭遇しません。 この問題は、モバイル端末からの写真アップロード、旧式のアーカイブのスキャン、ファックス文書、手書きで記入され150 DPIでスキャンされたフォームなど、文書処理パイプラインが拡大する際に顕在化します。 前処理を行わない場合、どのラッパーを使用しても、これらの入力に対するTesseractの精度は低い。 そこでチームは選択を迫られる。独自のプリプロセッシングライブラリ統合を構築・維持するか、プリプロセッシング機能が組み込まれたソリューションに移行するかだ。 IronOCRに内蔵された傾き補正、ノイズ除去、解像度向上機能により、外部への依存が完全に排除され、OCR開発者に画像処理の専門知識を必要とせずに精度向上を実現します。

PDFワークフローには、2つ目のSDKの購入が必要です

チームのドキュメント処理パイプラインが画像ファイルからPDFへと拡張される場合(これはドキュメント処理アプリケーションで最も一般的な拡張経路です)、XImage.OCRは2つ目のRasterEdge製品の購入を強制します。 PDF SDKは別途商用ライセンスが必要です。 OCRの商用ライセンス料金を支払っているチームは、Enterprise環境で最も一般的な文書フォーマットでOCRを動作させるための2つ目の商用ライセンスの予算を組んでいなかった。 IronOCRはPDFをネイティブでサポートしているため、この懸念は最初から無関係です。また、 PDF OCRのサンプルは、その統合がいかに直接的であるかを明確に示しています。

クロスプラットフォーム展開が必須要件となる

XImage.OCRのWindows中心のアーキテクチャは、LinuxやmacOS開発環境上でのコンテナ化されたデプロイメントが考慮されるようになると、大きな制約となる。 現代 for .NET開発チームは、ローカル開発にDockerを使用し、Linuxベースのコンテナインフラストラクチャにデプロイします。 Windows専用のOCRライブラリは、そのスタックに参加できません。 IronOCRは、Windows、Linux、macOS、およびDockerを同じパッケージでサポートしており、設定変更は不要です。Docker導入ガイドLinux導入ガイドには、セットアップの詳細が記載されています。

スレッドセーフティはサーバーアプリケーションのスループットを制限する

サーバーアプリケーションにおけるOCR処理、バッチジョブの処理、または同時HTTPリクエストの処理には、マルチスレッド処理が必要です。 XImage.OCRのスレッドごとのハンドラーモデルでは、同時実行される各スレッドが独自のTesseractエンジンインスタンスをロードするため、言語ごと、スレッドごとに40~100MBのメモリを消費します。 5言語の文書を処理する4スレッドのサーバーは、OCRハンドラーインスタンスだけで約900MB~1.2GBのデータをロードします。 IronOCRのスレッドセーフ設計では、すべてのスレッドで単一のインスタンスを共有します。この単一のインスタンスは、メモリ消費量を増やすことなく、同時リクエストを処理します。 本番環境でメモリやスループットの限界に直面したチームは、その根本原因を突き止める際に、このアーキテクチャの違いに気づくことが多い。

一般的な移行の考慮事項

OCRHandlerをIronTesseractに置き換える

主要なコード置換は簡単です。 OCRHandlerIronTesseract に置き換え、文字列言語コード ("eng", "deu") をタイプセーフな OcrLanguage 列挙体の値に置き換え、画像読み込みを OcrInput でラップします。 ライセンス有効化が LicenseManager.SetLicense() から IronOcr.License.LicenseKey スタティックプロパティに移動し、環境変数から設定できるため、デプロイの安全性が向上します。

// Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key");
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";
string text = ocrHandler.Process(imagePath);

// After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
string text = result.Text;
// Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key");
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";
string text = ocrHandler.Process(imagePath);

// After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
string text = result.Text;
Imports System
Imports IronOcr

' Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key")
Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"
Dim text As String = ocrHandler.Process(imagePath)

' After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE")
Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadImage(imagePath)
    Dim result = ocr.Read(input)
    text = result.Text
End Using
$vbLabelText   $csharpLabel

画像入力に関する完全ガイドでは、ファイルパス、バイト配列、ストリーム、URLなど、すべての入力タイプを網羅しています。

前処理が存在しない場合に追加

XImage.OCRから移行するチームは、これまで利用できなかった前処理機能をすぐに追加できる機会を得られます。 今回の移行は単なるクラス名の変更ではなく、より良い選択肢がなかったために黙認されてきた精度上の問題を修正する機会でもある。 入力データを読み込んだ後、ドキュメントの種類に適したフィルターを追加します。

using var input = new OcrInput();
input.LoadImage(imagePath);

// Add these lines immediately after loading — no other changes needed
input.Deskew();
input.DeNoise();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
using var input = new OcrInput();
input.LoadImage(imagePath);

// Add these lines immediately after loading — no other changes needed
input.Deskew();
input.DeNoise();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
Imports IronOcr

Using input As New OcrInput()
    input.LoadImage(imagePath)

    ' Add these lines immediately after loading — no other changes needed
    input.Deskew()
    input.DeNoise()
    input.EnhanceResolution(300)

    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

画像フィルターのチュートリアルでは、特定の文書品質の問題に対してどのフィルターを適用すべきかについてのガイダンスを提供します。 これらの処理は、品質にばらつきのある文書にのみ適用してください。鮮明で高解像度のスキャン画像は前処理の恩恵を受けず、追加の手順によって処理時間が長くなります。

パッケージリストの簡素化

プロジェクトからすべてのXImage.OCRパッケージを削除してください。 複数の言語がインストールされているアプリケーションの場合、パッケージの削除が処理の中で最も時間がかかる部分です。

# Remove all XImage.OCR packages
dotnet remove package RasterEdge.XImage.OCR
dotnet remove package XImage.OCR.Language.English
dotnet remove package XImage.OCR.Language.German
dotnet remove package XImage.OCR.Language.French
# ... remove all language packages

# Add IronOCR
dotnet add package IronOcr
# Remove all XImage.OCR packages
dotnet remove package RasterEdge.XImage.OCR
dotnet remove package XImage.OCR.Language.English
dotnet remove package XImage.OCR.Language.German
dotnet remove package XImage.OCR.Language.French
# ... remove all language packages

# Add IronOCR
dotnet add package IronOcr
SHELL

CI/CDパイプラインを更新し、複数の復元操作を削除し、パッケージの依存関係検証手順を簡素化します。 バージョン同期ロジックは、自動化されている場合は完全に削除できる。

領域ベースのOCRの処理

XImage.OCR は ProcessRegion(imagePath, rectangle) を介して領域処理を公開します。 IronOCR は入力読み込み時に渡された CropRectangle を通じてこれを処理します。

// IronOCR region-based OCR
var region = new CropRectangle(x: 0, y: 0, width: 600, height: 100);
using var input = new OcrInput();
input.LoadImage("invoice.jpg", region);
var text = new IronTesseract().Read(input).Text;
// IronOCR region-based OCR
var region = new CropRectangle(x: 0, y: 0, width: 600, height: 100);
using var input = new OcrInput();
input.LoadImage("invoice.jpg", region);
var text = new IronTesseract().Read(input).Text;
' IronOCR region-based OCR
Dim region As New CropRectangle(x:=0, y:=0, width:=600, height:=100)
Using input As New OcrInput()
    input.LoadImage("invoice.jpg", region)
    Dim text As String = New IronTesseract().Read(input).Text
End Using
$vbLabelText   $csharpLabel

領域ベースのOCRガイド領域切り抜き例では、請求書やフォームなどの固定レイアウト文書に対するアプローチについて説明しています。

IronOCRの追加機能

IronOCRは、基本的な比較ポイント以外にも、XImage.OCRにはない機能を提供しています。

-非同期OCRリクエストパイプラインでドキュメントを処理するASP.NETアプリケーション向けの、ノンブロッキングOCR実行 -特殊な文書タイプパスポート、ナンバープレート、MICR小切手、手書き認識のための専用処理パス -速度最適化ページ分割モードとエンジンモードの選択を網羅し、精度要件がトレードオフを許容する場合にスループットを最適化する構成プロファイル -マルチフレームTIFF処理複数ページのTIFFのすべてのフレームが1回の呼び出しで読み込まれ、ページごとの結果が得られます。手動でのフレーム反復は不要です。

  • NuGetパッケージ NuGetで完全なバージョン管理と標準的なパッケージ管理ツールが利用可能です。

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

IronOCRは、 .NET 6、 .NET 7、 .NET 8、および.NET 9を対象としており、レガシープロジェクトとの互換性のために.NET Standard 2.0および.NET Framework 4.6.2以降を積極的にサポートしています。 このライブラリは、条件付きコンパイルやプラットフォーム固有のパッケージングを必要とせず、Windows、Linux、macOSで完全に動作するクロスプラットフォームのランタイムバイナリを提供します。 XImage.OCRは.NET Standard 2.0および.NET Framework 4.5以降を対象としており、従来の互換性は維持されていますが、最新の展開環境(Dockerコンテナ化、Linuxベースのクラウドインフラストラクチャ、macOS開発など)には実質的に対応していません。これらはテスト済みのサポート範囲外です。 IronOCRは.NETのリリースサイクルに合わせた定期的なアップデートを受け、単一パッケージのアーキテクチャにより、XImage.OCRの断片化されたモデルのようにパッケージごとに調整する必要なく、言語や機能を問わず互換性アップデートが一律に適用されます。

結論

XImage.OCRは、他の商用Tesseractラッパーと同様の根本的な制約を抱えています。つまり、無料技術の上にマネージドレイヤーを有料で提供しているにもかかわらず、無料ラッパーが既に提供している機能との明確な差別化を図っていないのです。断片化された言語パッケージモデルは、この問題をさらに悪化させています。10言語アプリケーションの場合、11個のパッケージ間でバージョン同期が必要となり、CI/CDの障害発生箇所は1箇所ではなく11箇所に増え、対応言語は最大でも15言語程度に制限されます。一方、無料のtessdataディストリビューションでは100以上の言語に対応しています。 RasterEdgeのエコシステムにすでに組み込まれているチームには、XImage.OCRを使用する正当な理由があります。 単体のOCRソリューションとして独自に評価するチームは、その商用価格を正当化するのに苦労するだろう。

前処理こそ、比較が最も明確になる技術的なギャップである。実際の文書は、解像度(DPI)が一定でなかったり、わずかに斜めから撮影されたり、古いハードウェアで印刷されたりするため、OCRが信頼できる結果を出すには画像補正が必要となる。 XImage.OCRは前処理機能を提供しません。 これらの入力に対して許容できる精度を実現するには、外部の画像処理コードを作成し、維持管理する必要がある。 IronOCRは、5つのメソッド呼び出しと外部依存関係なしでこれを処理します。

PDFサポートとクロスプラットフォーム展開は、XImage.OCRのアーキテクチャが複合的なコストを生み出す2つのシナリオを表しています。 PDF処理には、RasterEdgeの商用版を別途購入する必要があります。 LinuxおよびDockerによるデプロイメントはサポートされていません。 これらのいずれかを要件とするチーム(現代のEnterprise向け.NET開発では通常両方が含まれる)にとって、 IronOCRは機能的に最適であり、XImage.OCRではコストと複雑さを増すアーキテクチャ上の回避策が必要となる。

現在XImage.OCRを使用しているチームにとっての判断基準は、RasterEdgeのエコシステムがベンダーロックインを正当化するほどの価値があるかどうか、という点に尽きる。 OCRライブラリを新たに導入するチームにとって、IronOCRのシングルパッケージモデル、組み込みの前処理機能、ネイティブPDFサポート、クロスプラットフォームランタイムは、同等の価格帯でより包括的な商用ソリューションを提供します。

ご注意TesseractおよびxImage.OCRはそれぞれの所有者の登録商標です。 このサイトはGoogleまたはRasterEdgeによって提携、承認、または後援されているわけではありません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

xImage.OCR とは何ですか?

xImage.OCRは、開発者や企業が画像や文書からテキストを抽出するために使用するOCRソリューションです。.NETアプリケーション開発のためにIronOCRと一緒に評価されたいくつかのOCRオプションの一つです。

IronOCRは.NET開発者向けxImage.OCRと比較してどうですか?

IronOCRはNuGetネイティブ for .NET OCRライブラリで、.CoreエンジンとしてIronTesseractを使用しています。xImage.OCRと比較して、よりシンプルなデプロイメント(SDKインストーラーなし)、定額制の価格設定、COMインターオプやクラウド依存のないクリーンなC# APIを提供します。

IronOCRはxImage.OCRよりセットアップが簡単ですか?

IronOCRは単一のNuGetパッケージでインストールされます。SDKインストーラー、ライセンスファイルのコピー、COMコンポーネントの登録、ランタイムバイナリの管理は必要ありません。OCRエンジン全体がパッケージにバンドルされています。

xImage.OCRとIronOCRにはどのような精度の違いがありますか?

IronOCRは、標準的なビジネス文書、請求書、領収書、スキャンしたフォームに対して高い認識精度を達成します。高度に劣化した文書や一般的でないスクリプトの場合、精度はソースの品質によって異なります。IronOCRは低品質入力の認識を向上させる画像前処理フィルターを含んでいます。

IronOCRはPDFテキスト抽出をサポートしていますか?

IronOCRは、ネイティブPDFとスキャンしたPDFイメージの両方から、一回の呼び出しでテキストを抽出します。また、複数ページのTIFFファイル、画像、ストリームもサポートします。スキャンしたPDFの場合、OCRはページごとに適用され、ページごとの結果オブジェクトを持ちます。

xImage.OCRのライセンスはIronOCRと比べてどうですか?

IronOCRは、定額制の永久ライセンスで、ページ毎やスキャン毎の課金はありません。大量のドキュメントを処理する組織は、ボリュームに関係なく同じライセンス費用を支払います。詳しくはIronOCRライセンスページをご覧ください。

IronOCR はどの言語をサポートしていますか?

IronOCRは個別のNuGet言語パックにより127言語をサポートしています。言語を追加するには'dotnet add package IronOcr.Languages.{Language}'コマンドを実行するだけです。手動でのファイル配置やパス設定は必要ありません。

.NETプロジェクトにIronOCRをインストールするにはどうすればよいですか?

NuGet経由でインストールします:パッケージマネージャーコンソールで'Install-Package IronOcr'、またはCLIで'dotnet add package IronOcr'。追加の言語パックも同様にインストールされます。ネイティブSDKインストーラーは必要ありません。

IronOCRはxImage.OCRと違い、Dockerやコンテナ展開に適していますか?

IronOCRはNuGetパッケージによってDockerコンテナで動作します。ライセンスキーは環境変数で設定します。OCRエンジン自体にはライセンスファイル、SDKパス、ボリュームマウントは必要ありません。

xImage.OCRと比較して、購入前にIronOCRを試すことはできますか?

IronOCRのトライアルモードでは、ドキュメントを処理し、出力に透かしをオーバーレイしたOCR結果を返します。ライセンスを購入する前に、ご自身の文書で精度を確認することができます。

IronOCRはテキスト抽出とバーコード読み取りをサポートしていますか?

IronOCRはテキスト抽出とOCRに重点を置いています。バーコード読み取りについては、Iron SoftwareはIronBarcodeをコンパニオンライブラリとして提供しています。どちらも個別に、あるいはIron Suiteのバンドルとして提供されています。

xImage.OCRからIronOCRへの移行は簡単ですか?

xImage.OCRからIronOCRへの移行は通常、初期化シーケンスをIronTesseractのインスタンス生成に置き換え、COMライフサイクル管理を削除し、APIコールを更新します。ほとんどの移行はコードの複雑さを大幅に軽減します。

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね