在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
本教程将演示如何在第三方库的协助下创建一个条形码扫描器。 有多个库可用于此目的,但有些库是付费的,有些库提供的功能较少,有些库难以实现。 要找到一个免费、高效、易于实现的非常全面和有用的库是一项具有挑战性的任务。
因此,我们将使用IronBarcode,因为它最适合开发.NET条形码扫描器。 此外,它还具有免费开发、高效和易于实施的额外优势。 IronBarcode 允许开发人员在 .NET 应用程序和网站中读写条形码和二维码。 使用该库读取或写入 BarCode 只需一行代码。
.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。 BarCode 结果数据包括类型、文本、二进制数据、页面和图像文件。
BarCode 写入 API 会检查和验证格式、长度、编号和校验和,自动避免编码错误。 条形码编写器允许进行样式设置、调整大小、边距、边框、重新着色和添加文本注释。 条码书写器可以写入图像文件,包括 BMP、PNG、GIF、TIFF 和 JPG。 它还可以写入 PDF 或 HTML 文件。
让我们创建我们的 BarCode 扫描仪,以便更好地理解它。
首先,创建一个用于开发演示应用程序的 Visual Studio 项目。您也可以打开一个现有的项目。
请按照以下步骤创建一个新的控制台应用程序项目,重点关注核心功能。 同样的代码可以在 Web API、MVC、Web 窗体或 Windows 窗体应用程序中实现。
打开 Visual Studio
单击创建新项目
选择模板,点击下一步按钮
命名项目,点击下一步按钮
选择目标框架,点击下一步按钮
点击创建按钮,点击下一步按钮
将创建一个新项目,如下所示:
控制台应用程序
下一步是安装 IronBarcode NuGet 包 以使用其功能。
您可以使用包管理器控制台、NuGet 包管理器解决方案,或直接从NuGet BarCode 包页面安装该库。
按照以下步骤进行:
点击 工具 > NuGet 包管理器 > 包管理器控制台。
包管理器控制台用户界面
Install-Package BarCode
该软件包将被安装。
现在让我们编写一段扫描 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
类提供了一个 Read
函数,该函数接受文件路径作为参数。 该函数读取图像并返回 BarCode 数据。 此方法从 BMP、PNG、GIF、TIFF 或 JPG 中读取条形码,提供针对开发者的细粒度设置,以便为其特定用例在性能和准确性之间找到平衡。
路径中包含应用程序将扫描的以下 BarCode 图像。
此控制台应用程序中使用的条形码图像
让我们来阅读这张 BarCode 图像,看看这个程序是否能产生正确的结果。
运行应用程序时的控制台输出
可以看出,该程序已经生成了准确的输出结果。
在很多情况下,都需要扫描 PDF 发票上的 BarCode。在本例中,我们将扫描以下发票中的条形码。
PDF格式的发票
请看下面的代码片段,用于扫描 PDF 文档中的 BarCode:
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 文件中查找条形码图像,扫描整个条形码,并以数组形式返回其数据。 该功能可从文档中嵌入的每个图像中读取 BarCode。
使用foreach
循环在控制台中打印条形码的数据。
发票号码印在控制台上。
控制台输出显示发票号码
本例将演示如何同时扫描图像文件中的多个 BarCode。
以下示例中使用的条形码图像
请看以下代码片段,它们使用多线程读取多个 BarCode 并扫描其结果。
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
首先,创建一个列表来保存所有 BarCode 图像的文件路径。 接下来,调用 ReadAsync
函数,该函数接受 List<string>
类型作为参数并返回数据。 这种方法可以从多个图像中并行读取 BarCode。 多个线程将启动并自动管理,以提高批量条形码读取任务的性能。
二维码的使用量正在迅速增加。 因此,本节将介绍如何使用 C# 扫描二维码。
本演示中使用的二维码
请看以下代码示例:
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
函数用于读取二维码。 这就是 IronBarcode 库所提供的简洁性。 使相同的功能和代码可用于不同的图像源。
QR 码读取器的控制台输出
本教程演示了一种非常简单的方法,可以从单个图像中扫描条形码、从 PDF 文档中扫描条形码,以及并行扫描多个图像和多个文档中的条形码。 我们对不同的功能使用了相同的函数。 它同时提供性能和可用性。IronBarcode 提供生成条形码和二维码的功能,并具有不同的配置。 有许多功能无法在同一篇文章中讨论。 请点击文档页面以进一步探索IronBarcode。
IronBarcode 是 Iron Software Suite 的一部分。该套件包含其他非常有用的库,如用于读写 PDF 文件的 IronPDF、用于操作 Excel 文件的 IronXL、用于从图像中读取文本的 IronOCR 以及用于从不同网站中提取数据的 IronWebScraper。 您可以购买完整的 Iron Suite,价格相当于两个单个库。