跳過到頁腳內容
使用 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
}
$vbLabelText   $csharpLabel

程式碼解釋

提供的程式碼示範如何在 C# 中使用IronOCR庫,透過 OCR(光學字元辨識)從圖像(例如發票)中提取文字。 以下是對程式碼各部分的解釋:

1.許可證密鑰設定:

  • 程式碼首先設定IronOCR的許可證密鑰。 要使用該庫的全部功能,需要此金鑰。 如果您擁有有效許可證,請將"您的許可證"替換為您的實際許可證密鑰。

2.指定輸入檔:

  • 變數 filePath 儲存包含發票的圖片的位置(在本例中為"sample1.jpg")。 這是將被處理以提取文字的文件。

3.建立 OCR 實例:

  • 建立了一個 IronTesseract 的實例。 IronTesseract 是負責對輸入資料執行 OCR 操作的類別。

4.載入圖片:

  • 程式碼建立了一個 OcrInput 對象,該物件使用 filePath 方法載入 LoadImage 指定的圖像。

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);
}
$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";
$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》。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me