跳至頁尾內容
USING IRONOCR

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

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

如何使用 OCR 解決方案處理發票

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

什麼是發票處理?

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

IronOCR

光學字元識別 (OCR) 為使用 C# 編程語言的開發者提供了由IronOCR支援的 .NET 程式庫。 由 Iron Software 建立的 IronOCR 是應用程式需要自動文字識別時的有用工具,讓使用者能從圖片、掃描的文件和 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

using 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 掃描收據上的條碼,請使用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作為 C# 開發者的優秀且適應性強的光學字元識別 (OCR) 程式庫,表現出色。 Iron Software 提供的這個綜合方案簡化了從圖片、掃描的文件和 PDF 文件中提取文字的過程。

最後,IronOCR 是一個值得注意的 OCR 解決方案,提供了卓越的整合、靈活性和準確性。 IronOCR 由於其先進的算法和能識別多種文件格式的能力,在準確性上無與倫比,使其成為可用的最佳 OCR 解決方案之一。 它提供了文件良好的程式碼範例,允許初學者快速且輕鬆地學習。

IronOCR 的經濟實惠開發版本是可存取的,購買 IronOCR 套件即增提供永久授權。 IronOCR 套件起價為\$liteLicense,以單一成本為多個系統提供了卓越的價值。 它提供 24/7 在線工程師支援給擁有授權的使用者。 有關費用的更多詳情,請造訪 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的文件以獲得最佳配置和使用實踐。

條碼閱讀如何增強發票處理?

利用IronOCR進行條碼閱讀能增強發票處理,因為它允許提取文字和條碼資料,促進從發票的全面資料處理。

推薦使用哪種編程環境來使用IronOCR?

.NET環境中特別推薦使用IronOCR,尤其是使用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。

Iron 支援團隊

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