跳過到頁腳內容
使用 IRONOCR

如何創建發票的 OCR 解決方案

光學字元辨識( OCR )是一種使電腦能夠識別和提取影像或掃描文件中的文字的技術。 OCR軟體的主要目標是將包含文字的照片轉換為機器可讀的文字資料。 這項技術可以惠及眾多行業,並簡化資料輸入、文件數位化和自動化流程,例如應付帳款流程。 在本文中,我們將探討使用 OCR 解決方案處理發票,以及它如何使人工發票處理過時。

如何使用OCR解決方案識別發票

  1. 安裝IronOCR C# 庫。
  2. 在 Visual Studio 中建立一個新的 C# 專案。
  3. 探索功能豐富的 C# 函式庫,對收據執行 OCR 操作。
  4. 使用 Tesseract 從收據中提取資料。
  5. 在擷取的文字結果中搜尋特定資料。
  6. 檢查所提供的收據影像上的條碼值。

什麼是發票處理?

企業可以利用 OCR 發票處理技術,將基於圖像或掃描的帳單轉換為機器可讀文本,該技術可自動從發票中提取文字和資料。 這種自動化提高了財務流程的效率,減少了手動資料輸入,並簡化了發票處理方式。

IronOCR。

IronOCR (一個 .NET 函式庫)為使用 C# 程式語言的開發人員啟用了光學字元辨識 (OCR) 功能。 IronOCR 由 Iron Software 開發,是一款適用於需要自動文字辨識的應用程式的實用工具,可讓使用者從圖像、掃描文件和 PDF 檔案中提取文字。 要從發票中提取文字和數據,您需要將 IronOCR 庫整合到您的 .NET 應用程式中,以實現發票的自動化處理。

IronOCR 透過人工智慧演算法幫助避免欺詐,快速識別錯誤、欺詐和重複發票。 它透過卓越的 OCR 發票資料擷取技術減少錯誤,從而避免人工資料輸入造成的錯誤。 點擊這裡了解更多關於IronOCR的資訊。

IronOCR的主要特點是:

-文字擷取:從影像、掃描文件和 PDF 中提取文字內容。 它使用複雜的 OCR 演算法來識別所提供文件中的單字、字元和佈局。 -供應商資訊:使用 IronOCR 從發票圖像中提取文字訊息,包括供應商詳細資訊、行項目、發票號碼、日期以及任何其他相關數據。 -條碼讀取:IronOCR 除了 OCR 功能外,還具備從圖像中讀取條碼的功能,這增強了其對需要處理文字和條碼資料的應用程式的適應性。 -影像預處理:支援去斜、降噪和對比度校正。 這些技術可以增強輸入影像,並有助於提高 OCR 的準確率。 -基於區域的 OCR 技術:允許開發人員定義要專注於提取文字的特定影像區域。 這在處理結構化佈局的文件時非常有用。

值得注意的是,該解決方案的成功取決於 OCR 設定的準確性、發票的複雜性和輸入影像的品質。 此外,使用 IronOCR 的 API 並了解庫的具體功能可能是整合過程中的重要步驟。 請務必查閱 IronOCR 官方文檔,以獲取最新詳情和建議。

在 Visual Studio 中建立新專案

啟動 Visual Studio 並導航至"檔案"選單。 選擇"新建專案",然後選擇"控制台應用程式"。在這裡,我們將建立一個用於OCR工作的控制台程式。

如何建立發票 OCR 解決方案:圖 1 - 透過 Visual Studio 建立新項目

請在文字方塊中輸入項目名稱並指定檔案位置。 按一下"建立"按鈕,然後選擇所需的 .NET Framework。

如何建立發票 OCR 解決方案:圖 2 - 設定專案訊息

應用程式選定後,Visual Studio 專案將建立其結構。 如果您選擇了控制台、Windows 或 Web 版本,它將開啟Program.cs文件,讓您可以新增程式碼並建置/執行應用程式。

之後我們可以加入庫來測試程式碼。

安裝 IronOCR

使用 Visual Studio 的 NuGet 套件管理器工具,直接將套件安裝到您的解決方案中。 請參考下面的截圖查看 NuGet 套件管理器。

如何建立發票 OCR 解決方案:圖 3 - 如何透過 Visual Studio 存取 NuGet 套件管理器

它提供了一個搜尋框,用於列出 NuGet 網站上的套件。如下圖所示,在套件管理器中搜尋"IronOCR":

如何建立發票 OCR 解決方案:圖 4 - 透過 NuGet 套件管理器安裝 IronOCR

上圖應列出相關的搜尋字詞。 我們需要進行必要的選擇才能安裝解決方案套件。

使用IronOCR從發票中提取數據

IronOCR 是一個功能強大的 OCR 庫,可用於提取和讀取發票資料。 使用 IronOCR,您可以將收據圖像轉換為易於處理和分析的機器可讀文本,而不會洩露資料隱私。 發票OCR技術使我們能夠將發票資料提取為數位格式。

以下是 IronOCR 如何處理供應商發票並從紙本發票中提取文字的範例。

using System;
using IronOcr;

class InvoiceProcessor
{
    static void Main()
    {
        // Create a new instance of IronTesseract
        var Ocr = new IronTesseract();

        // Set language and Tesseract version
        Ocr.Language = OcrLanguage.EnglishBest;
        Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

        // Using OcrInput to add images and read text
        using (var Input = new OcrInput())
        {
            // Add the invoice image
            Input.AddImage(@"invoice.png");

            // Read the text from the image
            var Result = Ocr.Read(Input);

            // Output the extracted text
            Console.WriteLine(Result.Text);
            Console.ReadKey();
        }
    }
}
using System;
using IronOcr;

class InvoiceProcessor
{
    static void Main()
    {
        // Create a new instance of IronTesseract
        var Ocr = new IronTesseract();

        // Set language and Tesseract version
        Ocr.Language = OcrLanguage.EnglishBest;
        Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

        // Using OcrInput to add images and read text
        using (var Input = new OcrInput())
        {
            // Add the invoice image
            Input.AddImage(@"invoice.png");

            // Read the text from the image
            var Result = Ocr.Read(Input);

            // Output the extracted text
            Console.WriteLine(Result.Text);
            Console.ReadKey();
        }
    }
}
Imports System
Imports IronOcr

Friend Class InvoiceProcessor
	Shared Sub Main()
		' Create a new instance of IronTesseract
		Dim Ocr = New IronTesseract()

		' Set language and Tesseract version
		Ocr.Language = OcrLanguage.EnglishBest
		Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

		' Using OcrInput to add images and read text
		Using Input = New OcrInput()
			' Add the invoice image
			Input.AddImage("invoice.png")

			' Read the text from the image
			Dim Result = Ocr.Read(Input)

			' Output the extracted text
			Console.WriteLine(Result.Text)
			Console.ReadKey()
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

以下是上述程式碼的運行結果:

如何建立發票 OCR 解決方案:圖 5 - 前一個代碼的輸出文字

此範例示範了 IronOCR 如何提取資料並在控制台中顯示資料。

讀取發票上的條碼

除了文字,IronOCR 還可以掃描收據上的條碼。 若要使用 IronOCR 掃描收據上的條碼,請將ReadBarCodes功能與BarcodeReader類別一起使用。

以下是如何使用 IronOCR 解碼收據影像以讀取條碼的方法。

using System;
using IronOcr;

class BarcodeReaderExample
{
    static void Main()
    {
        // Initialize IronTesseract
        var ocrTesseract = new IronTesseract();

        // Enable barcode reading
        ocrTesseract.Configuration.ReadBarCodes = true;

        // Use OcrInput to add image and process barcodes
        using (var ocrInput = new OcrInput("invoice.png"))
        {
            var ocrResult = ocrTesseract.Read(ocrInput);

            // Iterate over and output each detected barcode
            foreach (var barcode in ocrResult.Barcodes)
            {
                Console.WriteLine(barcode.Value);
            }
        }
    }
}
using System;
using IronOcr;

class BarcodeReaderExample
{
    static void Main()
    {
        // Initialize IronTesseract
        var ocrTesseract = new IronTesseract();

        // Enable barcode reading
        ocrTesseract.Configuration.ReadBarCodes = true;

        // Use OcrInput to add image and process barcodes
        using (var ocrInput = new OcrInput("invoice.png"))
        {
            var ocrResult = ocrTesseract.Read(ocrInput);

            // Iterate over and output each detected barcode
            foreach (var barcode in ocrResult.Barcodes)
            {
                Console.WriteLine(barcode.Value);
            }
        }
    }
}
Imports System
Imports IronOcr

Friend Class BarcodeReaderExample
	Shared Sub Main()
		' Initialize IronTesseract
		Dim ocrTesseract = New IronTesseract()

		' Enable barcode reading
		ocrTesseract.Configuration.ReadBarCodes = True

		' Use OcrInput to add image and process barcodes
		Using ocrInput As New OcrInput("invoice.png")
			Dim ocrResult = ocrTesseract.Read(ocrInput)

			' Iterate over and output each detected barcode
			For Each barcode In ocrResult.Barcodes
				Console.WriteLine(barcode.Value)
			Next barcode
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

如何為發票建立 OCR 解決方案:圖 6 - 輸入的條碼

雖然 IronOCR 提供了強大的 OCR 功能,但必須記住,完整的發票處理工作流程可能涉及資料驗證、業務邏輯和財務系統連接等其他元件。 根據您的使用情況,您可能需要將 IronOCR 與其他工具結合使用,以實現完整的發票處理解決方案。

結果:

如何建立發票 OCR 解決方案:圖 7 - 使用上述程式碼讀取範例條碼的結果

要了解有關 IronOCR 線上演示的更多信息,請點擊此處

結論

總之, IronOCR是一款功能強大且適應性強的光學字元辨識 (OCR) 庫,適用於 C# 開發人員。 Iron Software 推出的這款綜合性產品簡化了從圖像、掃描文件和 PDF 文件中提取文字的過程。

最後,IronOCR 是一款值得關注的 OCR 解決方案,它提供了出色的整合性、靈活性和準確性。 IronOCR憑藉其先進的演算法和識別各種文件格式的能力,在準確性方面無與倫比,使其成為目前最好的OCR解決方案之一。 它提供了文檔齊全的程式碼範例,使初學者能夠快速輕鬆地學習。

IronOCR 的經濟實惠的開發版易於獲取,購買 IronOCR 軟體包即可獲得終身許可證。 IronOCR 套餐起價僅為\$liteLicense ,以單一價格即可用於多個系統,極具性價比。 它為授權用戶提供全天候線上工程師支援。 有關費用的更多詳情,請訪問 IronOCR網站

常見問題解答

如何使用 OCR 技術自動處理發票?

您可以使用 IronOCR 從掃描的發票中擷取文字和資料,以自動化方式處理發票。這種自動化可減少手動資料輸入,並提高財務作業的效率。

設定 IronOCR 用於處理發票需要哪些步驟?

若要設定 IronOCR 以進行發票處理,您需要在 Visual Studio 中建立 C# 專案,使用 NuGet 套件管理員安裝 IronOCR 函式庫,並利用 Tesseract 引擎進行資料擷取。

IronOCR 如何透過影像預處理提高 OCR 精確度?

IronOCR 可透過影像預處理功能提高 OCR 準確度,例如抗色偏、降噪和對比校正,進而提升輸入影像的品質。

什麼是基於區域的 OCR 技術,它對發票處理有什麼好處?

IronOCR 中基於區域的 OCR 技術允許開發人員定義圖像上的特定區域,以進行有針對性的文字擷取,使其能有效處理發票等結構化文件版面。

我可以使用 IronOCR 從發票中提取供應商資訊嗎?

是的,IronOCR 能夠利用其先進的文字擷取功能和 OCR 設定調整,從發票中擷取廠商的資訊。

為什麼影像品質對成功執行 OCR 非常重要?

圖像品質會嚴重影響 OCR 準確性。使用 IronOcr 的高品質影像可確保更好的文字辨識,並減少資料擷取過程中的錯誤。

在發票處理中使用 IronOCR 有哪些常見的故障排除技巧?

常見的疑難排解技巧包括驗證 OCR 設定、確保輸入影像的高品質,以及參考 IronOCR 的說明文件,以瞭解配置和使用的最佳實務。

BarCode 讀取如何加強發票處理?

IronOCR 的條碼讀取功能可同時擷取文字和條碼資料,有助於從發票中進行全面的資料處理,從而增強發票處理能力。

建議在何種程式設計環境下使用 IronOCR?

IronOCR 建議在 .NET 環境中使用,特別是以 C# 作為程式語言,提供實作 OCR 功能的強大平台。

IronOCR 如何支援開發人員將 OCR 整合到應用程式中?

IronOCR 為開發人員提供詳盡的文件和程式碼範例支援,讓您輕鬆將 OCR 功能整合至應用程式中,並確保開發流程順利進行。

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