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 技術。 *條碼和二維碼辨識:除了標準的文字辨識外,IronOCR 還可以偵測和擷取影像中的條碼和二維碼。
- PDF 支援:它可以讀取和提取掃描 PDF 中的文本,因此可用於處理發票、收據和其他商業文件。 *自訂:此程式庫允許根據特定需求自訂 OCR 設置,例如調整精度或處理不同的影像解析度。
先決條件
在開始之前,請確保您已準備好以下物品:
- 您的電腦上已安裝 Visual Studio。
- 具備C#程式設計基礎。
- IronOCR NuGet 套件已安裝在您的專案中。
步驟 1:建立 Visual Studio 項目
開啟 Visual Studio,然後按一下"建立新專案"。
C# 中的 OCR 發票處理(開發者教學):圖 1 - 新建項目
在選項中選擇"控制台應用程式"。
C# 中的 OCR 發票處理(開發者教學):圖 2 - 控制台應用程式
請提供專案名稱和路徑。
C# 中的 OCR 發票處理(開發者教學):圖 3 - 專案配置
選擇.NET版本類型。
步驟 2:安裝 IronOCR C# 庫
在 Visual Studio 專案中,前往"工具">"NuGet 套件管理器">"管理解決方案的 NuGet 套件"。 點選"瀏覽"選項卡,搜尋 IronOCR。 選擇 IronOCR 並點擊安裝。
C# 中的 OCR 發票處理(開發者教學):圖 5 - 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
}程式碼解釋
提供的程式碼示範如何在 C# 中使用IronOCR庫,透過 OCR(光學字元辨識)從圖像(例如發票)中提取文字。 以下是對程式碼各部分的解釋:
1.許可證密鑰設定:
- 代碼首先設定 IronOCR 的許可證金鑰。 要使用該庫的全部功能,需要此金鑰。 如果您擁有有效許可證,請將"您的許可證"替換為您的實際許可證密鑰。
2.指定輸入檔:
filePath變數儲存包含發票的圖片的位置(在本例中為"sample1.jpg")。 這是將被處理以提取文字的文件。
3.建立 OCR 實例:
- 建立
IronTesseract的一個實例。IronTesseract類別負責對輸入資料執行 OCR 操作。
4.載入圖片:
- 程式碼建立了一個
OcrInput對象,該物件使用LoadImage方法載入filePath指定的圖像。
5.應用影像濾鏡:
- 此程式碼可以選擇性地應用
Deskew()等濾鏡來校正傾斜的影像並提高 OCR 準確率。
6.執行 OCR:
ocr.Read()方法從載入的圖像中提取文本,傳回一個包含提取文本的OcrResult。
7.顯示提取的文字:
- 提取的文字將列印到控制台。 這是 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);
}程式碼解釋
這段程式碼使用 IronOCR 從圖像的特定區域提取文本,並提供圖像濾鏡選項以提高準確性。 以下是各部分的詳細說明:
1.許可證設定:
- 設定 IronOCR 的許可證金鑰,這是使用該庫的 OCR 功能所必需的。 請將"您的密鑰"替換為您的有效許可證密鑰。
2.定義影像檔案路徑:
- 指定要處理的發票圖像的檔案路徑,其中包含要提取文字的內容。
3.建立 OCR 實例:
- 建立
IronTesseract實例以執行 OCR 操作。
4.確定處理區域:
- 指定影像內的一個矩形區域(從左上角開始),以便將 OCR 流程集中在相關部分,從而提高效率。
5.載入圖片:
- 從檔案載入影像的指定內容區域。這會將 OCR 處理限制在影像的特定部分。
6.應用篩選條件:
- 應用
Deskew()等濾鏡來增強影像對齊,並可能應用DeNoise()來清理影像,從而提高 OCR 準確率。
7.提取文字:
- 從定義的區域讀取文字並將其儲存在
OcrResult中。
8.輸出提取的文字:
- 將 OCR 處理後的文字輸出到控制台以供進一步使用。
輸出
許可證(提供試用版)
IronOCR 需要金鑰才能從發票中提取資料。 從許可頁面取得您的開發者試用金鑰。
using IronOcr;
License.LicenseKey = "Your Key";using 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# 應用程式中,以實現自動化資料處理。







