跳至頁尾內容
使用 IRONBARCODE

C# 條碼掃描器逐步教學

本教學將示範如何使用第三方函式庫建立條碼掃描器。 有多種庫可用於此目的,但有些是付費的,有些功能較少,有些難以實現。 找到一個既全面又實用,而且免費、高效、易於實現的庫是一項具有挑戰性的任務。

因此,我們將使用IronBarcode ,因為它最適合開發 .NET 條碼掃描器。 它還具有開發免費、效率高、易於實施等額外優點。 IronBarcode 讓開發人員可以在 .NET 應用程式和網站中讀取和寫入條碼和二維碼。 使用此庫,讀取或寫入條碼只需要一行程式碼。

.NET 條碼庫可以讀取和寫入大多數條碼和二維碼標準。 支援的條碼類型包括 Code 39/93/128、UPC A/E、EAN 8/13、ITF、RSS 14 / Expanded、Databar、Codabar、Aztec、Data Matrix、MaxiCode、PDF417、MSI、Plessey、USPS 和 QR。 條碼結果資料包括類型、文字、二進位資料、頁面和圖像檔案。

條碼寫入 API 會檢查並驗證格式、長度、數量和校驗和,以自動避免編碼錯誤。 條碼寫入器允許設定樣式、調整大小、邊距、邊框、重新著色和新增文字註解。 條碼寫入器可以寫入包括 BMP、PNG、GIF、TIFF 和 JPG 在內的映像檔。 它也可以寫入PDF或HTML檔案

讓我們創建自己的條碼掃描器,以便更好地理解它。

建立一個 Visual Studio 項目

首先,建立一個用於開發示範應用程式的 Visual Studio 專案。您也可以開啟一個現有的項目。

請按照以下步驟建立一個新的控制台應用程式項目,重點關注核心功能。 相同的程式碼可以在 Web API、MVC、Web Forms 或 Windows Forms 應用程式中實作。

  1. 開啟 Visual Studio
  2. 點選"建立新項目"
  3. 選擇模板,點選"下一步"按鈕
  4. 為項目命名,然後點選"下一步"按鈕
  5. 選擇目標框架,然後按一下"下一步"按鈕
  6. 點選"建立"按鈕,然後點選"下一步"按鈕

將建立一個新項目,如下所示:

C# 條碼掃描器逐步教程,圖 1:控制台應用程式 控制台應用程式

下一步是安裝IronBarcode NuGet 套件以使用其功能。

安裝 IronBarcode 的 NuGet 套件

您可以使用套件管理器控制台、NuGet 套件管理器解決方案安裝該庫,或直接從NuGet BarCode 套件頁面安裝。

請遵循以下步驟:

  1. 點選"工具" > "NuGet 套件管理員" > "套件管理員控制台"

    C# 條碼掃描器逐步教程,圖 2:套件管理器控制台 UI 軟體包管理器控制台使用者介面

  2. 寫出以下指令
Install-Package BarCode

該軟體包將被安裝。

現在我們來編寫掃描條碼圖像的程式碼。

從影像檔案掃描條碼

新增以下命名空間

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

接下來,在主函數中編寫以下程式碼,以從圖像中讀取條碼資料。

// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
$vbLabelText   $csharpLabel

BarcodeReader類別提供了一個Read函數,該函數接受檔案路徑作為參數。 此函數讀取圖像並傳回條碼資料。 此方法可從 BMP、PNG、 GIF、TIFF或 JPG 中讀取條碼,並提供精細的設定供開發人員控制,以便在給定用例中平衡效能和準確性。

該路徑包含以下條碼圖像,應用程式將掃描該圖像。

條碼影像

C# 條碼掃描器逐步教程,圖 3:此控制台應用程式中使用的條碼圖像 此控制台應用程式中使用的條碼圖像

讓我們讀取這個條碼圖像,看看這個程式是否能產生正確的結果。

輸出

C# 條碼掃描器逐步教程,圖 4:應用程式運行時的控制台輸出 應用程式運行時的控制台輸出

可以看出,該程式產生了準確的輸出結果。

掃描 PDF 檔案中的條碼

很多情況都需要掃描PDF發票上的條碼。在這個例子中,我們將掃描以下發票上的條碼。

PDF文檔

C# 條碼掃描器逐步教程,圖 5:PDF 格式的發票 PDF格式的發票

以下程式碼片段可用於掃描 PDF 文件中的條碼:

// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
$vbLabelText   $csharpLabel

BarcodeReader類別提供了ReadPdf函數,該函數接受檔案路徑作為參數。 此函數在 PDF 檔案中尋找條碼影像,掃描整個條碼,並以陣列的形式傳回其資料。 此函數讀取文件中嵌入的每張圖片的條碼。

使用foreach循環將條碼資料列印到控制台。

輸出

發票號碼列印在主機上。

C# 條碼掃描器逐步教程,圖 6:控制台輸出顯示發票號碼 控制台輸出顯示發票號碼

掃描多個檔案中的條碼

本範例將示範如何同時掃描影像檔案中的多個條碼。

條碼影像

C# 條碼掃描器逐步教程,圖 7:以下範例中使用的條碼影像 以下範例中使用的條碼圖像

請考慮以下程式碼片段,它們使用多執行緒讀取多個條碼並掃描結果。

// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
$vbLabelText   $csharpLabel

首先,建立一個清單來保存所有條碼影像的檔案路徑。 接下來,呼叫ReadAsync函數,該函數接受一個List<string>將類型作為參數傳遞,並傳回資料。 此方法可以並行讀取多張影像中的條碼。 將啟動多個執行緒並自動管理,以提高批次條碼讀取任務的效能。

掃描二維碼

二維碼的使用正在迅速增長。 因此,本節將展示如何使用 C# 掃描二維碼。

QR 圖碼

C# 條碼掃描器逐步教程,圖 8:本示範中使用的二維碼 本示範中使用的二維碼

請參考以下程式碼範例:

// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
$vbLabelText   $csharpLabel

讀取二維碼時,可以使用與上面討論的相同的Read功能。 這就是 IronBarcode 庫的優勢所在,它允許使用相同的函數和程式碼處理不同的圖像來源。

輸出

C# 條碼掃描器逐步教程,圖 9:二維碼閱讀器控制台輸出 控制台退出二維碼閱讀器

摘要

本教學課程示範了一種非常簡單的方法,可以從單一影像中掃描條碼,從 PDF 文件中掃描條碼,以及並行從多個影像和多個文件中掃描條碼。 我們使用同一函數實現了不同的功能,同時也兼顧了效能和易用性。 IronBarcode 提供了產生具有不同配置的條碼和二維碼的功能。 有很多功能無法在同一篇文章中一一討論。 請點擊文檔頁面,進一步了解 IronBarcode。

IronBarcode是Iron軟體套件的一部分。該套件包含其他非常有用的庫,例如用於讀取和寫入PDF文件的IronPDF、用於處理Excel文件的IronXL、用於從圖像中讀取文字的IronOCR以及用於從不同網站提取資料的IronWebScraper。 您可以用購買兩個獨立音色庫的價格,購買完整的Iron Suite 音色庫

常見問題解答

如何在C#中建立一個條碼掃描器?

若要在 C# 中建立條碼掃描器,可以使用 IronBarcode。首先建立一個 Visual Studio 項目,安裝 IronBarcode NuGet 套件,然後使用BarcodeReader類別從圖像或 PDF 檔案讀取條碼。

使用 .NET 條碼庫可以讀取哪些類型的條碼?

IronBarcode 可以讀取多種條碼類型,包括 Code 39/93/128、UPC A/E、EAN 8/13、ITF、RSS 14 / Expanded、Databar、Codabar、Aztec、Data Matrix、MaxiCode、PDF417、MSI、Plessey、USPS 和 QR 碼。

我可以用 C# 讀取 PDF 檔案中的條碼嗎?

是的,IronBarcode 允許您使用ReadPdf方法從 PDF 文件中讀取條碼,該方法會掃描整個 PDF 文件以查找條碼圖像並返回其資料。

是否可以用 C# 掃描來自不同影像檔案的多個條碼?

是的,您可以使用 IronBarcode 中的ReadAsync函數同時掃描不同影像檔案中的多個條碼,利用非同步處理來提高效能。

如何安裝用於條碼功能的.NET函式庫?

若要安裝 IronBarcode,請使用 Visual Studio 中的套件管理器控制台,並執行命令Install-Package Barcode ,該命令將從 NuGet 套件來源新增程式庫。

二維碼可以用和條碼相同的方法掃描嗎?

是的,您可以使用 IronBarcode 中的相同Read功能掃描二維碼,從而實現對各種影像來源的條碼和二維碼的一致處理。

使用 IronBarcode 進行條碼掃描有哪些優點?

IronBarcode 是一款用戶友好、高效且適應性強的工具。它支援多種條碼類型,並提供用於讀取和寫入條碼和二維碼的簡單易用的 API,使其成為 .NET 應用程式的理想選擇。

Iron 軟體套件包含哪些函式庫?

Iron 軟體套件包含 IronPDF(用於 PDF 處理)、IronXL(用於 Excel 檔案處理)、IronOCR(用於光學字元辨識)和 IronWebScraper(用於網路資料擷取)等程式庫。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。