使用 IRONOCR

收据扫描API(开发者教程)

更新 2024年二月11日
分享:

收据扫描 API 使用先进的 OCR 技术从收据中提取关键数据。 它通过消除手动错误和提高生产率来简化数据录入过程。 API 功能多样且准确,支持多种语言、货币和格式。 通过自动解析收据,企业可以深入了解消费模式并做出数据驱动的决策。 本文将演示如何使用 C# OCR 库、IronOCR从收据中提取重要信息。

IronOCR

IronOCR 是 Iron Software 开发的多功能 OCR 库和 API,为开发人员从扫描文档、图像和 PDF 等各种来源中提取文本提供了强大的解决方案。 IronOCR 采用先进的 OCR 算法、计算机视觉和机器学习模型,即使在具有挑战性的场景下,也能确保高准确性和可靠性。 该库支持多种语言和字体样式,适合全球应用。 通过将具有机器学习模型功能的 IronOCR 纳入其应用程序,开发人员可以轻松实现数据录入、文本分析和其他任务的自动化,从而提高生产力和效率。

有了 IronOCR,开发人员可以毫不费力地从各种来源获取文本,包括文档、照片、屏幕截图,甚至是作为 JSON 响应的实时摄像机馈送。 通过利用复杂的算法和机器学习模型,IronOCR分析图像数据我们的翻译工具可以识别单个字符,并将其转换为机器可读文本。 提取的文本可用于各种用途,如数据录入、信息检索、文本分析和人工任务自动化。

先决条件

在开始使用 IronOCR 之前,需要具备一些先决条件。 这些先决条件包括:

  1. 确保在计算机上设置了合适的开发环境。 这通常涉及到集成开发环境(IDE)例如安装了 Visual Studio。

  2. 重要的是要对 C# 编程语言有基本的了解。 这将使您能够有效地理解和修改文章中提供的代码示例。

  3. 您需要在项目中安装 IronOCR 库。 这可以通过使用 Visual Studio 中的 NuGet 包管理器或命令行界面来完成。

    确保满足这些先决条件,您就可以进入 IronOCR 的工作流程了。

创建新的 Visual Studio 项目

要开始使用 IronOCR,第一步是创建一个新的 Visual Studio 项目。

打开 Visual Studio 并转到 "文件",然后悬停在 "新建 "上,点击 "项目"。

收据扫描 API(开发人员教程),图 1:新项目图像

新项目图片

在新窗口中,选择 "控制台应用程序",然后单击 "下一步"。

收据扫描 API(开发人员教程),图 2:控制台应用程序

控制台应用程序

一个新窗口将会出现。 写入新项目的名称和位置,然后单击 "下一步"。

收据扫描 API(开发人员教程),图 3:项目配置

项目配置

最后,提供目标框架并点击创建。

收据扫描 API(开发人员教程),图 4:目标框架

目标框架

现在您的新 Visual Studio 项目已经创建,让我们安装 IronOCR。

安装 IronOCR

有几种下载和安装 IronOCR 库的方法。 不过,这里有两种最简单的方法。

  1. 使用 Visual Studio NuGet 软件包管理器

  2. 使用 Visual Studio 命令行

使用 Visual Studio NuGet 软件包管理器

IronOCR 可通过 Visual Studio NuGet 包管理器包含在 C# 项目中。

选择工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包,导航至 NuGet 包管理器图形用户界面。

收据扫描 API(开发人员教程),图 5:NuGet 软件包管理器

NuGet软件包管理器

之后,将出现一个新窗口。 搜索 IronOCR 并将软件包安装到项目中。

收据扫描 API(开发人员教程),图 6:IronOCR

IronOCR

还可以使用上述相同方法安装 IronOCR 的其他语言包。

使用 Visual Studio 命令行

  1. 在 Visual Studio 中,转到 工具 > NuGet 包管理器 > 包管理器控制台

  2. 在“包管理器控制台”选项卡中输入以下行:
    :ProductInstall

收据扫描 API(开发人员教程),图 7:软件包管理器控制台

**软件包管理器控制台**

现在,软件包将下载/安装到当前项目中,并可随时使用。

使用收据 OCR API 提取数据

使用 IronOCR 从收据图像中提取数据并以结构化数据形式保存,对大多数开发人员来说都是救星。 使用 IronOCR,只需几行代码就能实现这一目标。 使用该工具,您可以提取不同文档类型的行项目、定价、税额、总金额等。

using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    var descriptions = new List<string>();
    var unitPrices = new List<decimal>();
    var taxes = new List<decimal>();
    var amounts = new List<decimal>();
    var lines = result.Text.Split('\n');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); // Calculate Taxes (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    var descriptions = new List<string>();
    var unitPrices = new List<decimal>();
    var taxes = new List<decimal>();
    var amounts = new List<decimal>();
    var lines = result.Text.Split('\n');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); // Calculate Taxes (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions

Private ocr = New IronTesseract()
Using input = New OcrInput("r2.png")
	Dim result = ocr.Read(input)
	Dim descriptionPattern = "\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
	Dim pricePattern = "\$\d+(\.\d{2})?"
	Dim descriptions = New List(Of String)()
	Dim unitPrices = New List(Of Decimal)()
	Dim taxes = New List(Of Decimal)()
	Dim amounts = New List(Of Decimal)()
	Dim lines = result.Text.Split(ControlChars.Lf)
	Dim descriptionMatch = Regex.Match(lines, descriptionPattern)
	If descriptionMatch.Success Then
		Dim DescriptionValue = descriptionMatch.Groups (2).Value.Trim()
		descriptions.Add(DescriptionValue)
	End If
	Console.WriteLine("Description: " & descriptions (i))
	Console.WriteLine("Quantity: 1.00 Units")
	Console.WriteLine("Unit Price: $" & unitPrices (i))
	taxes.Add(cost (i) * 0.15D) ' Calculate Taxes (15%)
	Console.WriteLine("Taxes: $" & taxes (i))
	amounts.Add(unitPrices (i) + taxes (i))
	Console.WriteLine("Amount: $" & amounts (i))
	Console.WriteLine("-----------------------")
End Using
VB   C#

如下所示,IronOCR 可以轻松地从收据中提取所需的文本。

收据扫描 API(开发人员教程),图 8:输出

输出

提取整个收据

如果您想提取整个收据,只需在 OCR 收据上编写几行代码即可轻松实现。

using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System

Private ocr = New IronTesseract()
Using input = New OcrInput("r3.png")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

扫描收据 API(开发人员教程),图 9:扫描收据 API 输出

扫描接收 API 输出

IronOCR 等收据图像扫描 API 为自动提取收据数据提供了强大的软件解决方案。通过利用先进的 OCR 技术,企业可以轻松地从收据图像或扫描件中提取重要信息,包括企业供应商名称、购买日期、明细清单、价格、税金和总金额。 支持多语言, 货币、收据格式条形码支持我们的目标是,让企业能够简化收据管理流程,节省时间,深入了解消费模式,并做出数据驱动的决策。 IronOCR 作为一个通用的 OCR 库和 API,为开发人员提供了从各种来源中准确、高效地提取文本所需的工具,实现了任务自动化,提高了整体效率。 通过满足必要的先决条件并将 IronOCR 集成到其应用程序中,开发人员可以释放接收数据处理的优势并增强其工作流程。

有关 IronOCR 的更多信息,请访问此处许可页面. 要了解如何使用计算机视觉查找文本,请访问此页计算机视觉方法页面. 有关收据 OCR 的更多教程,请访问以下网站OCR C# 教程.

< 前一页
面向开发人员的 OCR 自动化指南
下一步 >
最佳发票处理OCR(更新列表)

准备开始了吗? 版本: 2024.11 刚刚发布

免费NuGet下载 总下载量: 2,643,450 查看许可证 >