跳至頁尾內容
USING IRONOCR

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

本教程旨在幫助初學者使用OCR收據掃描儀,透過C#中的OCR APIIronOCR建立一個應用。 在本指南結束時,您將了解如何透過收據OCR API將不同型別的收據文件轉換成可編輯和可搜尋的資料。 該技術可以成為企業自動化費用管理和減少手動資料輸入的遊戲規則改變者。 讓我們開始吧!

How To Create an OCR Receipt Scanner In C

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

先決條件

在我們開始程式設計部分之前,請確保您擁有以下內容:

  1. Visual Studio:這將是我們的整合開發環境(IDE),我們將在此撰寫和運行我們的C#程式碼。
  2. IronOCR程式庫:我們將使用IronOCR,一個可以輕鬆整合到C#應用中的高級OCR程式庫。
  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

  1. 點擊安裝按鈕。 此操作可能會提示您查看變更,並可能顯示一個列出將隨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

步驟4:讀取收據

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

定義收據路徑:指定您要掃描的收據文件的路徑。

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

Try-Catch Block:使用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

步驟5:實施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用於指定我們想要處理的文件。 OcrInput所用的資源(如文件句柄)在處理完成後正確釋放。 這是一種有效管理資源的方法,確保你的應用程式正常運行而不會造成不必要的記憶體使用。

執行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.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提供免費試用,讓使用者可以無需初期成本就能探索和評估其能力。對於那些希望在專業環境中整合和利用其全部功能的人,授權從$999開始,提供強大的OCR收據掃描和資料提取需求的全面解決方案。

請記住,這只是一個開始。 您可以擴展此應用程式以支援各種文件型別、提高資料隱私或整合額外的功能,例如特定字段的收據識別,如稅額、日期、項目行等。 利用OCR技術,可能性是無限的,為更高效和智慧的業務流程鋪平了道路。 祝開發愉快!

常見問題

什麼是OCR收據掃描器,它如何能夠為企業帶來效益?

OCR收據掃描器是一種使用光學字元識別技術將收據圖像轉換為可編輯和可搜尋資料的工具。這可以通過自動化資料輸入任務顯著提高業務流程,尤其是在費用管理等領域。

我如何能夠在C#中建立一個OCR收據掃描器?

要在C#中建立OCR收據掃描器,您可以使用IronOCR程式庫。首先在Visual Studio中設置一個C#控制台專案,通過NuGet套件管理器安裝IronOCR,並按照教程實現收據文件的OCR功能。

在C#中設置OCR收據掃描器的先決條件是什麼?

先決條件包括安裝Visual Studio、IronOCR程式庫和測試OCR過程的樣本收據圖像文件。

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

您可以使用Visual Studio中的NuGet套件管理器安裝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提供免費試用以供探索,並提供實惠的授權選項,供在專業環境中延長使用,使其適用於各種需要OCR技術的應用程式。

Kannaopat Udonpant
軟體工程師
在成為軟體工程師之前,Kannapat在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat還成為車輛機器人實驗室的一員,該實驗室隸屬於生產工程系。在2022年,他憑藉C#技能加入了Iron Software的工程團隊,專注於IronPDF。Kannapat珍視他的工作,因為他能直接向撰寫大部分IronPDF程式碼的開發者學習。除了同儕學習,Kannapat還喜歡在Iron Software工作的社交方面。不寫程式碼或文件時,Kannapat通常在他的PS5上玩遊戲或重看The Last of Us。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話