在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
本教程將展示如何使用第三方庫創建條碼掃描器。 有多個庫可用於此目的,但有些是付費的,有些提供的功能較少,有些則難以實施。 要找到一個免費、高效且易於實施的全面實用的庫是一項具有挑戰性的任務。
出於這個原因,我們將使用IronBarcode,因為它是開發 .NET 條碼掃描器的最佳選擇。 此外,它還具有開發免費、高效且易於實施的附加優勢。 IronBarcode 允許開發人員在 .NET 應用程式和網站中讀取和寫入條碼和 QR 碼。 使用此程式庫讀取或寫入條碼只需一行代碼。
.NET 條碼庫讀取和寫入大多數條碼和 QR 碼標準。 支持的條碼類型包括 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 專案以開發示範應用程式。您也可以打開一個現有的專案。
按照以下步驟創建一個新的控制台應用程式專案以專注於核心功能。 相同的程式碼可以在 Web API、MVC、Web Forms 或 Windows Forms 應用程式中實現。
打開 Visual Studio
點擊建立新專案
選擇範本,然後點擊下一步按鈕
命名專案,然後點擊下一步按鈕
選擇目標框架,然後點擊 下一步 按鈕
點擊建立按鈕,點擊下一步按鈕
將會創建一個新專案,如下所示:
控制台應用程式
下一步是安裝IronBarcode NuGet 套件使用其功能。
您可以使用套件管理器控制台、NuGet 套件管理方案或直接從中安裝該庫。NuGet BarCode 套件頁面.
請按照以下步驟進行:
點擊 工具 > NuGet 套件管理器 > 套件管理控制台。
套件管理器控制台介面
Install-Package BarCode
套件將被安裝。
現在讓我們寫一段用於掃描條碼圖像的程式碼。
添加以下命名空间
using IronBarCode;
using IronBarCode;
Imports IronBarCode
接下來在主函式內撰寫以下程式碼以從影像中讀取條碼資料。
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")
Console.WriteLine(myBarcode)
這BarcodeReader
類別提供一個讀取
將檔案路徑作為參數的函數。 此函數讀取圖像並返回條碼數據。 此方法從 BMP、PNG 讀取條碼,GIF、TIFF,或 JPG,提供針對開發人員控制的細緻設定,以在性能與準確性之間取得平衡,從而滿足特定用例的需求。
該路徑包含應用程式將掃描的條碼圖像。
此控制台應用程式中使用的條碼圖像
讓我們讀取此條碼圖像,以查看此程式是否產生正確結果。
執行應用程式時的控制台輸出
可以看出,程式已產生準確的輸出。
在許多情況下,需要從 PDF 發票中掃描條碼。在此示例中,我們將從以下發票中掃描條碼。
PDF 格式的發票
請考慮下面的程式碼片段,以從 PDF 文件中掃描條碼:
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
Console.WriteLine(barcodeData.Value);
}
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
Console.WriteLine(barcodeData.Value);
}
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")
For Each barcodeData In myBarcode
Console.WriteLine(barcodeData.Value)
Next barcodeData
BarcodeReader
類別提供了ReadPdf
接受文件路徑作為參數的函數。 此功能會在 PDF 文件中尋找條碼圖像,掃描整個條碼,並以陣列的形式返回其數據。 此功能從文件中嵌入的每張圖像中讀取條碼。
使用 foreach
迴圈在控制台中列印條碼的數據。
發票號碼印在控制台上。
控制台輸出顯示發票號碼
此範例將演示如何同時從圖像文件中掃描多個條碼。
範例中使用的條碼圖像
考慮以下程式碼片段,這些片段使用多執行緒讀取多個條碼並掃描它們的結果。
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults = BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
string barcodeValue = result.Text;
}
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults = BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
string barcodeValue = result.Text;
}
Dim barcodeList As New List(Of String)()
barcodeList.Add("D:\Barcode Images\barcode1.jpg")
barcodeList.Add("D:\Barcode Images\barcode2.jpg")
barcodeList.Add("D:\Barcode Images\barcode3.jpg")
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)
' Work with the results
For Each result In batchResults
Dim barcodeValue As String = result.Text
Next result
首先,建立一個清單來保存所有條碼圖像的文件路徑。 接下來,該ReadAsync
函數被調用,它接受一個List<string>將
type` 作為參數並返回數據。 此方法並行讀取多個圖像中的條碼。 多個執行緒將啟動並自動管理,以提升批量條碼讀取任務的效能。
QR碼的使用正在迅速增加。 因此,本節將展示如何使用C#掃描QR碼。
此演示中使用的 QR Code
請考慮以下代碼範例:
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
Console.WriteLine(result.Text);
}
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
Console.WriteLine(result.Text);
}
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")
For Each result In qrCodeResult
Console.WriteLine(result.Text)
Next result
與上述討論的相同 Read
函數用於讀取 QR Code。 這就是IronBarcode函式庫所提供的簡便性。 以便相同的功能和代碼可用於不同的圖像來源。
QR 代碼讀取器的控制台輸出
本教程演示了一種非常簡單的方法,從單張圖片中掃描條碼、從PDF文件中掃描條碼,以及並行掃描多張圖片和多個文件中的條碼。 我們已經使用相同的函數實現不同的功能。 它同時提供了性能和可用性。IronBarcode 提供生成條碼和 QR 碼的功能,具有不同的配置. 有許多功能無法在同一篇文章中討論。 請點擊文檔頁面進一步探索IronBarcode。
IronBarcode 是 Iron Software Suite 的一部分。這個套件包含其他非常有用的函式庫,例如 IronPDF 用於讀取和寫入 PDF 文件,IronXL 用於操作 Excel 文件,IronOCR 用於從圖像中讀取文本,IronWebScraper 用於從不同網站提取數據。 您可以購買完整的Iron Suite僅需兩個單獨程式庫的價格。