跳過到頁腳內容
使用 IRONOCR

如何在 C# 中創建 OCR 收據掃描儀

本教學課程旨在協助初學者使用IronOCR (C# 中的 OCR API)建立OCR 收據掃描器。 在本指南結束時,您將了解如何使用收據 OCR API 實現光學字元辨識 (OCR),將不同類型的收據檔案轉換為可編輯且可搜尋的資料。 對於希望實現費用管理自動化和最大限度減少人工資料輸入的企業來說,這項技術可以帶來改變。 讓我們開始吧

如何在 C# 中建立 OCR 收據掃描器

  1. 在 Visual Studio 中建立一個 C# 控制台專案。
  2. 使用 NuGet 套件管理器安裝 OCR 庫。
  3. 使用OcrInput方法將收據載入到程式中。
  4. 使用Read方法提取文字。
  5. 在控制台上顯示提取的文字。

先決條件

在開始編寫程式碼之前,請確保您已準備好以下物品:

  1. Visual Studio :這將是我們的整合開發環境 (IDE),我們將在其中編寫和運行我們的 C# 程式碼。
  2. IronOCR 庫:我們將使用 IronOCR,這是一個高級的 OCR 庫,可以輕鬆整合到 C# 應用程式中。 3.收據樣本:一個名為Sample_Receipt.jpg的收據圖像文件,我們將使用它來測試我們的OCR 實作

如何在 C# 中建立 OCR 收據掃描器:圖 1 - 收據範例圖片

步驟 1:項目設定

開啟 Visual Studio :在桌面或應用程式選單中找到 Visual Studio 圖標,雙擊即可開啟該程式。

建立新專案:Visual Studio 開啟後,你會看到一個啟動視窗。 點擊"建立新項目"按鈕。 如果您已經開啟了 Visual Studio 但沒有看到啟動窗口,可以透過點擊頂部選單中的"檔案">"新建">"專案"來存取它。

選擇項目類型:在"建立新項目"視窗中,您將看到各種項目範本。 在搜尋框中,鍵入"控制台應用程式"以篩選選項,然後根據您的偏好和相容性選擇控制台應用程式 (.NET Core) 或控制台應用程式 (.NET Framework)。 然後點擊"下一步"按鈕。

設定您的新專案:現在,您將看到一個名為"配置您的新專案"的畫面。

  • 在"專案名稱"欄位中,輸入OCRReceiptScanner作為您的專案名稱。
  • 在位置欄位中選擇或確認項目的儲存位置。
  • (可選)如果您希望解決方案名稱與專案名稱不同,也可以指定解決方案名稱。 填寫完這些資訊後,點擊"下一步"按鈕。

補充資訊:系統可能會要求您選擇目標 .NET Framework。 選擇最新版本(除非您有特定的相容性要求),然後按一下"建立"

步驟 2:整合 IronOCR

在使用 IronOCR 庫之前,我們需要將其包含到我們的專案中。 請遵循以下步驟:

  1. 在解決方案資源管理器中以滑鼠右鍵按一下您的專案。
  2. 選擇"管理 NuGet 套件"。
  3. 在 NuGet 套件管理員視窗中,您會看到幾個選項卡,例如"瀏覽"、 "已安裝""更新""合併" 。 點選"瀏覽"標籤。
  4. 在搜尋框中,輸入IronOcr 。 這是我們希望添加到專案中的庫的名稱。 按下回車鍵搜尋。
  5. 搜尋結果將顯示 IronOCR 庫包。 它應該是你最先看到的結果之一。 按一下以選取。
  6. 選擇 IronOCR 軟體包後,您會在右側看到一個面板,其中顯示了該軟體包的信息,包括其描述和版本。 此面板中還有一個"安裝"按鈕。

    如何在 C# 中建立 OCR 收據掃描器:圖 2 - 透過 NuGet 套件管理器安裝 IronOCR

  7. 點選"安裝"按鈕。 此操作可能會提示您查看更改,並可能顯示將與 IronOcr 一起包含的依賴項清單。 檢查變更和依賴項,如果一切看起來都正確,請確認並繼續安裝。

步驟 3:設定項目

安裝 IronOCR 後,下一步是配置您的專案。 方法如下

新增命名空間:在Program.cs檔案的頂部,包含以下命名空間:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
$vbLabelText   $csharpLabel

配置設定:如果您有任何配置設置,例如 API 金鑰或許可證金鑰,請務必將其包含在內。 對於 IronOCR,您需要按照提供的代碼所示設定許可證金鑰:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
$vbLabelText   $csharpLabel

第四步:閱讀收據

現在,讓我們來編寫讀取收據的程式碼。

定義收據路徑:指定要掃描的收據檔案的路徑。

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
$vbLabelText   $csharpLabel

try-catch 區塊:使用 try-catch 區塊實作錯誤處理。 這將有助於您管理 OCR 過程中出現的任何異常情況。

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

第五步:實施OCR

在步驟 5 中,我們將深入研究應用程式的核心功能:實作 OCR 以讀取和解釋收據中的資料。 這包括初始化 OCR 引擎、設定輸入、執行 OCR 操作和顯示結果。

初始化 IronTesseract

程式碼的第一部分創建了IronTesseract類別的一個實例:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
$vbLabelText   $csharpLabel

透過建立IronTesseract實例,我們實際上是在設定我們的 OCR 工具,使其能夠執行文字辨識任務。 這就像開車前必須先啟動引擎一樣。 該物件將用於控制 OCR 過程,包括讀取輸入並從中提取文字。

配置 OCR 輸入

接下來,我們定義OCR流程的輸入:

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
$vbLabelText   $csharpLabel

在本部分中, OcrInput用於指定我們要處理的檔案。 pdfFilePath是一個變數,它包含收據檔案的路徑。透過將此變數傳遞給OcrInput ,我們告訴 OCR 引擎:"這是我要讀取的檔案。" using語句是 C# 中的一個特殊結構,它確保OcrInput使用的資源(例如檔案句柄)在處理完成後被正確釋放。 這是一種有效管理資源並確保應用程式流暢運行而不會造成不必要的記憶體佔用的方法。

執行 OCR

using程式碼區塊中,我們呼叫ocr實例的Read方法:

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

Read方法會將輸入檔案路徑作為參數。 此行將開始掃描收據。 它將對給定的輸入檔進行 OCR 識別,提取數據,並將其儲存在變數result中。 我們可以使用透過這種方法提取的文字來執行任何文字操作。

輸出結果

最後,我們輸出OCR辨識出的文字:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

result變數包含 OCR 過程的輸出,而result.Text包含從收據中提取的實際文字。 Console.WriteLine函數隨後會取得這段文字並將其顯示在控制台上。 這樣您就可以檢視和驗證 OCR 處理的結果。 以下是完整的Program.cs檔案程式碼:

using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

        try
        {
            // Initialize the OCR engine
            var ocr = new IronTesseract();

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

        try
        {
            // Initialize the OCR engine
            var ocr = new IronTesseract();

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Set your IronOCR license key
		License.LicenseKey = "Your-License-Key"

		' Define the path to the receipt image
		Dim pdfFilePath As String = "Sample_Receipt.jpg"

		Try
			' Initialize the OCR engine
			Dim ocr = New IronTesseract()

			' Define the input file
			Using input = New OcrInput(pdfFilePath)
				' Perform OCR and get the result
				Dim result = ocr.Read(input)

				' Display the extracted text
				Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions and log them if necessary
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

步驟 6:運行您的應用程式

1.建置專案:點選"建置"選單,然後選擇"建置解決方案"。 2.運行專案:按 F5 鍵或按一下"開始"按鈕運行您的應用程式。

現在,您可以在控制台中看到收據輸出的文字。 此文字顯示的是從您的收據圖像中提取的資料。 這就是我們使用 IronOCR 掃描收據的方式。 這是一個利用OCR技術從紙本收據中提取資料的簡單範例,是一個非常通用的實作方式。 您可以修改程式碼以符合收據圖片的佈局。

如何在 C# 中建立 OCR 收據掃描器:圖 3 - 上一個程式碼範例的輸出文字

之後,您可以使用掃描收據後取得的非結構化資料。我們可以從收據的特定部分提取重要資訊。 或者我們可以用更有條理的方式展示收據數據。 我們可以使用 IronOCR 製作 OCR 收據掃描軟體應用程式。 這將有助於我們提取收據欄位的準確資料。

結論

恭喜您! 您已成功使用 C# 和 IronOCR 建造了一個 OCR 收據掃描器。 此掃描器可顯著提高各種業務需求的資料擷取準確性,例如費用追蹤、供應鏈管理等。 以後無需再審核掃描的收據並手動擷取資料。

IronOCR 提供免費試用,使用者可以免費體驗和評估其各項功能。對於希望在專業環境中整合和利用其全部功能的用戶,我們提供起價為$799許可證,為強大的 OCR 收據掃描和資料提取需求提供全面的解決方案。

記住,這只是個開始。 您可以擴展此應用程式以支援各種文件類型,提高資料隱私,或整合其他功能,例如識別特定欄位(如稅額、日期、行項目等)的收據。 借助 OCR 技術,可能性是巨大的,它為更有效率、更智慧的業務流程鋪平了道路。 祝您編碼愉快!

常見問題解答

什麼是 OCR 收據掃描器?

OCR 收據掃描器是一種使用光學字元識別技術將收據影像轉換為可編輯和可搜尋資料的工具。這可透過自動化資料輸入工作,大幅提升業務流程,尤其是在支出管理等領域。

如何在 C# 中建立 OCR 收據掃描器?

若要在 C# 中建立 OCR Receipt Scanner,您可以使用 IronOCR 函式庫。首先在 Visual Studio 中建立一個 C# Console 專案,透過 NuGet 套件管理員安裝 IronOCR,並依照教學在收據檔案上實作 OCR 功能。

使用 C# 設定 OCR 收據掃描器的先決條件是什麼?

先決條件包括已安裝 Visual Studio、IronOCR 函式庫,以及可測試 OCR 過程的樣本收據影像檔案。

如何在我的 C# 專案中安裝 IronOCR 函式庫?

您可以使用 Visual Studio 中的 NuGet Package Manager 安裝 IronOCR 函式庫。搜尋 IronOCR,並將其加入您的專案,以存取其 OCR 功能。

IronTesseract 類如何在 OCR 中運作?

IronTesseract 類用於初始化 IronOCR 函式庫內的 OCR 引擎,讓您可以在收據的影像上執行文字辨識任務。

如何在 C# 中處理 OCR 過程中的錯誤?

OCR 過程中的錯誤可以使用 C# 程式碼中的 try-catch 區塊來處理。這將有助於管理異常,並確保應用程式即使在遇到問題時也能順利執行。

如何增強 OCR 收據掃描器的功能?

您可以透過支援各種檔案類型、改善資料隱私,或整合其他功能(例如針對收據的特定欄位辨識)來擴充應用程式,以提高資料擷取的精確度。

在 C# 應用程式中整合 OCR 技術的最佳做法是什麼?

最佳實務包括使用 IronOCR 之類的可靠函式庫、使用 try-catch 區塊處理錯誤,以及針對多種收據格式優化掃描器,以確保資料擷取準確無誤。

如何使用 C# 將收據影像轉換為文字?

您可以使用 C# 中的 IronOCR 函式庫將收據影像轉換為文字。利用 OcrInput 類指定影像,然後用 IronTesseract 類處理影像以擷取文字。

IronOCR 有哪些授權選項?

IronOCR 提供免費的試用版供探索使用,並提供價格合理的專業 License 選項供在專業環境中延長使用,使其可適用於需要 OCR 技術的各種應用程式。

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