Tesseract C# 與 IronOCR:在 .NET 中應該使用哪個 OCR 函式庫?
在深入瞭解實作細節之前,本比較表總結了使用開放原始碼 Tesseract .NET wrapper 與商用 IronOCR 函式庫的主要功能與差異。 這些區別會影響 .NET 開發人員在 C# 應用程式中建立 OCR 的開發速度、部署複雜度和長期維護成本。
TL;DR :Tesseract 是一款功能強大的免費 OCR 引擎,但需要手動設定、外部預處理流程和仔細的跨平台管理。 IronOCR 將相同的 Tesseract 引擎與自動影像預處理、原生 PDF 支援以及託管的 .NET API 打包在一起,從而消除了所有平台上的安裝摩擦。
Tesseract 和 IronOCR 的比較概覽?
下表列出了 .NET 開發人員在評估 OCR 選項時,兩種方法之間最具影響力的差異。
| 特點 | Tesseract .NET 封裝器 | IronOCR |
|---|---|---|
| 安裝 | Tesseract NuGet 套件 + tessdata 資料夾 + C++ 運行時 | Install-Package IronOCR (單一軟體包) |
| 圖像預處理 | 手動(需要外部工具) | 內建功能(降噪、偏斜校正、解析度增強) |
| 影像格式支援 | 有限(需進行PIX格式轉換) | 原生支援 PNG、JPG、TIFF、GIF、BMP、WebP 格式。 |
| 語言支援 | 100+(手動訓練資料下載) | 127+ 語言套件(透過 NuGet) |
| PDF 處理 | 需要其他庫 | 內建 PDF 文件支持 |
| 跨平台 | 每個平台的複雜配置 | 在 Windows/Linux/macOS 上保持一致 |
| 條碼/二維碼讀取 | 不包含 | 整合 |
| 可搜尋的 PDF 輸出 | 手動實施 | 內建可搜尋 PDF 匯出功能 |
| 商業支援 | 僅限社群 | 專業工程支援及漏洞修復 |
| 授權 | Apache 2.0(免費) | 商業版(提供免費試用) |
如比較結果所示,兩種方法都有明顯的優點。 Tesseract 的開源許可使其對預算受限的專案具有吸引力,而 IronOCR 的功能集和簡化的部署則吸引了優先考慮開發速度和生產可靠性的團隊。
如何在 .NET 專案中安裝各個 OCR 函式庫?
在 .NET 專案中設定本機 Tesseract,除了初始的 NuGet 安裝之外,還需要多個組態步驟。 NuGet 上的 TesseractOCR 套件包裝了 Tesseract 引擎,但 .NET 開發人員也必須管理語言檔案,並確保 Visual C++ 運行時已安裝在目標機器上。
在 Visual Studio 中安裝 Tesseract
PM> Install-Package TesseractOCR
PM> Install-Package TesseractOCR
PM> Install-Package TesseractOCR
安裝完成後,從GitHub 上的 tessdata 儲存庫下載對應的訓練數據,並在您的 .NET 專案中設定檔。 tessdata 資料夾必須在運行時可訪問,通常需要設定此資料夾的完整路徑,或將其與可執行檔一起放在輸出目錄中。 .NET wrapper 與語言檔案之間的版本錯配經常導致初始化失敗,這是 Stack Overflow 討論中開發人員經常感到沮喪的原因。
此外,原生的 Tesseract 二進位檔需要在任何執行您應用程式的機器上安裝 Visual C++ Redistributable。 這種依賴關係可能會使部署變得複雜,尤其是在容器化環境或客戶端機器上,因為管理安裝可能並不簡單。
安裝 IronOCR
PM> Install-Package IronOCR
PM> Install-Package IronOCR
IRON VB CONVERTER ERROR developers@ironsoftware.com
Tesseract C# 與 IronOCR:.NET 中 OCR 實現的完整指南:圖 1 - 安裝
IronOCR 將所有的東西都捆綁在單一的可管理 .NET 套件中,從而消除了配置的複雜性。 不需要 C++ 執行時、不需要 tessdata 資料夾管理、不需要追蹤特定平台的原生 DLL。 語言套件會在需要時作為單獨的 NuGet 套件安裝,並與標準的 .NET 依賴項管理整合。 Iron Software 專門為需要 OCR 功能但又不想承擔基礎架構難題的 .NET 開發人員設計了這種方法。 了解更多關於IronOCR入門的資訊。
如何使用每個函式庫從影像中萃取文字?
基本的 OCR 工作流程,例如載入輸入影像並擷取純文字,突顯出 Tesseract 與 IronOCR 在 API 設計上的顯著差異。 瞭解這些差異有助於 .NET 開發人員預測每種方法的學習曲線和實施工作。 這兩個函式庫最終會執行相同的核心功能,但開發人員的體驗卻大不相同。
Tesseract 文字擷取範例
考慮以下使用 Tesseract 引擎的影像處理工作流程。此程式碼示範從 PNG 檔案擷取文字的基本 OCR:
using TesseractOCR;
using TesseractOCR.Enums;
// Initialize the engine with tessdata path and language
using var engine = new Engine(@"./tessdata", Language.English, EngineMode.Default);
// Load input image using Pix format
using var img = Pix.LoadFromFile("document.png");
// Process the image and create a page
using var page = engine.Process(img);
// Extract plain text from recognized text
Console.WriteLine(page.GetText());
using TesseractOCR;
using TesseractOCR.Enums;
// Initialize the engine with tessdata path and language
using var engine = new Engine(@"./tessdata", Language.English, EngineMode.Default);
// Load input image using Pix format
using var img = Pix.LoadFromFile("document.png");
// Process the image and create a page
using var page = engine.Process(img);
// Extract plain text from recognized text
Console.WriteLine(page.GetText());
Imports TesseractOCR
Imports TesseractOCR.Enums
' Initialize the engine with tessdata path and language
Using engine As New Engine("./tessdata", Language.English, EngineMode.Default)
' Load input image using Pix format
Using img As Pix = Pix.LoadFromFile("document.png")
' Process the image and create a page
Using page As Page = engine.Process(img)
' Extract plain text from recognized text
Console.WriteLine(page.GetText())
End Using
End Using
End Using
此方法需要管理 tessdata 資料夾路徑、確保正確的檔案權限,以及處理 Tesseract 引擎所期望的 Pix 影像格式。如果訓練資料檔案遺失或不相容,引擎初始化可能會產生異常。 由於本機 Tesseract 資源必須妥善處理,以防止未經管理的程式碼造成洩漏,因此記憶體的使用需要小心注意。 對於遇到初始化問題的開發人員, IronOCR 故障排除指南解釋了常見的 Tesseract 挑戰和解決方案。
IronOCR文字擷取範例
以下程式碼展示了 IronOCR 如何簡化相同的文字擷取任務:
using IronOcr;
// Initialize the OCR engine
var ocr = new IronTesseract();
// Load and process the input image
using var input = new OcrInput();
input.LoadImage("document.png");
// Read text with automatic optimization
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
// Initialize the OCR engine
var ocr = new IronTesseract();
// Load and process the input image
using var input = new OcrInput();
input.LoadImage("document.png");
// Read text with automatic optimization
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
' Initialize the OCR engine
Dim ocr As New IronTesseract()
' Load and process the input image
Using input As New OcrInput()
input.LoadImage("document.png")
' Read text with automatic optimization
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
IronTesseract 類別提供了一個託管包裝器,可以自動處理記憶體使用情況。 OcrInput 類別可以直接從文件路徑、位元組數組、流或 System.Drawing 物件接收圖像文件,而無需格式轉換。 產生的 result 物件包含結構化數據,例如置信度分數、單字位置和段落邊界,所有這些對於建立複雜的文件處理管道都很有價值。 查看完整的圖像轉文字教學,了解更多進階功能。
輸入
輸出
Tesseract C# 與 IronOCR:.NET 中 OCR 實作的完整指南:圖 3 - 控制台輸出
哪些影像預處理選項可提高 OCR 精確度?
現實世界中的文件很少會以原始狀態送達。 掃描的文件可能會被旋轉,照片可能會含有陰影,而傳真過來的 PDF 通常會出現雜訊和失真。 影像預處理能力直接影響生產環境中的 OCR 準確性,也是使用 Tesseract 原生功能與商業 OCR 解決方案之間最顯著的差異之一。
Tesseract 預先處理的限制
Tesseract 引擎的設計目的在於處理乾淨、高解析度的影像檔案,並正確地導向文字。 在處理旋轉或有雜訊的影像時,OCR 引擎經常會傳回亂碼輸出或完全無法辨識文字。 要解決這些影像品質問題,需要使用 ImageMagick、OpenCV 等外部工具,或是在將影像傳送至 OCR 引擎之前必須執行的自訂預處理程式碼。
這種預處理開銷增加了大量的 .NET 開發時間。每種文件類型都可能需要不同的修正例程,而在不同的輸入中調整這些管道以獲得最佳結果,本身就是一項專案。 低估這項工作的團隊往往會發現,Tesseract 的"免費"成本會被數週的預處理工作所抵消。
IronOCR 內建影像預處理
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("skewed-scan.png");
// Apply automatic corrections for high accuracy
input.Deskew(); // Correct skew on rotated images
input.DeNoise(); // Remove digital noise
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("skewed-scan.png");
// Apply automatic corrections for high accuracy
input.Deskew(); // Correct skew on rotated images
input.DeNoise(); // Remove digital noise
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("skewed-scan.png")
' Apply automatic corrections for high accuracy
input.Deskew() ' Correct skew on rotated images
input.DeNoise() ' Remove digital noise
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
IronOCR 支援影像校正濾鏡,可自動解決常見的文件品質問題。 Deskew() 方法透過偵測文字行角度並應用補償旋轉來糾正傾斜。 DeNoise() 方法可以移除掃描或數位雜訊中的偽影,否則這些偽影或雜訊會幹擾文字辨識。 其他濾鏡包括 EnhanceResolution(),用於改善低 DPI 影像;Sharpen(),用於處理模糊文件;Contrast(),用於恢復褪色文字;以及 @@--CODE-104014--@淺色文件。 這些內建的影像預處理工具在大多數文件處理場景中消除了對外部影像處理庫的需求。
輸入
輸出
Tesseract C# 與 IronOCR:.NET 中 OCR 實現的完整指南:圖 5 - 傾斜的控制台輸出
每個函式庫支援哪些影像格式?
文件處理工作流程會遇到各種格式的影像檔案:從高解析度掃描件到行動相機拍攝的照片,再到傳統的傳真件。 原生格式支援可減少預處理程式碼,並消除可能降低 OCR 準確度的轉換錯誤。
Tesseract 格式要求
Tesseract 的底層 Leptonica 函式庫可在內部使用 PIX 格式的影像。 雖然 .NET wrapper 可自動處理某些轉換,但複雜的影像格式(例如多頁 TIFF 或 PDF 文件)則需要額外處理,而且通常需要外部函式庫。 .NET 開發人員經常遇到將 System.Drawing 物件或 Stream 來源轉換為 Tesseract 引擎期望的格式的問題,尤其是在處理來自 Web 應用程式或資料庫 blob 儲存的映像時。
多幀 GIF 和多頁 TIFF 需要手動遍歷幀,這為原本簡單的文字擷取任務增加了樣板程式碼。
IronOCR 格式的靈活性
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load various image formats directly
input.LoadImage("photo.jpg");
input.LoadImage("screenshot.png");
input.LoadImage("fax.tiff");
input.LoadPdf("scanned-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load various image formats directly
input.LoadImage("photo.jpg");
input.LoadImage("screenshot.png");
input.LoadImage("fax.tiff");
input.LoadPdf("scanned-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Load various image formats directly
input.LoadImage("photo.jpg")
input.LoadImage("screenshot.png")
input.LoadImage("fax.tiff")
input.LoadPdf("scanned-contract.pdf")
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
IronOCR 支援所有主流影像格式,包括 JPG、PNG、GIF、TIFF、BMP 和 WebP。該程式庫可自動處理多頁 TIFF 和 GIF 文件,將每一幀作為單獨的頁面進行處理。 對於文件數位化,圖書館直接處理 PDF 文件輸入——從掃描頁面中提取文本,而無需單獨的 PDF 處理庫或圖像轉換步驟。
輸出
Tesseract C# 與 IronOCR:.NET 中 OCR 實現的完整指南:圖 6 - 多圖控制台輸出
如何配置多語言 OCR 處理?
全球 .NET 應用程式必須能夠識別多種語言的文本,包括阿拉伯語、中文、日語和韓語等非拉丁字母語言。 語言配置會影響 OCR 準確性以及 .NET 應用程式部署的複雜性。
Tesseract 語言設定
using TesseractOCR;
using TesseractOCR.Enums;
// Requires downloading fra.traineddata to tessdata folder
using var engine = new Engine(@"./tessdata", Language.French, EngineMode.Default);
using TesseractOCR;
using TesseractOCR.Enums;
// Requires downloading fra.traineddata to tessdata folder
using var engine = new Engine(@"./tessdata", Language.French, EngineMode.Default);
Imports TesseractOCR
Imports TesseractOCR.Enums
' Requires downloading fra.traineddata to tessdata folder
Using engine As New Engine("./tessdata", Language.French, EngineMode.Default)
End Using
每種語言都需要從Tesseract GitHub 儲存庫下載對應的 .traineddata 文件,並將其放置在正確的 tessdata 資料夾中。 對於多語言文檔,您可以在 engine 初始化期間指定多種語言。 在開發、測試和生產環境中管理這些語言文件,並確保所有部署目標在輸出目錄中都有正確的版本,這增加了操作複雜性,而且隨著語言需求的增長,這種複雜性還會加劇。
IronOCR 語言包配置
using IronOcr;
var ocr = new IronTesseract();
// Install IronOcr.Languages.French NuGet package first
ocr.Language = OcrLanguage.French;
// Process multi-language documents
ocr.AddSecondaryLanguage(OcrLanguage.German);
using IronOcr;
var ocr = new IronTesseract();
// Install IronOcr.Languages.French NuGet package first
ocr.Language = OcrLanguage.French;
// Process multi-language documents
ocr.AddSecondaryLanguage(OcrLanguage.German);
Imports IronOcr
Dim ocr As New IronTesseract()
' Install IronOcr.Languages.French NuGet package first
ocr.Language = OcrLanguage.French
' Process multi-language documents
ocr.AddSecondaryLanguage(OcrLanguage.German)
IronOCR 將語言套件作為 NuGet 套件分發,並與標準的 .NET 依賴項管理工具整合。 該庫支援127 種以上的語言,包括專門的手寫體和特定腳本變體,能夠優雅地處理多語言文件。 建置過程中的套件還原可確保所有必要的語言檔案自動部署,無需手動檔案管理或版本控制。
跨平台部署有哪些注意事項?
現代 .NET 開發的目標是 Windows、Linux、macOS 以及 Azure 和 AWS 等雲端環境。 OCR程式庫相容性對.NET應用程式的部署複雜性和運作維度有顯著影響。
Tesseract 平台的挑戰
Tesseract .NET wrapper 實作依賴針對特定平台編譯的本機 C++ 函式庫。 DLL 或共用庫檔案在 Windows、Linux 和 macOS,以及 32 位元和 64 位元架構之間有所不同。 部署到 Linux 需要與 Windows 不同的二進位檔,並在部署環境中設定適當的函式庫路徑。
雲端部署帶來了額外的挑戰。 Azure App Services、AWS Lambda 和容器化環境可能缺乏原生 Tesseract 所需的 Visual C++ 執行時。 在 Docker 容器或無伺服器功能中安裝這些相依性,會增加建立管道的複雜性,並增加映像大小。 許多 .NET 開發人員都曾經遇到這樣的情況:當原生依賴項沒有正確打包時,部署就會失敗,而這些相依性在本機 Visual Studio 開發中卻運作良好。
IronOCR 跨平台一致性
IronOCR 以純托管 .NET 函式庫的方式執行,無須管理外部的本機相依性。 同一個 NuGet 套件可以在 Windows、macOS、Linux、 Azure 應用程式服務、 AWS Lambda和Docker 容器中穩定運作。 此架構可大幅簡化 CI/CD 管線,讓您在本地建立並可靠地部署到生產中,而無需針對特定平台調整組態。
不同庫之間的 OCR 結果資料如何比較?
除了純文字擷取之外,結構化的 OCR 輸出也可實現進階的文件處理工作流程。 了解每個程式庫提供哪些資料有助於架構師為其 .NET 應用程式設計合適的後處理邏輯。
Tesseract 結果存取
using var page = engine.Process(img);
// Basic OCR text output
string text = page.Text;
// Confidence score (mean across all recognized text)
float confidence = page.GetMeanConfidence();
using var page = engine.Process(img);
// Basic OCR text output
string text = page.Text;
// Confidence score (mean across all recognized text)
float confidence = page.GetMeanConfidence();
Imports System
Using page = engine.Process(img)
' Basic OCR text output
Dim text As String = page.Text
' Confidence score (mean across all recognized text)
Dim confidence As Single = page.GetMeanConfidence()
End Using
Tesseract 會提供已識別的文字和整體信心分數。 存取更細緻的資料,例如個別字詞的位置或每個字詞的置信度,需要額外的 API 呼叫,並小心迭代結果結構。 API介面功能齊全,但缺少生產文件管道通常需要的分層結果模型。
IronOCR 具備置信度分數的結構化結果
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("document.png");
var result = ocr.Read(input);
// Full text extraction
Console.WriteLine(result.Text);
// Iterate through structured elements with confidence scores
foreach (var page in result.Pages)
{
foreach (var paragraph in page.Paragraphs)
{
Console.WriteLine($"Paragraph: {paragraph.Text}");
Console.WriteLine($"Confidence: {paragraph.Confidence}%");
}
}
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("document.png");
var result = ocr.Read(input);
// Full text extraction
Console.WriteLine(result.Text);
// Iterate through structured elements with confidence scores
foreach (var page in result.Pages)
{
foreach (var paragraph in page.Paragraphs)
{
Console.WriteLine($"Paragraph: {paragraph.Text}");
Console.WriteLine($"Confidence: {paragraph.Confidence}%");
}
}
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("document.png")
Dim result = ocr.Read(input)
' Full text extraction
Console.WriteLine(result.Text)
' Iterate through structured elements with confidence scores
For Each page In result.Pages
For Each paragraph In page.Paragraphs
Console.WriteLine($"Paragraph: {paragraph.Text}")
Console.WriteLine($"Confidence: {paragraph.Confidence}%")
Next
Next
End Using
OcrResult 類別提供對頁面、段落、行、單字和單字的分層存取。 每個元素都包含邊界框座標和置信度分數,使 .NET 應用程式能夠突出顯示識別的文字區域、從特定區域提取內容、驗證識別品質或標記置信度低的部分以供人工審核。 IronOCR 還可以將結果直接匯出為可搜尋的 PDF或hOCR/HTML 格式,以便進行存檔和搜尋索引。
輸出
專案應該選擇哪種OCR解決方案?
正確的選擇取決於專案限制、文件影像品質要求以及長期維護考慮因素。 這兩個庫沒有絕對的優劣之分——最終的選擇取決於該工具是否符合您的特定需求。
Tesseract 何時最合適
Tesseract 在特定場景下表現良好,其優缺點可以接受:
- 預算限制要求採用開源的 Apache 2.0 授權解決方案。
- 僅處理乾淨、高品質的數位文件(原生數位 PDF、螢幕截圖) 開發團隊擁有 C++ 互通性和原生庫管理的經驗
- 專案要求僅限於基本的 OCR 文字擷取,不含進階功能 目標部署環境是一個受控環境,可以在其中一致地管理依賴項。
IronOCR 帶來更佳效果
IronOCR 是生產工作負載的更好選擇:
- 建立生產級 .NET 應用程序,其中 OCR 準確性會影響業務成果
- 處理不同品質的文件,包括掃描、照片、傳真和行動擷取文件
- 跨多個平台或雲端環境部署,一致性非常重要
- 需要專業的技術支援,並定期修正錯誤和更新功能
- 開發時間表不允許我們應對配置和預處理方面的挑戰
- 要求包括PDF檔案處理、條碼和二維碼讀取,或結構化結果資料處理
對於先前建置過基於 Tesseract 的管道並且正在評估遷移的團隊, IronOCR 遷移指南涵蓋了關鍵的 API 差異和過渡步驟。
下一步計劃是什麼?
Google Tesseract 提供了一個強大的開源 OCR 基礎架構,對於特定用例來說仍然是一個合理的選擇。 然而,其配置要求和有限的影像預處理能力為 .NET 在生產應用程式中的開發帶來了巨大的開銷。 解決安裝問題、建立預處理管道和管理跨平台部署所花費的時間,往往超過了避免商業許可所節省的費用。
IronOCR 基於 Tesseract 引擎構建,同時消除了安裝障礙,添加了影像校正濾鏡,並提供了生產 .NET 專案所依賴的專業支援。 對於尋求可靠 OCR 效能且設定最少的 .NET 開發人員來說,IronOCR 開箱即用,可處理現實世界文件的複雜性。
探索 IronOCR 授權選項,找到適合您的 .NET 專案的方案,或開始免費試用,用您自己的文件評估該程式庫。
Tesseract C# 與 IronOCR:.NET 中 OCR 實現的完整指南:圖 8 - 許可
常見問題解答
Tesseract C# 和 IronOCR 有什麼不同?
Tesseract C# 是開源 Tesseract OCR 引擎的 .NET 封裝,需要手動管理 tessdata 檔案、Visual C++ 執行時間依賴項以及外部預處理管道。 IronOCR 是一個基於相同 Tesseract 引擎的商業 .NET OCR 庫,但它內建影像預處理功能、原生 PDF 支援、127 多個透過 NuGet 分發的語言包,以及完全託管的 API,無需任何原生依賴項。
如何在 C# .NET 專案中安裝 Tesseract OCR?
安裝 TesseractOCR NuGet 套件,然後從 tessdata GitHub 倉庫下載對應的 .traineddata 語言文件,並將其放置在運行時可存取的 tessdata 資料夾中。此外,還需要在每台目標電腦上安裝 Visual C++ Redistributable。 IronOCR 簡化了這個過程,只需一條 `Install-Package IronOCR` 命令即可完成,無需其他依賴項。
IronOCR可以直接處理PDF文件嗎?
是的,IronOCR 原生支援使用 `OcrInput.LoadPdf()` 載入 PDF 輸入。該庫無需單獨的 PDF 處理庫即可從掃描的 PDF 頁面中提取文字。而 Tesseract 則需要額外的函式庫和手動影像擷取才能達到相同的效果。
IronOCR 能在 Linux 和 macOS 上運作嗎?
是的,IronOCR 是一個完全託管的 .NET 程式庫,沒有原生依賴項,因此同一個 NuGet 套件可以在 Windows、Linux、macOS、Azure 應用程式服務、AWS Lambda 和 Docker 容器上運行,而無需特定於平台的配置。
Tesseract 和 IronOCR 的影像預處理有何不同?
Tesseract 專為清晰、方向正確的影像而設計,需要 ImageMagick 或 OpenCV 等外部工具來預處理雜訊較大或傾斜的文件。 IronOCR 內建了 Deskew()、DeNoise()、EnhanceResolution()、Sharpen()、Contrast() 和 Invert() 等濾鏡,無需額外程式庫即可處理常見的文件品質問題。
如何使用 IronOCR 增加多語言支援?
安裝相關的 IronOcr.Languages.{LanguageName} NuGet 包,然後設定 `ocr.Language = OcrLanguage.French` 並呼叫 `ocr.AddSecondaryLanguage(OcrLanguage.German)` 來新增多語言文件。語言檔案透過 NuGet 套件還原自動部署,這與 Tesseract 需要手動管理 .traineddata 檔案不同。
IronOCR除了傳回純文字之外,還能傳回哪些結構化資料?
IronOCR OcrResult 物件提供對頁面、段落、行、單字和字元的層級式存取。每個元素都包含邊界框座標和置信度分數。 IronOCR 還可以將結果匯出為可搜尋的 PDF 和 hOCR/HTML 格式,以便進行存檔和搜尋索引。
Tesseract C# 可以免費用於商業用途嗎?
是的,Tesseract OCR引擎採用Apache 2.0許可,可免費用於商業用途。 IronOCR是商業產品,需要付費授權,但提供免費試用版供評估。
什麼時候應該選擇 Tesseract 而不是 IronOCR?
如果您的預算需要免費的開源解決方案,您的文件是乾淨的高品質數位文件,您的團隊有 C++ 互通經驗,並且您要部署到可一致管理原生依賴項的受控環境中,那麼請選擇 Tesseract。
IronOCR是否支援條碼和二維碼讀取?
是的,IronOCR 包含整合的條碼和二維碼讀取功能,而 Tesseract 在沒有額外函式庫的情況下無法提供此功能。


