IronOCR vs Azure OCR PDF:哪種解決方案能更好地萃取文字?

當開發人員需要從 PDF 文件和圖像中提取文字時,有兩個突出的選擇:微軟基於雲端的 Azure AI 文件智慧和 IronOCR 的本機 .NET 程式庫。 兩者都提供光學字元辨識 (OCR) 功能,但在部署模式、定價結構和實施便利性方面存在顯著差異。
IronOCR 直接在您的伺服器或工作站上處理文件—無需雲端帳戶,無需按頁付費,資料也不會離開您的環境。 Azure 文件智慧會將您的文件傳送到微軟的雲端基礎架構,按分析的頁面收費,並且需要有效的網路連線。 本次比較檢視了每個解決方案如何處理 PDF 和 TIFF 檔案、建立可搜尋的 PDF 文件、支援多種語言以及融入 .NET 開發工作流程的情況。
立即開始使用 IronOCR 的免費試用版,在您自己的專案中測試這些功能。
如何快速比較這兩種 OCR 解決方案?
| 特點 | IronOCR | Azure 文件智能 |
|---|---|---|
| 部署 | 本地機器/本地部署 | 雲端 API |
| 需要網路連線 | 無 | 是 |
| 定價模式 | 一次永久許可 | 按頁付費(每1000頁1.50美元至10美元) |
| 可搜尋的 PDF 輸出 | 內建的單方法調用 | 需要其他庫 |
| 支援的語言 | 125+種語言 | 100多種語言 |
| 檔案格式 | PDF、TIFF、PNG、JPG、BMP、GIF | PDF、TIFF、JPEG、PNG、BMP |
| 免費套餐 | 30天試用 | 每月500頁 |
| 資料隱私 | 完全在地化-資料絕不離開伺服器 | 傳送到微軟雲端的數據 |
雲端與本地 OCR 處理的主要差異為何?
根本的區別在於文字擷取的位置。 Azure AI 文件智慧(以前稱為 Azure 表單識別器)在微軟的雲端基礎架構上處理文件。 開發人員將文件上傳到 Azure 入口網站或透過讀取 API 傳送文件,該服務將遠端分析影像和掃描文件。 這種方法需要網路連線、有效的 Azure 憑證,並且會產生按頁計費的費用,費用會隨著文件量的增加而增加。
IronOCR 完全在您的本機電腦或伺服器上運行,因此非常適合有資料隱私要求或實體隔離環境的組織。 該程式庫基於Tesseract OCR (最廣泛使用的開源 OCR 引擎之一)構建,並在其基礎上添加了完善的 .NET API。 該程式庫無需呼叫外部 API 即可運行,使開發人員能夠完全掌控文件處理流程。對於桌面應用程式、Web 應用程式或批次處理作業,本地處理消除了網路延遲,並擺脫了對第三方服務正常運行時間的依賴。
Azure Vision 和 Azure Form 服務都屬於更廣泛的 Azure AI 服務範疇。 Azure 中的電腦視覺功能可以分析一般用途的影像,而文件智慧則專門處理混合語言和複雜佈局文件中的文字萃取。 已經深度投資於 Azure 生態系統的組織可能更喜歡這種整合方式,但這種整合方式會帶來持續的成本和對雲端的依賴。
IronOCR 的架構非常適合那些對成本可預測性和資料主權要求極高的場景。永久許可證即可覆蓋無限頁面處理量,這意味著與按頁付費的雲端服務相比,高容量應用程式隨著時間的推移將顯著降低成本。
如何透過 NuGet 安裝 IronOCR?
在編寫任何 OCR 程式碼之前,您需要將IronOcr NuGet 套件新增至您的 .NET 專案。 最簡單的方法是使用 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 文件智能,您需要一個有效的 Azure 訂閱、在 Azure 入口網站中建立的文件智能資源,以及單獨安裝的 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 文件智能,您必須先在 Azure 入口網站中建立資源,設定驗證憑證,然後安裝 Azure SDK。 讀取 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 文件智慧不會提供直接建立可搜尋 PDF 的功能。 要使用 Azure 實現相同的結果,開發人員必須從 API 回應中提取文字數據,然後使用單獨的 PDF 庫(例如 iTextSharp 或 PdfSharp)來重建帶有嵌入文字層的文件。 這會為您的專案增加額外的依賴項、開發時間和維護負擔。
對於經常轉換大量掃描文件(發票、合約、歷史記錄)的組織而言,IronOCR 的單一方法顯著減少了整合工作量。
文件處理的定價如何比較?
定價結構是這兩種解決方案之間最顯著的實際差異之一。 Azure 的按頁面付費模式是根據所使用的特定預先建立模型來收費的。 根據微軟官方 Azure 定價頁面顯示,讀取 API 的費用約為每 1000 頁 1.50 美元,而表單和發票的預先建置模型的費用高達每 1000 頁 10 美元。 大用戶可以透過協商基於承諾的定價方案來獲得優惠價格,但只要應用程式運行,成本就會持續累積。
對於每月處理 10 萬頁文件的開發團隊(對於企業文件工作流程來說,這只是一個適中的量),Azure 的費用可能每月在 150 美元到 1000 美元之間,而且這種情況會一直持續下去。
IronOCR 提供永久許可證,單一開發者只需一次性付費即可獲得。 這項一次性投資涵蓋無限頁面處理,無需支付任何後續費用。 有關當前的完整定價詳情,請訪問IronOCR 許可頁面。 對於每月分析數千份文件的應用程式來說,與 Azure 按頁收費相比,盈虧平衡點通常在營運的最初幾個月內即可達到。
兩種方案均支援多種語言的印刷體和手寫體文字的光學字元辨識。 IronOCR 提供125 種語言包,包括支援單一文件中的混合語言。 您可以根據應用程式的需求,單獨下載語言資料文件,也可以下載軟體包。
語言和多語言支援是如何運作的?
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 文檔智能中的語言支持
Azure 文件智慧的讀取 API 支援 100 多種印刷語言以及其中一部分語言的手寫辨識功能。 語言偵測在雲端自動進行-大多數情況下,開發人員無需明確指定語言。 這種自動偵測方式雖然方便,但會增加每頁的成本,並且需要將所有文件傳輸到微軟的伺服器。
對於包含敏感資訊的文件(財務記錄、醫療保健資料、法律合約),將內容傳送到雲端點會引入本地處理完全避免的資料治理問題。
如何處理批量文件?
IronOCR 的批量處理
對於大批量工作流程,IronOCR 使用標準的 .NET 並行處理高效地處理批量資料。 由於該程式庫在本機上運行,因此您可以並行運行多個 OCR 作業,而不會受到速率限製或 API 限制:
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 文件智慧進行批次處理
Azure 文件智慧支援批次處理,但每個文件都需要單獨呼叫 API 或使用批次分析文件 API。 高容量作業會受到 Azure 的速率限制-標準層通常為每秒 15 個請求。 每天處理數萬份文件的組織需要實施排隊、重試邏輯和限流管理,以保持在服務限制範圍內。
對於可預測的高容量工作負載,我們提供基於承諾的定價方案,但這需要預先簽訂承諾協議,並受微軟服務條款的約束。
下一步計劃是什麼?
IronOCR 為 .NET 開發人員提供了一條直接的途徑,可以準確地提取本機文件文本,而無需依賴雲端或按頁付費。 對於建立處理 PDF、TIFF 或掃描影像的應用程式的團隊而言,與基於雲端的 OCR 服務相比,永久授權模式和單一方法可搜尋 PDF 建立降低了成本和整合複雜性。
開始探索 IronOCR 的各項功能:
-透過 NuGet 下載並安裝 IronOCR -- 完整安裝指南和先決條件 -閱讀操作指南-常見 OCR 任務的逐步說明 -查看語言包-- 瀏覽所有 125 多種支援的語言 -探索可搜尋 PDF 建立-只需一次方法呼叫即可轉換掃描文檔 -查看 IronOCR 許可協議——個人、團隊和組織的一次性永久許可 -瀏覽程式碼範例-可在您的專案中直接使用的真實 OCR 模式
Azure 文件智能 仍然適用於已投資於 Microsoft 生態系統或需要特定預製表單模型的組織。 然而,對於簡單的 OCR 任務、可搜尋的 PDF 創建以及可預測的營運成本,IronOCR 的本地處理模型和對開發者友好的 API 使其成為 .NET 專案的更佳選擇。
常見問題解答
Azure OCR PDF 和 IronOCR 的主要差異是什麼?
主要區別在於它們的定價模式、整合便利性以及語言支援和文字擷取準確性等特定功能。
IronOCR 在 PDF 文字擷取方面與 Azure OCR PDF 相比有何不同?
IronOCR 提供強大的 PDF 文字擷取功能,包括進階影像預處理和對多種語言的支援,與 Azure OCR PDF 相比,可提供更準確的結果。
是否有使用 IronOCR 的程式碼範例?
是的,IronOCR 提供了全面的 C# 程式碼範例,以幫助開發人員輕鬆地將 OCR 功能整合到他們的 .NET 應用程式中。
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 的更好整合、全面的語言支援以及具有競爭力的定價方案。


