如何建立發票的 OCR 解決方案
光學字元識別,或稱為OCR,是一種技術使電腦能夠識別和從圖片或掃描的文件中提取文字。 OCR 軟體的主要目標是將包含文字的照片轉換為機器可讀的文字資料。 這項技術可以使眾多行業受益,簡化資料輸入、文件數位化和自動化流程,例如應付帳款處理。 在本文中,我們將探討使用 OCR 解決方案來處理發票,以及它如何使手動發票處理變得過時。
如何使用 OCR 解決方案處理發票
- 安裝IronOCR C# 程式庫。
- 在 Visual Studio 中建立一個新的 C# 專案。
- 探索功能豐富的 C# 程式庫以對收據進行 OCR。
- 使用 Tesseract 從收據中提取資料。
- 在提取的文字結果中搜尋特定資料。
- 檢查提供的收據圖片上的條碼值。
什麼是發票處理?
企業可以透過利用 OCR 發票處理,將基於圖片或掃描的帳單轉換為機器可讀的文字,這自動化了從發票中提取文字和資料的過程。 這種自動化提高了財務流程的效率,減少了手動資料輸入,並簡化了發票處理方式。
IronOCR
光學字元識別 (OCR) 為使用 C# 編程語言的開發者提供了由IronOCR支援的 .NET 程式庫。 由 Iron Software 建立的 IronOCR 是應用程式需要自動文字識別時的有用工具,讓使用者能從圖片、掃描的文件和 PDF 文件中提取文字。 要從發票中提取文字和資料,您需要將 IronOCR 程式庫整合到您的 .NET 應用程式中,以實現自動化的發票處理。
IronOCR 透過人工智慧算法幫助避免欺詐,快速識別錯誤、欺詐和重複的發票。 它通過優越的 OCR 發票資料提取減少錯誤,從而避免了由人員資料輸入造成的錯誤。 在此了解更多有關 IronOCR 的資訊。
IronOCR 的突出特點是:
- 文字提取:從圖片、掃描的文件和 PDF 中提取文字內容。 它使用先進的 OCR 算法來識別所提供文件中的字詞、字元和佈局。
- 供應商資訊:使用 IronOCR 從發票圖片中提取包括供應商詳細資訊、明細項目、發票號碼、日期以及任何其他相關資料的文字資訊。
- 條碼讀取:IronOCR 不僅包含 OCR 的能力,還包括從圖片中讀取條碼的功能,這提高了其對需要同時處理文字和條碼資料的應用程式的適應性。
- 圖片預處理:支持去斜、降噪和對比度校正。 這些技術有助於提升輸入圖片,增加 OCR 的準確性。
- 基於區域的 OCR 技術:允許開發者定義圖片的特定區域以聚焦進行文字提取。 這在處理結構化佈局的文件時很有用。
重要的是要注意,解決方案的成功取決於 OCR 設置的準確性、發票的複雜性和輸入圖片的質量。 此外,使用 IronOCR 的 API 並理解程式庫的特定功能可作為整合過程中的重要步驟。 始終查閱官方 IronOCR 文件以獲取最新的細節和建議。
在 Visual Studio 中建立新專案
啟動 Visual Studio 並導覽至"文件"選單。 選擇"新專案",然後選擇"控制台應用程式"。在這裡我們將建立一個控制台程式用於 OCR 工作。

在文字框中輸入專案名稱並指定文件位置。 單擊建立按鈕並選擇所需的 .NET Framework。

一旦選擇應用程式後,Visual Studio 專案將建立其結構。 如果您選擇了控制台、Windows 或 Web 版本,它將打開Program.cs文件,允許您新增程式碼並構建/運行應用程式。
我們可以在那之後新增程式庫來測試程式碼。
安裝 IronOCR
using Visual Studio 的 NuGet 套件管理工具,直接將套件安裝到您的解決方案中。 請參考下圖查看 NuGet 套件管理器。

它提供一個搜尋框,以列出來自 NuGet 網站的套件。如下面所示,在套件管理中搜尋"IronOCR":

上面的圖示應列出相關的搜尋詞。 我們需要進行必要的選擇來安裝解決方案套件。
IronOCR 用於從發票中提取資料
IronOCR 是一個強大的 OCR 程式庫,可用於提取和讀取發票資料。 使用 IronOCR,您可以將一張收據圖片轉換為便於處理和分析的機器可讀文字,而不影響資料隱私。 發票 OCR 讓我們可以將發票資料提取為數位格式。
以下是 IronOCR 如何處理供應商發票並從紙質發票中提取文字的範例。
using System;
using IronOcr;
class InvoiceProcessor
{
static void Main()
{
// Create a new instance of IronTesseract
var Ocr = new IronTesseract();
// Set language and Tesseract version
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
// Using OcrInput to add images and read text
using (var Input = new OcrInput())
{
// Add the invoice image
Input.AddImage(@"invoice.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Output the extracted text
Console.WriteLine(Result.Text);
Console.ReadKey();
}
}
}
using System;
using IronOcr;
class InvoiceProcessor
{
static void Main()
{
// Create a new instance of IronTesseract
var Ocr = new IronTesseract();
// Set language and Tesseract version
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
// Using OcrInput to add images and read text
using (var Input = new OcrInput())
{
// Add the invoice image
Input.AddImage(@"invoice.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Output the extracted text
Console.WriteLine(Result.Text);
Console.ReadKey();
}
}
}
Imports System
Imports IronOcr
Friend Class InvoiceProcessor
Shared Sub Main()
' Create a new instance of IronTesseract
Dim Ocr = New IronTesseract()
' Set language and Tesseract version
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
' Using OcrInput to add images and read text
Using Input = New OcrInput()
' Add the invoice image
Input.AddImage("invoice.png")
' Read the text from the image
Dim Result = Ocr.Read(Input)
' Output the extracted text
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
End Sub
End Class
以下是上述程式碼的結果:

此範例演示了 IronOCR 如何在控制台中提取並顯示資料。
閱讀發票上的條碼
除了文字之外,收據上的條碼也可以使用 IronOCR 掃描。 要使用 IronOCR 掃描收據上的條碼,請使用BarcodeReader類。
以下是如何使用 IronOCR 解碼收據圖像以進行條碼閱讀的方法。
using System;
using IronOcr;
class BarcodeReaderExample
{
static void Main()
{
// Initialize IronTesseract
var ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Use OcrInput to add image and process barcodes
using (var ocrInput = new OcrInput("invoice.png"))
{
var ocrResult = ocrTesseract.Read(ocrInput);
// Iterate over and output each detected barcode
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
using System;
using IronOcr;
class BarcodeReaderExample
{
static void Main()
{
// Initialize IronTesseract
var ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Use OcrInput to add image and process barcodes
using (var ocrInput = new OcrInput("invoice.png"))
{
var ocrResult = ocrTesseract.Read(ocrInput);
// Iterate over and output each detected barcode
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
Imports System
Imports IronOcr
Friend Class BarcodeReaderExample
Shared Sub Main()
' Initialize IronTesseract
Dim ocrTesseract = New IronTesseract()
' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True
' Use OcrInput to add image and process barcodes
Using ocrInput As New OcrInput("invoice.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Iterate over and output each detected barcode
For Each barcode In ocrResult.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End Using
End Sub
End Class

雖然 IronOCR 提供了強大的 OCR 功能,但必須記住完整的發票處理工作流程可能涉及其他組件,如資料驗證、業務邏輯和金融系統連接。 根據您的使用情況,您可能需要將 IronOCR 與其他工具結合起來,以實現完整的發票處理解決方案。
結果:

要了解更多有關 IronOCR 在線示範的資訊,請參考這裡。
結論
總之,IronOCR作為 C# 開發者的優秀且適應性強的光學字元識別 (OCR) 程式庫,表現出色。 Iron Software 提供的這個綜合方案簡化了從圖片、掃描的文件和 PDF 文件中提取文字的過程。
最後,IronOCR 是一個值得注意的 OCR 解決方案,提供了卓越的整合、靈活性和準確性。 IronOCR 由於其先進的算法和能識別多種文件格式的能力,在準確性上無與倫比,使其成為可用的最佳 OCR 解決方案之一。 它提供了文件良好的程式碼範例,允許初學者快速且輕鬆地學習。
IronOCR 的經濟實惠開發版本是可存取的,購買 IronOCR 套件即增提供永久授權。 IronOCR 套件起價為\$liteLicense,以單一成本為多個系統提供了卓越的價值。 它提供 24/7 在線工程師支援給擁有授權的使用者。 有關費用的更多詳情,請造訪 IronOCR 網站。
常見問題
如何使用OCR技術自動化發票處理?
您可以通過使用IronOCR從掃描的發票中提取文字和資料來自動化發票處理。這種自動化減少了手動資料輸入,提升了財務操作的效率。
設置IronOCR用於發票處理涉及哪些步驟?
要設置IronOCR用於發票處理,您需要在Visual Studio中建立C#專案,使用NuGet程式包管理器安裝IronOCR程式庫,並利用Tesseract引擎進行資料提取。
IronOCR如何通過圖像預處理提升OCR準確率?
IronOCR通過圖像預處理功能如矯正、噪點減少和對比度校正來提升OCR準確性,這增強了輸入圖像的質量。
什麼是基於區域的OCR技術?它如何有利於發票處理?
IronOCR中的基於區域的OCR技術允許開發人員為目標文字提取指定圖像上的特定區域,使其在處理結構化文件布局(如發票)時更為有效。
我可以使用IronOCR從發票中提取供應商資訊嗎?
可以,IronOCR能夠通過利用其先進的文字提取功能和OCR設置調整來從發票中提取供應商資訊。
為何圖像質量對於OCR成功實現至關重要?
圖像質量大大影響OCR的準確性。使用高質量的圖像與IronOCR確保更好的文字識別,減少資料提取中的錯誤。
在發票處理中使用IronOCR的一些常見問題解決建議是什麼?
常見的問題解決建議包括驗證OCR設置、確保高質量輸入圖像,以及查詢IronOCR的文件以獲得最佳配置和使用實踐。
條碼閱讀如何增強發票處理?
利用IronOCR進行條碼閱讀能增強發票處理,因為它允許提取文字和條碼資料,促進從發票的全面資料處理。
推薦使用哪種編程環境來使用IronOCR?
.NET環境中特別推薦使用IronOCR,尤其是使用C#作為編程語言,為實現OCR功能提供堅實的平台。
IronOCR如何支持開發人員將OCR整合到應用中?
IronOCR為開發者提供了詳細的文件和程式碼範例,使其能夠輕鬆將OCR功能整合到應用中,確保流暢的開發過程。



