C# 中的 OCR 發票處理開發者教學
發票資料處理涉及接收、管理和驗證供應商或供應商的發票,並確保付款正確且及時進行。 它涉及設計用於確保業務交易準確性、合規性和效率的步驟,以避免紙質發票。 自動發票處理可以顯著減少手動資料輸入錯誤並提高效率。 IronOCR 是一個強大的光學字元識別 (OCR) 軟體程式庫,可用於從數字文件中提取發票上的資料或文字,使其成為在 C# 應用程式中自動化發票 OCR 處理的絕佳工具。
如何使用類似 IronOCR 的 OCR 軟體處理發票資料
- 建立一個 Visual Studio 專案。
- 安裝 IronOCR C# 程式庫。
- 範例輸入發票影像。
- 使用 Tesseract 並從收據影像中提取資料。
- 僅閱讀影像的一個區域。
光學字元識別 (OCR)
光學字元識別 是一種技術,能夠識別和轉換不同型別的文件、PDF 或文字影像為可編輯和可搜索的資料。 OCR 技術處理文字影像並提取字元,使其成為機器可讀。 先進的 OCR 發票軟體系統有助於財務管理工具和發票自動化。
OCR 的關鍵點
- 功能: OCR 軟體掃描影像或文字(例如照片或掃描文件)並將字元轉換為可編輯、可搜索和可儲存的數字文字。
- 應用: OCR 在各行各業中廣泛用於數字化列印文件、發票處理、表單資料提取、自動號牌識別(ANPR)、應付帳款工作流程和掃描書籍等任務。
- 技術: OCR 使用算法識別光與暗的模式來解釋字元。 現代 OCR 系統還使用機器學習和人工智慧來提高準確性。
- 優點: OCR 通過自動資料輸入、減少錯誤以及方便資料搜尋和檢索,提高了生產力。 它還支持文件存檔,並幫助企業管理無紙化工作流程。
OCR 技術已顯著發展,使其在處理文件和提取發票資料方面非常精確且有用,可減少手動資料輸入、消除手動發票處理並增強資料安全性。
IronOCR
IronOCR 是一個強大的 .NET (C#) 光學字元識別 (OCR) 程式庫,允許開發人員從影像、PDF 和其他文件格式中提取文字,開發 OCR 發票軟體,並實現應付帳款工作流程。 它提供了一個易於使用的 API,可以將 OCR 功能整合到應付帳款系統或會計系統中。
IronOCR 的關鍵特性
- 文字提取: 它可以從多種影像格式(PNG、JPG、TIFF 等)和 PDF 中提取文字,包括用於會計軟體的多頁 PDF。
- 準確性: IronOCR 使用先進的算法和機器學習技巧,提供高準確性的文字識別,即使對於噪音或低品質影像,也能為應付帳款流程和提前付款折扣提供準確的結果。
- 語言支援: 該程式庫支援多種語言,包括英文、西班牙文、法文等,這有助於識別不同語言的文字。
- 易用性: IronOCR 提供了一個簡單的 API,讓開發人員可以快速將 OCR 功能整合到其應用中,無需深厚的 OCR 技術知識。
- 條碼和 QR 碼識別: 除了標準文字識別,IronOCR 還可以檢測並提取影像中的條碼和 QR 碼。
- PDF 支援: 它可以從掃描的 PDF 中讀取和提取文字,使其在處理發票、收據和其他商務文件時很有用。
- 自訂化: 該程式庫允許根據特定需求自訂 OCR 設置,例如調整準確性或處理不同的影像解析度。
先決條件
在開始之前,請確保您擁有以下內容:
- 已在您的機器上安裝 Visual Studio。
- 對 C# 程式設計有基本了解。
- 在您的專案中安裝了 IronOCR NuGet 套件。
步驟 1:建立一個 Visual Studio 專案
打開 Visual Studio 並點擊建立一個新專案。

在選項中選擇 Console App。

提供專案名稱和路徑。

選擇 .NET 版本型別。

步驟 2:安裝 IronOCR C# 程式庫
在 Visual Studio 中的專案中,前往 工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件。 點擊瀏覽標籤並搜尋 IronOCR。 選擇 IronOCR 並點擊安裝。

另一個選擇是使用控制台和下面的命令。
dotnet add package IronOcr --version 2024.12.2
步驟 3:範例輸入發票影像
範例帶有發票編號的數字發票影像。

步驟 4:使用 Tesseract 並從收據影像中提取資料
現在使用下面的程式碼從發票中提取資料以進行 OCR 發票處理。
using IronOcr;
// Set the license key
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // Path to the invoice image
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image for OCR
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(filePath);
// Optionally apply filters if needed
ocrInput.Deskew();
// ocrInput.DeNoise();
// Perform OCR to extract text
var ocrResult = ocr.Read(ocrInput);
// Output the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(ocrResult.Text);
// Next steps would involve processing the extracted text
}
using IronOcr;
// Set the license key
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // Path to the invoice image
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image for OCR
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(filePath);
// Optionally apply filters if needed
ocrInput.Deskew();
// ocrInput.DeNoise();
// Perform OCR to extract text
var ocrResult = ocr.Read(ocrInput);
// Output the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(ocrResult.Text);
// Next steps would involve processing the extracted text
}
Imports IronOcr
' Set the license key
License.LicenseKey = "Your License"
Dim filePath As String = "sample1.jpg" ' Path to the invoice image
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image for OCR
Using ocrInput As New OcrInput()
ocrInput.LoadImage(filePath)
' Optionally apply filters if needed
ocrInput.Deskew()
' ocrInput.DeNoise();
' Perform OCR to extract text
Dim ocrResult = ocr.Read(ocrInput)
' Output the extracted text
Console.WriteLine("Extracted Text:")
Console.WriteLine(ocrResult.Text)
' Next steps would involve processing the extracted text
End Using
程式碼解釋
提供的程式碼演示如何在 C# 中使用 IronOCR 程式庫,利用 OCR(光學字元識別)從影像(例如發票)中提取文字。 以下是程式碼每一部分的說明:
-
許可證密鑰設置:
- 程式碼首先設置 IronOCR 的許可證密鑰。 該密鑰是使用程式庫全部功能所需的。 如果您擁有有效许可证,用您的實際許可證密鑰取代"您的許可證"。
-
指定輸入文件:
filePath變數保存了包含發票的影像位置(在此範例中為"sample1.jpg")。 這是將用於文字提取的文件。
-
建立 OCR 實例:
- 建立一個
IronTesseract的實例。IronTesseract是負責在輸入資料上執行 OCR 操作的類。
- 建立一個
-
載入影像:
- 程式碼建立一個
OcrInput物件,該物件使用LoadImage方法載入由filePath指定的影像。
- 程式碼建立一個
-
應用影像過濾器:
- 程式碼可選地應用類似
Deskew()之類的過濾器,以校正扭曲影像並提高 OCR 準確性。
- 程式碼可選地應用類似
-
執行 OCR:
ocr.Read()方法從載入的影像中提取文字,返回包含提取文字的OcrResult。
- 顯示提取的文字:
- 提取的文字被列印到控制台。 這些文字是 IronOCR 從影像中識別出的內容,可以用於進一步處理。
輸出

步驟 5:僅閱讀影像的一部分
為了提高效率,可以僅處理影像的一部分進行提取。
using IronOcr;
using IronSoftware.Drawing;
// Set the license key
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; // Path to the invoice image
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image for OCR
using (var ocrInput = new OcrInput())
{
// Define the region of interest
var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
ocrInput.LoadImage(filePath, ContentArea);
// Optionally apply filters if needed
ocrInput.Deskew();
// ocrInput.DeNoise();
// Perform OCR to extract text
var ocrResult = ocr.Read(ocrInput);
// Output the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(ocrResult.Text);
}
using IronOcr;
using IronSoftware.Drawing;
// Set the license key
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; // Path to the invoice image
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image for OCR
using (var ocrInput = new OcrInput())
{
// Define the region of interest
var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
ocrInput.LoadImage(filePath, ContentArea);
// Optionally apply filters if needed
ocrInput.Deskew();
// ocrInput.DeNoise();
// Perform OCR to extract text
var ocrResult = ocr.Read(ocrInput);
// Output the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
' Set the license key
License.LicenseKey = "Your Key"
Dim filePath As String = "sample1.jpg" ' Path to the invoice image
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image for OCR
Using ocrInput As New OcrInput()
' Define the region of interest
Dim ContentArea = New Rectangle(x:= 0, y:= 0, width:= 1000, height:= 250)
ocrInput.LoadImage(filePath, ContentArea)
' Optionally apply filters if needed
ocrInput.Deskew()
' ocrInput.DeNoise();
' Perform OCR to extract text
Dim ocrResult = ocr.Read(ocrInput)
' Output the extracted text
Console.WriteLine("Extracted Text:")
Console.WriteLine(ocrResult.Text)
End Using
程式碼解釋
此程式碼使用 IronOCR 從影像的特定區域提取文字,並提供影像過濾器選項以提高準確性。 以下是每一部分的細分說明:
-
許可證設置:
- 設置 IronOCR 的許可證密鑰,這是使用此程式庫的 OCR 功能所必需的。 用有效的許可證密鑰替代"您的密鑰"。
-
定義影像文件路徑:
- 指定將要處理的發票影像的文件路徑,該路徑包含用於文字提取的內容。
-
建立 OCR 實例:
- 建立一個
IronTesseract的實例以執行 OCR 操作。
- 建立一個
-
定義要處理的區域:
- 指定影像中的矩形區域(從左上角開始)以將 OCR 過程重點放在相關區段,提高效率。
-
載入影像:
- 從文件中載入影像的指定內容區域。 這將 OCR 處理限制在影像的特定部分。
-
應用過濾器:
- 應用類似
Deskew()的過濾器來提高圖像對齊,並可能使用DeNoise()清理影像,提高 OCR 準確性。
- 應用類似
-
提取文字:
- 從定義的區域中讀取文字並將其儲存在
OcrResult中。
- 從定義的區域中讀取文字並將其儲存在
- 輸出提取的文字:
- 將經過 OCR 處理的文字輸出到控制台以供進一步使用。
輸出

許可證 (試用可用)
IronOCR 需要一個密鑰來提取發票上的資料。 從 授權頁面 獲取您的開發者試用密鑰。
using IronOcr;
License.LicenseKey = "Your Key";
using IronOcr;
License.LicenseKey = "Your Key";
Imports IronOcr
License.LicenseKey = "Your Key"
結論
本文提供了一個有關如何使用 IronOCR 處理發票的基本範例。 您可以進一步自訂和擴展此程式碼以滿足您的特定需求。
IronOCR 提供了一個高效且易於整合的解決方案,用於從影像和 PDF 中提取文字,使其成為處理發票的理想選擇。 結合 IronOCR 與 C# 字串操作或正則表達式,您可以快速處理和提取發票中的重要資料。
這是一個發票處理的基本範例,並通過更高級的配置(如語言識別、多頁 PDF 處理等)可以精細調整 OCR 結果以提高您特定用例的準確性。
IronOCR 的 API 靈活,可以用於多種 OCR 任務,不僅限於發票處理,還包括收據掃描、文件轉換和資料輸入自動化。
常見問題
如何在C#中自動化發票資料處理?
您可以使用IronOCR在C#中自動化發票資料處理,以從數位發票文件中提取文字和資料。這樣可以減少手動資料輸入錯誤並提高處理發票的效率。
設置發票處理OCR涉及哪些步驟?
要設置發票處理OCR,請從建立Visual Studio專案開始,然後安裝IronOCR程式庫並使用範例發票影像。接下來,您可以利用IronOCR的功能來提取和處理發票資料。
如何使用OCR從發票的特定區域提取資料?
IronOCR允許您通過設置矩形區域來定義影像的特定區域,以集中OCR過程。此功能通過僅針對發票的必要部分提高了效率和準確性。
Tesseract在IronOCR中的作用是什麼?
Tesseract是IronOCR的一部分,在從影像中提取文字中起著至關重要的作用。它幫助將帶有文字的影像轉換為機器可讀資料,這對於在C#應用程式中自動化發票處理至關重要。
OCR軟體可以識別多種語言的文字嗎?
是的,IronOCR支援多種語言,使其能夠識別和處理多種語言的文字,例如英語、西班牙語和法語,提高了其在處理全球發票時的多樣性。
使用IronOCR進行發票處理有什麼好處?
使用IronOCR進行發票處理的好處包括高精度的文字提取、多語言支援、條碼識別和PDF處理功能,所有這些都有助於簡化應付帳款工作流程。
如何自訂OCR設定以滿足特定的發票處理需求?
IronOCR提供了一個簡單的API,允許開發者自訂OCR設定。這種靈活性使針對不同的發票格式或語言需求提供量身定製的解決方案成為可能。
OCR在數位發票管理中有什麼重要性?
OCR在數位發票管理中至關重要,因為它能自動從發票中提取資料,減少手動工作量,降低錯誤,並確保高效和精確的財務交易處理。
有試用版本可用來測試IronOCR的功能嗎?
是的,IronOCR提供了開發者試用金鑰,您可以從其授權頁面獲得該金鑰,讓您在購買之前測試軟體的全部功能。
IronOCR如何改善文件轉換和資料輸入自動化?
IronOCR通過提供各種格式的高精度文字提取,提高文件轉換和資料輸入自動化的效率,使其能無縫整合到C#應用程式中以進行自動化資料處理。



