為什麼 IronOCR 比 Tesseract 4 NuGet Package 更好

How to Tesseract OCR in C# Alternatives with IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

想要在您的 C# 應用程式中實現光學字元識別嗎? 雖然 Google Tesseract 提供免費的 OCR 解決方案,但許多開發者都因其複雜的設置、對真實世界文件的有限準確性以及 C++ 互操作要求而感到困擾。 本綜合指南展示了如何使用 IronOCR 增強的 Tesseract 實現,獲得 99.8-100% 的 OCR 準確性——這是一個原生 C# 程式庫,不僅消除了安裝的麻煩,還能提供更優秀的結果。

無論您是從掃描文件中提取文字、處理發票,還是構建文件自動化系統,您都能學會如何在幾分鐘內,而不是幾週內,實現生產就緒的 OCR。

快速入門:一行程式碼完成 IronTesseract OCR

using IronOCR 最簡單的 API 在幾秒鐘內擷取文字。 這個例子顯示了一行程式碼如何讓您呼叫 IronTesseract,傳入圖像,然後獲得識別後的文字——簡單易用,結果保證。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronOcr

    PM > Install-Package IronOcr
  2. 複製並運行這段程式碼片段。

    string text = new IronTesseract().Read(new OcrInput("image.png")).Text;
  3. 部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronOCR,透過免費試用

    arrow pointer

IronOCR 的 Tesseract 實現的全面功能概覽,顯示平台相容性、支持格式和高級處理能力

如何使用最少的程式碼從 C# 中的圖像中提取文字?

以下範例說明了如何在您的 .NET 應用程式中僅使用幾行程式碼實現 OCR 功能。 與普通 Tesseract 不同,這種方法會自動處理圖像預處理,甚至在不完美的掃描中也能提供準確的結果。

using NuGet Package Manager 將 IronOCR NuGet 方案包安裝到您的 Visual Studio 解決方案中。

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-2.cs
using IronOcr;
using System;

var ocr = new IronTesseract();
using var input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\example.tiff", pageindices);
input.DeNoise();  //fixes digital noise
input.Deskew();   //fixes rotation and perspective

// there are dozens more filters, but most users wont need them
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System

Private ocr = New IronTesseract()
Private input = New OcrInput()
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\example.tiff", pageindices)
input.DeNoise() 'fixes digital noise
input.Deskew() 'fixes rotation and perspective

' there are dozens more filters, but most users wont need them
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

這段程式碼展示了 IronOCR 簡化的 API 的強大功能。 IronTesseract 類提供了單個托管的 Tesseract 5 包裝,消除了複雜的 C++ 互操作的需要。OcrInput 類支持載入多個圖片格式和頁面,而可選的預處理方法 (DeNoise()Deskew()) 可以顯著提高真實世界文件的準確性。

除了基本的文字提取外,OcrResult 物件提供豐富的結構化資料,包括字詞級信心分數、字元位置和文件結構 - 這使得 可搜索 PDF 建立精確文字位置跟踪 等高級功能得以實現。

Tesseract 和 IronOCR 的安裝有何主要不同?

使用 .NET 的 Tesseract 引擎進行 OCR

在 C# 中傳統的 Tesseract 整合需要管理 C++ 庫,這造成了一些挑戰。

開發者必須處理平台特定的二進制文件,確保安裝 Visual C++ 運行時,並處理 32/64 位相容性問題。 設置通常要求手動編譯 Tesseract 和 Leptonica 庫,特別是對於最新的 Tesseract 5 版本,這些版本不是為 Windows 編譯而設計的。

跨平台部署在 Azure、Docker 或 Linux 環境中尤其困難,因為權限和依賴項相差甚遠。

IronOCR Tesseract for .NET

IronOCR 通過單一的托管 .NET 程式庫(通過 NuGet 分發)消除了安裝的複雜性:

Install-Package IronOcr

無本地 DLL,無 C++ 運行時,無平台特定配置。 一切都以純托管程式碼運行,自動解決依賴問題。

該庫提供了與以下的完整相容性:

  • .NET Framework 4.6.2 及以上
  • .NET Standard 2.0 及以上(包括 .NET 5、6、7、8、9 和 10)
  • .NET Core 2.0 及以上

這種方法確保在 Windows、macOS、Linux、Azure、AWS Lambda、Docker 容器,甚至 Xamarin 移動應用程式中行為一致。

最新的 OCR 引擎版本如何為 .NET 開發進行比較?

Google Tesseract with C

Tesseract 5 雖然強大,但對於 Windows 開發者來說存在巨大挑戰。

最新的構建需要通過 MinGW 的跨編譯,然而這很少能產生有效的 Windows 二進制文件。 GitHub 上免費的 C# 包裝器通常落後於最新的 Tesseract 版本多年,錯過了關鍵的改進和錯誤修復。 由於這些編譯障礙,開發者經常使用過時的 Tesseract 3.x 或 4.x 版本。

IronOCR Tesseract for .NET

IronOCR 提供了一個 專門為 .NET 優化的定製 Tesseract 5 引擎

此實現包括性能增強,如本地多執行緒支持、自動圖像預處理,以及大型文件的高效處理。 定期的更新確保了與最新 .NET 發行版的相容性,同時保持向後相容性。

該庫還通過專門的 NuGet package 提供廣泛的語言支持,使得為超過 127 種語言新增 OCR 功能變得簡單,而無需管理外部詞典文件。

Google Cloud OCR 比較

儘管 Google Cloud Vision OCR 提供高精度,但它需要互聯網連接、按請求收費,對於敏感文件而言,會產生資料隱私問題。 IronOCR 提供可比的準確性並支持內部處理,非常適合需要資料安全或脫機能力的應用程式。

使用不同方法可達到的 OCR 準確度水平如何?

在 .NET 專案中使用 Google Tesseract

原始 Tesseract 在讀取高解析度、完美對齊的文字方面表現出色,但在真實世界的文件中卻很困難。

掃描頁面、照片或低解析度的圖像通常會產生混亂的輸出,除非進行了深入的預處理。 獲得可接受的準確性通常需要使用 ImageMagick 或類似工具的自定圖像處理管道 - 為每種文件型別增加幾週的開發時間。

常見的準確性問題包括:

  • 在傾斜文件上識別錯誤的字元
  • 在低 DPI 掃描上完全失敗
  • 混合字體或佈局時表現不佳
  • 無法處理背景噪聲或水印

在 .NET 專案中使用 IronOCR Tesseract

IronOCR 增強的實現可在典型的商務文件上實現99.8-100%的準確性,無需手動預處理:

using IronOcr;
using System;

// Create an instance of the IronTesseract class for OCR processing
var ocr = new IronTesseract();

// Create an OcrInput object to load and preprocess images
using var input = new OcrInput();

// Specify which pages to extract from multi-page documents
var pageIndices = new int[] { 1, 2 };

// Load specific frames from a TIFF file
// IronOCR automatically detects and handles various image formats
input.LoadImageFrames(@"img\example.tiff", pageIndices);

// Apply automatic image enhancement filters
// These filters dramatically improve accuracy on imperfect scans
input.DeNoise();    // Removes digital artifacts and speckles
input.Deskew();     // Corrects rotation up to 15 degrees

// Perform OCR with enhanced accuracy algorithms
OcrResult result = ocr.Read(input);

// Access the extracted text with confidence metrics
Console.WriteLine(result.Text);

// Additional accuracy features available:
// - result.Confidence: Overall accuracy percentage
// - result.Pages[0].Words: Word-level confidence scores
// - result.Blocks: Structured document layout analysis
using IronOcr;
using System;

// Create an instance of the IronTesseract class for OCR processing
var ocr = new IronTesseract();

// Create an OcrInput object to load and preprocess images
using var input = new OcrInput();

// Specify which pages to extract from multi-page documents
var pageIndices = new int[] { 1, 2 };

// Load specific frames from a TIFF file
// IronOCR automatically detects and handles various image formats
input.LoadImageFrames(@"img\example.tiff", pageIndices);

// Apply automatic image enhancement filters
// These filters dramatically improve accuracy on imperfect scans
input.DeNoise();    // Removes digital artifacts and speckles
input.Deskew();     // Corrects rotation up to 15 degrees

// Perform OCR with enhanced accuracy algorithms
OcrResult result = ocr.Read(input);

// Access the extracted text with confidence metrics
Console.WriteLine(result.Text);

// Additional accuracy features available:
// - result.Confidence: Overall accuracy percentage
// - result.Pages[0].Words: Word-level confidence scores
// - result.Blocks: Structured document layout analysis
Imports IronOcr
Imports System

' Create an instance of the IronTesseract class for OCR processing
Private ocr = New IronTesseract()

' Create an OcrInput object to load and preprocess images
Private input = New OcrInput()

' Specify which pages to extract from multi-page documents
Private pageIndices = New Integer() { 1, 2 }

' Load specific frames from a TIFF file
' IronOCR automatically detects and handles various image formats
input.LoadImageFrames("img\example.tiff", pageIndices)

' Apply automatic image enhancement filters
' These filters dramatically improve accuracy on imperfect scans
input.DeNoise() ' Removes digital artifacts and speckles
input.Deskew() ' Corrects rotation up to 15 degrees

' Perform OCR with enhanced accuracy algorithms
Dim result As OcrResult = ocr.Read(input)

' Access the extracted text with confidence metrics
Console.WriteLine(result.Text)

' Additional accuracy features available:
' - result.Confidence: Overall accuracy percentage
' - result.Pages[0].Words: Word-level confidence scores
' - result.Blocks: Structured document layout analysis
$vbLabelText   $csharpLabel

自動預處理過濾器處理常見的文件質量問題,否則這些問題需要手動干預。 DeNoise() 方法從掃描中移除數字失真,而 Deskew() 修正文件旋轉 - 兩者對保持高準確性都是至關重要的。

高級使用者可以進一步通過自定義配置來優化準確性,包括字元白名單、特定區域處理以及針對專業術語的專用語言模型。

哪些圖像格式和來源支持 OCR 處理?

在 .NET 中使用 Google Tesseract

本地 Tesseract 只接受 Leptonica PIX 格式 - 這是一個在 C# 中難以處理的非托管 C++ 指標。

將 .NET 圖像轉換為 PIX 格式需要謹慎的記憶體管理以防止洩漏。 對 PDF 和多頁 TIFF 的支持需要額外的庫,而它們自身又存在相容性問題。 許多實現難以處理基本的格式轉換,限制了實際可用性。

IronOCR 圖像相容性

IronOCR 提供全面的格式支持和自動轉換:

  • PDF 文件(包括受密碼保護的)
  • 多幀 TIFF 文件
  • 標準格式:JPEG, PNG, GIF, BMP
  • 高級格式:JPEG2000, WBMP
  • .NET 型別:System.Drawing.Image, System.Drawing.Bitmap
  • 資料來源:流、字節陣列、文件路徑
  • 直接掃描儀整合

全面的格式支持範例

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-5.cs
using IronOcr;

var text = new IronTesseract().Read("img.png").Text;
Imports IronOcr

Private text = (New IronTesseract()).Read("img.png").Text
$vbLabelText   $csharpLabel

這種統一的文件載入方法消除了格式特定的程式碼。 無論處理掃描的 TIFF、數字 PDF 還是智能手機照片,統一的 API 都可處理所有情境。 OcrInput 類別智能地管理記憶體並提供一致的結果,無論來源格式如何。

在專門的情境下,IronOCR 還支持從同一文件中讀取條碼和 QR 碼,實現一次處理全面的文件資料提取。

在真實應用中,OCR 性能有何比較?

免費的 Google Tesseract 性能

基本的 Tesseract 可以在經過預處理的高解析度圖像上提供可接受的速度,這類圖像需匹配其訓練資料。

然而,實際世界的性能往往令人失望。 當 Tesseract 難以處理圖像質量時,處理掃描文件的單頁可能需要 10-30 秒。 單執行緒架構成為批量處理的瓶頸,隨著大圖像的增多,記憶體使用也會急劇上升。

IronOCR Tesseract 程式庫性能

IronOCR 為生產工作負載實現了智能性能優化:

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-6.cs
using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;

using var input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("img/arabic.gif", pageindices);

// Add image filters if needed
// In this case, even thought input is very low quality
// IronTesseract can read what conventional Tesseract cannot.

var result = ocr.Read(input);

// Console can't print Arabic on Windows easily.
// Let's save to disk instead.
result.SaveAsTextFile("arabic.txt");
Imports IronOcr

Private ocr = New IronTesseract()
ocr.Language = OcrLanguage.Arabic

Dim input = New OcrInput()
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img/arabic.gif", pageindices)

' Add image filters if needed
' In this case, even thought input is very low quality
' IronTesseract can read what conventional Tesseract cannot.

Dim result = ocr.Read(input)

' Console can't print Arabic on Windows easily.
' Let's save to disk instead.
result.SaveAsTextFile("arabic.txt")
$vbLabelText   $csharpLabel

這些優化展示了 IronOCR 的生產就緒設計。 單靠 BlackListCharacters 配置即可提高速度 20-30%,當不需要特殊字元時。 快速語言包為需要高容量處理的情境提供了良好的平衡,且完美準確性並非關鍵。

對於企業應用而言,IronOCR 的多執行緒支持使得可以同時處理多個文件,與單執行緒 Tesseract 相比,現代多核系統上的吞吐量提升可以達到 4-8 倍。

Tesseract 和 IronOCR 間的 API 設計有何不同?

Google Tesseract OCR in .NET

將原始 Tesseract 整合到 C# 應用程式中有兩個挑戰選擇:

  • 互操作包裝:通常是過時的,文件稀少,且容易出現記憶體洩漏
  • 命令行執行:難以部署,安全策略阻止,錯誤處理差

在雲環境、網路應用程式或跨平台部署中均無法可靠地運行。 缺乏合適的 .NET 整合意味著花費更多時間對抗工具而非解決商業問題。

IronOCR Tesseract OCR 程式庫 for .NET

IronOCR 提供了專為 .NET 開發者設計的完全托管、直觀的 API:

最簡該程式碼實現

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-7.cs
using IronOcr;

// For the Chinese Language Pack:
// PM> Install IronOcr.Languages.ChineseSimplified

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

// We can add any number of languages
using var input = new OcrInput();
input.LoadPdf("multi-language.pdf");
var result = ocr.Read(input);
result.SaveAsTextFile("results.txt");
Imports IronOcr

' For the Chinese Language Pack:
' PM> Install IronOcr.Languages.ChineseSimplified

Private ocr = New IronTesseract()
ocr.Language = OcrLanguage.ChineseSimplified
ocr.AddSecondaryLanguage(OcrLanguage.English)

' We can add any number of languages
Dim input = New OcrInput()
input.LoadPdf("multi-language.pdf")
Dim result = ocr.Read(input)
result.SaveAsTextFile("results.txt")
$vbLabelText   $csharpLabel

這個精簡的 API 消除了傳統 Tesseract 整合的複雜性。 每個方法都包括全面的 XML 文件,讓您能夠直接在 IDE 中探索功能。廣泛的 API 文件提供了每個功能的詳細範例。

經驗豐富工程師提供的專業支援確保您不會在實現細節上卡住。 該庫定期更新,保持與最新 .NET 發佈的相容性,根據開發者反饋新增新功能。

支持哪些平台和部署場景?

Google Tesseract + Interop for .NET

跨平台的 Tesseract 部署要求進行平台特定的構建和配置。

每個目標環境需要不同的二進制文件、運行時依賴和權限。 Docker 容器需要謹慎選擇基本映像。 由於缺少 Visual C++ 運行時,Azure 部署常常失敗。 Linux 相容性取決於特定的發行版和 package 可用性。

IronOCR Tesseract .NET OCR 程式庫

IronOCR 提供真正的一次編寫,隨處部署的能力:

應用程式型別:

  • 桌面應用程式 (WPF, WinForms, Console)
  • 網路應用程式 (ASP.NET Core, Blazor)
  • 雲服務 (Azure Functions, AWS Lambda)
  • 移動應用程式 (via Xamarin)
  • 微服務 (Docker, Kubernetes)

平台支持:

  • Windows (7, 8, 10, 11, Server 版本)
  • macOS (Intel and Apple Silicon)
  • Linux (Ubuntu, Debian, CentOS, Alpine)
  • Docker 容器 (官方基本映像)
  • 雲平台 (Azure, AWS, Google Cloud)

.NET 相容性:

  • .NET Framework 4.6.2 及以上
  • .NET Standard 2.0 及以上(包括 .NET 5, 6, 7, 8, 9, 和 10
  • .NET Core 2.0 及以上
  • Mono framework
  • Xamarin.Mac

該庫內部處理平台上的差異,提供跨所有環境的一致結果。 部署指南涵蓋具體情境,包括併容器化、無伺服器功能和高可用性配置。

多語言OCR功能有何比較?

Google Tesseract 支持語言

管理原始 Tesseract 的語言需要下載和維護 tessdata 文件 - 所有語言大約需要 4GB。

文件夾結構必須精確,環境變數適當配置,運行時路徑可存取。切換語言需要文件系統存取,這在有限環境下部署變得複雜。 Tesseract 二進製文件與語言文件之間的版本不匹配會導致莫名其妙的錯誤。

IronOCR 語言管理

IronOCR 通過 NuGet package 管理實現語言支持的革新:

阿拉伯文 OCR 範例

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-8.cs
using IronOcr;

// Configure IronTesseract for Arabic text recognition
var ocr = new IronTesseract
{
    // Set primary language to Arabic
    // Automatically handles right-to-left text
    Language = OcrLanguage.Arabic
};

// Load Arabic documents for processing
using var input = new OcrInput();
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("img/arabic.gif", pageIndices);

// IronOCR includes specialized preprocessing for Arabic scripts
// Handles cursive text and diacritical marks automatically

// Perform OCR with language-specific optimizations
var result = ocr.Read(input);

// Save results with proper Unicode encoding
// Preserves Arabic text formatting and direction
result.SaveAsTextFile("arabic.txt");

// Advanced Arabic features:
// - Mixed Arabic/English document support
// - Automatic number conversion (Eastern/Western Arabic)
// - Font-specific optimization for common Arabic typefaces
Imports IronOcr

' Configure IronTesseract for Arabic text recognition
Dim ocr As New IronTesseract With {
    ' Set primary language to Arabic
    ' Automatically handles right-to-left text
    .Language = OcrLanguage.Arabic
}

' Load Arabic documents for processing
Using input As New OcrInput()
    Dim pageIndices As Integer() = {1, 2}
    input.LoadImageFrames("img/arabic.gif", pageIndices)

    ' IronOCR includes specialized preprocessing for Arabic scripts
    ' Handles cursive text and diacritical marks automatically

    ' Perform OCR with language-specific optimizations
    Dim result = ocr.Read(input)

    ' Save results with proper Unicode encoding
    ' Preserves Arabic text formatting and direction
    result.SaveAsTextFile("arabic.txt")

    ' Advanced Arabic features:
    ' - Mixed Arabic/English document support
    ' - Automatic number conversion (Eastern/Western Arabic)
    ' - Font-specific optimization for common Arabic typefaces
End Using
$vbLabelText   $csharpLabel

多語言文件處理

:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-tesseract-ocr-9.cs
using IronOcr;

// Install language packs via NuGet:
// PM> Install-Package IronOcr.Languages.ChineseSimplified

// Configure multi-language OCR
var ocr = new IronTesseract();

// Set primary language for majority content
ocr.Language = OcrLanguage.ChineseSimplified;

// Add secondary language for mixed content
// Perfect for documents with Chinese text and English metadata
ocr.AddSecondaryLanguage(OcrLanguage.English);

// Process multi-language PDFs efficiently
using var input = new OcrInput();
input.LoadPdf("multi-language.pdf");

// IronOCR automatically detects and switches between languages
// Maintains high accuracy across language boundaries
var result = ocr.Read(input);

// Export preserves all languages correctly
result.SaveAsTextFile("results.txt");

// Supported scenarios:
// - Technical documents with English terms in foreign text
// - Multilingual forms and applications  
// - International business documents
// - Mixed-script content (Latin, CJK, Arabic, etc.)
Imports IronOcr

' Install language packs via NuGet:
' PM> Install-Package IronOcr.Languages.ChineseSimplified

' Configure multi-language OCR
Dim ocr As New IronTesseract()

' Set primary language for majority content
ocr.Language = OcrLanguage.ChineseSimplified

' Add secondary language for mixed content
' Perfect for documents with Chinese text and English metadata
ocr.AddSecondaryLanguage(OcrLanguage.English)

' Process multi-language PDFs efficiently
Using input As New OcrInput()
    input.LoadPdf("multi-language.pdf")

    ' IronOCR automatically detects and switches between languages
    ' Maintains high accuracy across language boundaries
    Dim result = ocr.Read(input)

    ' Export preserves all languages correctly
    result.SaveAsTextFile("results.txt")
End Using

' Supported scenarios:
' - Technical documents with English terms in foreign text
' - Multilingual forms and applications  
' - International business documents
' - Mixed-script content (Latin, CJK, Arabic, etc.)
$vbLabelText   $csharpLabel

語言包系統支持超過 127 種語言,每個語言都針對特定的字形和書寫系統進行優化。 通過 NuGet 安裝確保版本相容性,並簡化了在不同環境的部署。

IronOCR 除基本 OCR 之外還提供哪些附加功能?

IronOCR 的功能遠遠超過基本的文字提取,配備了企業級功能:

  • 自動圖像分析:根據圖像特性智能配置處理
  • 可搜索 PDF 建立:將掃描的文件轉換成全可搜索的 PDFs。 將 true 作為第二個參數傳遞給 SaveAsSearchablePdf() 以將主動 OCR 過濾器應用於輸出(v2025.5.11 新增)
  • 高級 PDF OCR:在保留文件結構的同時提取文字
  • 條形碼和 QR 碼讀取:檢測並解碼條形碼在同一過程中
  • HTML 匯出:從 OCR 結果生成結構化 HTML
  • TIFF 到 PDF 轉換:將多頁 TIFF 轉換成可搜索的 PDFs
  • 手寫英語 OCR:本地手寫識別英語,v2025.11.31 新增 — 這對於處理手填表格和筆記來說比原始 Tesseract 更具差異化
  • 定位檢測DetectPageOrientation() 支持 OrientationDetectionMode 四種數值 — Fast, Balanced, Detailed, ExtremeDetailed — 控制準確性/速度的平衡(v2025.8.6 新增)
  • 多執行緒支持:可同時處理多個文件
  • 詳細結果分析:存取字元級的資料和信心水準

Scale()EnhanceResolution()SaveAsSearchablePdf() 不相容,這是因為 v2025.12.3 中已知的問題。所有其他濾鏡與可搜索 PDF 輸出正確運作。

OcrResult 類別提供了對識別內容的精細存取,允許進行高級的後處理和驗證工作流。

應該選擇哪個 C# 開發的 OCR 解決方案?

Google Tesseract for C# OCR

當以下情況可以選擇普通的 Tesseract:

  • 開展學術或研究專案
  • 處理完美掃描的文件且開發時間,無限制
  • 構建概念驗證應用程式
  • 僅考慮成本

要為大量的整合挑戰和持續的維護需求做好準備。

IronOCR Tesseract OCR 程式庫 for .NET Framework & Core

IronOCR 是最佳選擇,用於:

  • 需要可靠性生產應用
  • 具有真實世界文件質量的專案
  • 跨平台部署
  • 時間關鍵的開發進程
  • 需要專業支援的應用程式

在處理具有挑戰性的文件時,該庫可透過減少開發時間和提高準確性來回報自己。

如何在您的 C# 項目中開始使用專業 OCR?

開始在您的 Visual Studio 項目中實施高精度 OCR:

Install-Package IronOcr

直接下載 IronOCR .NET DLL,以便手動安裝。

開始使用我們的全面入門指南,探索程式碼範例,並在需要時利用專業支援

體驗專業 OCR 帶來的不同——立即開始您的免費試用,加入超過 10,000 間以 99.8% 以上準確度處理其文件工作流的公司。

包括 NASA、LEGO 與 3M 等信賴 Iron Software 產品滿足其 OCR 需求的大型企業標誌 Iron Software 的 OCR 技術被全球的財富 500 強公司和政府機構信賴,負責關鍵任務的文件處理。

常見問題

我如何在 C# 應用程式中實現 Tesseract OCR?

要在 C# 應用程式中實現 Tesseract OCR,您可以使用 IronOCR 的 IronTesseract 類。使用命令 Install-Package IronOcr 通過 NuGet 安裝,然後新增命名空間 using IronOcr;。用 var ocr = new IronTesseract(); 實例化 OCR 引擎,並使用 var result = ocr.Read("image.png"); 從圖像中提取文字。

使用 IronOCR 相較於傳統 Tesseract 的好處是什麼?

IronOCR 相較於傳統 Tesseract 提供了多項好處,包括簡化部署無需本地依賴,自動圖像預處理以提高準確性,以及 .NET 綜合管理。其提供功能如 PDF 和多語言支持,並可透過 NuGet 輕鬆安裝,避免使用 Tesseract C++ 交互的複雜性。

我如何提高 C# 專案中的 OCR 準確性?

為了提高 C# 專案中的 OCR 準確性,使用 IronOCR 的自動圖像增強功能。方法如 input.DeNoise()input.Deskew() 可幫助預處理圖像,減少噪音和校正偏斜。此外,選擇正確的語言設定並使用信心指數進行準確性的驗證,使用 OcrResult.Confidence

我可以使用 C# 在 PDF 文件上執行 OCR 嗎?

可以,使用 IronOCR 的 OcrInput 類,您可以在 PDF 文件上執行 OCR。通過 input.LoadPdf("file.pdf", "password") 載入 PDF 並使用 var result = ocr.Read(input); 處理它。這允許直接在您的 C# 應用程式中提取文字和建立可搜尋的 PDF。

我如何在單一 OCR 文件中處理多種語言?

IronOCR 允許在單一文件中處理多種語言。使用 ocr.Language = OcrLanguage.English; 設置主要語言,並使用 ocr.AddSecondaryLanguage(OcrLanguage.Spanish); 新增第二語言。這種靈活性對於包含混合語言或技術術語的文件有益。

IronOCR 支援哪個平台?

IronOCR 支援多種平台,包括 .NET Framework 4.6.2+、.NET Core 2.0+、.NET 5-10 和 .NET Standard 2.0+。它運行於 Windows、macOS 和 Linux,以及 Docker 容器、Azure Functions、AWS Lambda 和 Xamarin 行動應用程式上,提供不同環境中的一致性。

我如何在 C# 中優化 OCR 處理的效能?

要在 C# 中優化 OCR 處理性能,利用 IronOCR 的功能,如通過 ocr.Configuration.ReadBarCodes = false; 停用不必要的條碼掃描,並選擇更快的語言模型,如 ocr.Language = OcrLanguage.EnglishFast;。此外,利用多執行緒能力進行更快的批處理。

IronOCR 支持哪些圖片格式?

IronOCR 支持多種圖像格式,包括 PDF、TIFF、JPEG 和 PNG。使用 OcrInput 類通過 input.LoadImage("photo.jpg")input.LoadPdf("file.pdf") 方法載入圖像。這種廣泛的相容性允許與不同的圖像來源和格式輕鬆整合。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

由...審核
Jeff Fritz
Jeffrey T. Fritz
首席計劃經理 - .NET社區團隊
Jeff還是.NET和Visual Studio團隊的首席計劃經理。他是.NET Conf虛擬會議系列的執行製作人,並主持每週兩次的開發者直播節目'Fritz and Friends',在節目中討論技術並與觀眾一起撰寫程式碼。Jeff撰寫工作坊、演講和內容計劃,為微軟開發者的最大活動如Microsoft Build、Microsoft Ignite、.NET Conf和Microsoft MVP Summit提供內容支援。
準備開始了嗎?
Nuget 下載 6,151,372 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖像轉變為可搜尋文字。