跳過到頁腳內容
使用 IRONOCR

C# 中的 OCR 發票處理開發者教學

發票資料處理是指接收、管理和驗證供應商或廠商的發票,並確保款項正確及時支付。它包含一系列旨在確保業務交易處理的準確性、合規性和效率的步驟,以避免使用紙本發票。 發票自動化處理可以顯著減少人工資料輸入錯誤,提高效率。 IronOCR是一個功能強大的光學字元辨識 (OCR) 軟體庫,可用於從數位檔案中的發票提取資料或文本,使其成為在 C# 應用程式中自動處理發票 OCR 的優秀工具。

如何使用 IronOCR 等 OCR 軟體處理發票數據

  1. 建立一個 Visual Studio 專案。
  2. 安裝 IronOCR C# 庫。
  3. 範例輸入發票圖片。
  4. 利用 Tesseract 從收據影像中擷取資料。
  5. 只讀取影像的一部分。

光學字元辨識(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版本類型。

C# 中的 OCR 發票處理(開發者教學):圖 4 - 目標框架

步驟 2:安裝 IronOCR C# 庫

在 Visual Studio 專案中,前往"工具">"NuGet 套件管理器">"管理解決方案的 NuGet 套件"。 點選"瀏覽"選項卡,搜尋 IronOCR。 選擇 IronOCR 並點擊安裝。

C# 中的 OCR 發票處理(開發者教學):圖 5 - IronOCR

另一種方法是使用控制台和以下命令。

dotnet add package IronOcr --version 2024.12.2

步驟 3:範例輸入發票圖片

附有發票號碼的電子發票範本圖片。

C# 中的 OCR 發票處理(開發者教學):圖 6 - 範例輸入

步驟 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
$vbLabelText   $csharpLabel

程式碼解釋

提供的程式碼示範如何在 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 從影像中識別出的內容,可用於進一步處理。

輸出

C# 中的 OCR 發票處理(開發者教學):圖 7 - 帶有發票編號的 OCR 輸出

步驟 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
$vbLabelText   $csharpLabel

程式碼解釋

這段程式碼使用 IronOCR 從圖像的特定區域提取文本,並提供圖像濾鏡選項以提高準確性。 以下是各部分的詳細說明:

1.許可證設定

  • 設定 IronOCR 的許可證金鑰,這是使用該庫的 OCR 功能所必需的。 請將"您的密鑰"替換為您的有效許可證密鑰。

2.定義影像檔案路徑

  • 指定要處理的發票圖像的檔案路徑,其中包含要提取文字的內容。

3.建立 OCR 實例

  • 建立IronTesseract實例以執行 OCR 操作。

4.確定處理區域

  • 指定影像內的一個矩形區域(從左上角開始),以便將 OCR 流程集中在相關部分,從而提高效率。

5.載入圖片

  • 從檔案載入影像的指定內容區域。這會將 OCR 處理限制在影像的特定部分。

6.應用篩選條件

  • 應用Deskew()等濾鏡來增強影像對齊,並可能應用DeNoise()來清理影像,從而提高 OCR 準確率。

7.提取文字

  • 從定義的區域讀取文字並將其儲存在OcrResult中。

8.輸出提取的文字

  • 將 OCR 處理後的文字輸出到控制台以供進一步使用。

輸出

C# 中的 OCR 發票處理(開發者教學):圖 8 - 提取的輸出

授權(可試用)

IronOCR 需要金鑰才能從發票中提取資料。 從許可頁面取得您的開發者試用金鑰。

using IronOcr; 
License.LicenseKey = "Your Key";
using IronOcr; 
License.LicenseKey = "Your Key";
Imports IronOcr
License.LicenseKey = "Your Key"
$vbLabelText   $csharpLabel

結論

本文提供了一個使用 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# 應用程式,以進行自動化資料處理。

Kannaopat Udonpant
軟體工程師
在成為软件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人实验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因为他直接向编写大部分 IronPDF 使用的代码的开发者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代码或文档时,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。