跳至页脚内容
与其他组件比较

IronOCR 与 Azure OCR PDF:哪种解决方案能更好地提取文本?

 IronOCR与 Azure OCR PDF:哪个方案提取文本效果更好?:图 1 - IronOCR与 Azure OCR PDF

当开发人员需要从 PDF 文档和图像中提取文本时,有两个突出的选择:微软基于云的 Azure AI 文档智能和 IronOCR 的本地.NET库。 两者都提供光学字符识别 (OCR) 功能,但在部署模式、定价结构和实施便捷性方面存在显著差异。

IronOCR直接在您的服务器或工作站上处理文档——无需云帐户,无需按页付费,数据也不会离开您的环境。 Azure 文档智能会将您的文件发送到微软的云基础架构,按分析的页面收费,并且需要有效的互联网连接。 本次比较考察了每种解决方案如何处理 PDF 和 TIFF 文件、创建可搜索的 PDF 文档、支持多种语言以及融入.NET开发工作流程的情况。

立即开始使用 IronOCR 的免费试用版,在您自己的项目中测试这些功能。

如何快速比较这两种 OCR 解决方案?

IronOCR与 Azure 文档智能 功能对比
特征 IronOCR Azure 文档智能
部署 本地机器/本地部署 基于云的 API
需要互联网连接
定价模式 一次性永久许可 按页付费(每1000页1.50美元至10美元)
可搜索的 PDF 输出 内置的单方法调用 需要其他库
支持的语言 125+种语言 100多种语言
文件格式 PDF、TIFF、PNG、JPG、BMP、GIF PDF、TIFF、JPEG、PNG、BMP
免费套餐 30 天试用 每月500页
数据隐私 完全本地化——数据绝不离开服务器 发送到微软云的数据

云 OCR 处理和本地 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
SHELL

或者,使用.NET CLI:

dotnet add package IronOcr
dotnet add package IronOcr
SHELL

安装完成后,请先设置许可证密钥,然后再调用任何IronOCR方法。 您可以在应用程序启动代码中执行此操作:

IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

在开发过程中,您可以免费试用 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);
$vbLabelText   $csharpLabel

这段代码会加载一个 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}");
}
$vbLabelText   $csharpLabel

OCR 输出

 IronOCR与 Azure OCR PDF:哪个方案提取文本效果更好?:图 2 - IronOCR输出

您还可以在读取之前应用图像滤镜来提高困难扫描的准确性——倾斜校正、降噪、二值化和对比度校正都可通过 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);
    }
}
$vbLabelText   $csharpLabel

管理凭证、处理异步操作以及遍历响应数据结构都会增加复杂性。 任何网络中断或 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.");
$vbLabelText   $csharpLabel

创建可搜索的 PDF 文件

 IronOCR与 Azure OCR PDF:哪个解决方案提取文本效果更好?:图 3 - 使用IronOCR创建的可搜索 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);
$vbLabelText   $csharpLabel

语言包通过单独的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.");
$vbLabelText   $csharpLabel

此模式可同时处理整个文件夹中的 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 文档智能 仍然适用于已在微软生态系统中投资或需要特定预建表单模型的组织。 然而,对于简单的 OCR 任务、可搜索的 PDF 创建以及可预测的运营成本,IronOCR 的本地处理模型和对开发者友好的 API 使其成为.NET项目的更佳选择。

请注意Microsoft 和 Azure 是微软公司的注册商标。 本网站与微软公司没有任何关联,也未获得微软公司的认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。)}]

常见问题解答

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 的更好集成、全面的语言支持以及具有竞争力的定价方案。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我