收據掃描 API 開發者教學
收據掃描 API 使用先進的 OCR 技術從收據中提取關鍵資料。 它透過消除人為錯誤和提高效率,簡化了資料輸入流程。 此API功能全面、準確可靠,支援多種語言、貨幣和格式。 透過自動解析收據,企業可以深入了解消費模式並做出數據驅動的決策。 本文將示範如何使用 C# OCR 庫IronOCR從收據中提取重要資訊。
IronOCR。
IronOCR 是由 Iron Software 開發的多功能 OCR 庫和 API,為開發人員提供了一個強大的解決方案,可以從各種來源(例如掃描文件、圖像和 PDF)中提取文字。 IronOCR 憑藉其先進的 OCR 演算法、電腦視覺和機器學習模型,即使在具有挑戰性的場景下也能確保高精度和高可靠性。 該庫支援多種語言和字體樣式,使其適用於全球應用。 透過將 IronOCR 與機器學習模型功能整合到應用程式中,開發人員可以輕鬆地自動執行資料輸入、文字分析和其他任務,從而提高生產力和效率。
借助 IronOCR,開發人員可以輕鬆地從各種來源(包括文件、照片、螢幕截圖,甚至是即時攝影機畫面)獲取文本,並以 JSON 響應的形式返回。 IronOCR 利用複雜的演算法和機器學習模型來分析圖像數據,識別單個字符,並將其轉換為機器可讀的文本。 擷取的文字可用於各種用途,例如資料輸入、資訊檢索、文字分析和自動化手動任務。
先決條件
在使用 IronOCR 之前,需要滿足一些先決條件。 這些先決條件包括:
- 確保您的電腦上已設定合適的開發環境。 這通常需要安裝整合開發環境(IDE),例如 Visual Studio。
- 對 C# 程式語言有基本的了解很重要。 這將使您能夠有效地理解和修改文章中提供的程式碼範例。
- 你需要將 IronOCR 庫安裝到你的專案中。 這可以透過在 Visual Studio 中使用 NuGet 套件管理器或透過命令列介面來實現。
確保滿足這些先決條件後,您就可以開始使用 IronOCR 了。
建立新的 Visual Studio 項目
要開始使用 IronOCR,第一步是建立一個新的 Visual Studio 專案。
開啟 Visual Studio,轉到"檔案",然後將滑鼠懸停在"新建"上,然後按一下"專案"。
收據掃描 API(開發者教學),圖 1:新專案影像 新項目圖片
在新視窗中,選擇"控制台應用程式",然後按一下"下一步"。
收據掃描 API(開發者教學),圖 2:控制台應用程式 控制台應用程式
將出現一個新視窗。 寫下新項目的名稱和地點,然後點擊"下一步"。
最後,提供目標框架並點擊"建立"。
現在你的新 Visual Studio 專案已經創建好了,讓我們來安裝 IronOCR。
安裝 IronOCR
下載和安裝 IronOCR 庫有多種方法。 然而,以下是兩種最簡單的方法。
- 使用 Visual Studio NuGet 套件管理器
- 使用 Visual Studio 命令列
使用 Visual Studio NuGet 套件管理器
可以透過使用 Visual Studio NuGet 套件管理器將 IronOCR 整合到 C# 專案中。
透過選擇"工具" > "NuGet 套件管理器" > "管理解決方案的 NuGet 套件",導覽至 NuGet 套件管理器圖形使用者介面。
收據掃描 API(開發者教學),圖 5:NuGet 套件管理器 NuGet 套件管理器
之後,將出現一個新視窗。 搜尋 IronOCR 並將其安裝到專案中。
收據掃描 API(開發者教學),圖 6:IronOCR IronOCR
也可以使用上述相同的方法安裝 IronOCR 的其他語言套件。
使用 Visual Studio 命令列
- 在 Visual Studio 中,前往"工具" > "NuGet 套件管理器" > "套件管理器控制台"。
在程式包管理器控制台標籤中輸入以下代碼:
Install-Package IronOcr
收據掃描 API(開發者教學),圖 7:軟體包管理器控制台 軟體包管理器控制台
該套件現在會下載/安裝到目前的專案中,並可立即使用。
使用收據 OCR API 進行資料擷取
使用 IronOCR 從收據影像中提取資料並將其儲存為結構化資料形式,對於大多數開發人員來說是一項非常實用的功能。 使用 IronOCR,只需幾行程式碼即可實現此功能。 利用此功能,您可以提取不同文件類型的明細項目、價格、稅額、總金額以及更多內容。
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
class ReceiptScanner
{
static void Main()
{
var ocr = new IronTesseract();
// Load the image of the receipt
using (var input = new OcrInput(@"r2.png"))
{
// Perform OCR on the input image
var result = ocr.Read(input);
// Regular expression patterns to extract relevant details from the OCR result
var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
var pricePattern = @"\$\d+(\.\d{2})?";
// Variables to store extracted data
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');
foreach (var line in lines)
{
// Match each line against the description pattern
var descriptionMatch = Regex.Match(line, descriptionPattern);
if (descriptionMatch.Success)
{
descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));
// Calculate tax and total amount for each item
var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
taxes.Add(tax);
amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
}
}
// Output the extracted data
for (int i = 0; i < descriptions.Count; i++)
{
Console.WriteLine($"Description: {descriptions[i]}");
Console.WriteLine($"Quantity: 1.00 Units");
Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
Console.WriteLine($"Amount: ${amounts[i]:0.00}");
Console.WriteLine("-----------------------");
}
}
}
}using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
class ReceiptScanner
{
static void Main()
{
var ocr = new IronTesseract();
// Load the image of the receipt
using (var input = new OcrInput(@"r2.png"))
{
// Perform OCR on the input image
var result = ocr.Read(input);
// Regular expression patterns to extract relevant details from the OCR result
var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
var pricePattern = @"\$\d+(\.\d{2})?";
// Variables to store extracted data
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');
foreach (var line in lines)
{
// Match each line against the description pattern
var descriptionMatch = Regex.Match(line, descriptionPattern);
if (descriptionMatch.Success)
{
descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));
// Calculate tax and total amount for each item
var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
taxes.Add(tax);
amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
}
}
// Output the extracted data
for (int i = 0; i < descriptions.Count; i++)
{
Console.WriteLine($"Description: {descriptions[i]}");
Console.WriteLine($"Quantity: 1.00 Units");
Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
Console.WriteLine($"Amount: ${amounts[i]:0.00}");
Console.WriteLine("-----------------------");
}
}
}
}Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions
Friend Class ReceiptScanner
Shared Sub Main()
Dim ocr = New IronTesseract()
' Load the image of the receipt
Using input = New OcrInput("r2.png")
' Perform OCR on the input image
Dim result = ocr.Read(input)
' Regular expression patterns to extract relevant details from the OCR result
Dim descriptionPattern = "\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
Dim pricePattern = "\$\d+(\.\d{2})?"
' Variables to store extracted data
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)
For Each line In lines
' Match each line against the description pattern
Dim descriptionMatch = Regex.Match(line, descriptionPattern)
If descriptionMatch.Success Then
descriptions.Add(descriptionMatch.Groups(1).Value.Trim())
unitPrices.Add(Decimal.Parse(descriptionMatch.Groups(2).Value))
' Calculate tax and total amount for each item
Dim tax = unitPrices(unitPrices.Count - 1) * 0.15D
taxes.Add(tax)
amounts.Add(unitPrices(unitPrices.Count - 1) + tax)
End If
Next line
' Output the extracted data
For i As Integer = 0 To descriptions.Count - 1
Console.WriteLine($"Description: {descriptions(i)}")
Console.WriteLine($"Quantity: 1.00 Units")
Console.WriteLine($"Unit Price: ${unitPrices(i):0.00}")
Console.WriteLine($"Taxes: ${taxes(i):0.00}")
Console.WriteLine($"Amount: ${amounts(i):0.00}")
Console.WriteLine("-----------------------")
Next i
End Using
End Sub
End Class如下所示,IronOCR 可以輕鬆地從收據中提取所需的文字。
收據掃描 API(開發者教學),圖 8:輸出 Output
提取整張收據
如果要提取整個收據,只需在 OCR 收據上編寫幾行程式碼即可輕鬆實現。
using IronOcr;
using System;
class WholeReceiptExtractor
{
static void Main()
{
var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
// Perform OCR on the entire receipt and print text output to console
var result = ocr.Read(input);
Console.WriteLine(result.Text);
}
}
}using IronOcr;
using System;
class WholeReceiptExtractor
{
static void Main()
{
var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
// Perform OCR on the entire receipt and print text output to console
var result = ocr.Read(input);
Console.WriteLine(result.Text);
}
}
}Imports IronOcr
Imports System
Friend Class WholeReceiptExtractor
Shared Sub Main()
Dim ocr = New IronTesseract()
Using input = New OcrInput("r3.png")
' Perform OCR on the entire receipt and print text output to console
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
End Sub
End Class! 收據掃描 API(開發者教學),圖 9:掃描收據 API 輸出 掃描收據 API 輸出
收據影像掃描 API(例如 IronOCR)提供強大的軟體解決方案,可自動從收據中提取資料。透過利用先進的 OCR 技術,企業可以輕鬆地從收據圖像或掃描件中提取重要訊息,包括商家名稱、購買日期、明細清單、價格、稅金和總金額。 透過支援多種語言、貨幣、收據格式和條碼,企業可以簡化收據管理流程,節省時間,深入了解消費模式,並做出數據驅動的決策。 IronOCR 作為一個功能全面的 OCR 函式庫和 API,為開發人員提供了從各種來源準確且有效率地提取文字所需的工具,從而實現了任務自動化並提高了整體效率。 透過滿足必要的前提條件並將 IronOCR 整合到他們的應用程式中,開發人員可以釋放收據資料處理的優勢並增強他們的工作流程。
有關 IronOCR 的更多信息,請訪問此許可頁面。 若要了解如何使用電腦視覺尋找文本,請造訪此電腦視覺操作指南頁面。 有關收據 OCR 的更多教程,請訪問以下OCR C# 教程。
常見問題解答
如何在 C# 中使用 OCR 自動擷取收據資料?
您可以使用 IronOCR 在 C# 中自動擷取收據資料,IronOCR 可讓您從收據影像中高準確度地擷取關鍵細節,例如細列項目、價格、稅金和總金額。
以 C# 建立收據掃描專案的先決條件為何?
要以 C# 建立收據掃描專案,您需要 Visual Studio、基本的 C# 程式設計知識,以及在專案中安裝 IronOCR 函式庫。
如何在 Visual Studio 中使用 NuGet Package Manager 安裝 OCR 函式庫?
開啟 Visual Studio,前往「工具」>「NuGet 套件管理員」>「管理解決方案的 NuGet 套件」,搜尋 IronOCR,並將其安裝在您的專案中。
我可以使用 Visual Studio 指令行安裝 OCR 函式庫嗎?
是的,您可以在 Visual Studio 中開啟套件管理員控制台並執行指令來安裝 IronOCR:Install-Package IronOcr。
如何使用 OCR 從整張收據中擷取文字?
若要從整張收據中擷取文字,請使用 IronOCR 對整張收據影像執行 OCR,然後再使用 C# 程式碼輸出擷取的文字。
收據掃描 API 有哪些優點?
IronOCR 之類的收據掃描 API 可自動進行資料擷取、將手動錯誤減至最低、提高生產力,並可深入瞭解消費模式,以做出更好的商業決策。
OCR 函式庫是否支援多種語言和貨幣?
是的,IronOCR 支援多種語言、貨幣和收據格式,是全球應用程式的理想選擇。
OCR 函式庫從影像中萃取文字的精確度如何?
IronOCR 採用先進的 OCR 演算法、電腦視覺和機器學習模型,即使在具挑戰性的情況下,也能確保高準確度。
使用 OCR 可以從收據中擷取哪些類型的資料?
IronOCR 可以擷取資料,例如細列項目、定價、稅額、總金額以及其他收據明細。
自動化收據解析如何改善業務流程?
使用 IronOCR 進行自動化收據解析,可減少手動輸入、允許精確的資料收集,並實現資料驅動的決策,從而改善業務流程。







