使用 IronBarcode 的条码 .NET 组件教程
条形码.NET组件是一个托管代码库,只需几行代码即可在 C# 应用程序中生成和读取条形码。 IronBarcode支持所有主流条码——Code 128、QR、Data Matrix、EAN、UPC 等——并且可在 Windows、Linux 和 macOS 上运行,无需额外的运行时依赖项。
通过NuGet安装,即可在几分钟内开始生成条形码:
Install-Package BarCode
Install-Package BarCode
什么是条形码.NET组件?
条形码.NET组件是一个以NuGet包形式打包的软件库,它通过简洁的 API 提供条形码生成和读取功能。 与需要手动计算校验和以及复杂格式规则的条形码字体不同,专用组件会在内部处理所有编码逻辑。
IronBarcode库提供了两个主要入口点:
BarcodeWriter-- 从文本或数字数据创建条形码图像、PDF 和 HTMLBarcodeReader-- 扫描图像、PDF 和多帧 TIFF 文件以提取条形码值
这种双向设计意味着您既可以将条形码打印到标签上,也可以从同一个库中的文档中扫描条形码,这对于库存管理、文档跟踪、Crystal Reports 集成和数据自动化工作流程至关重要。
支持的符号体系包括:
-一维线性条码:Code 128、Code 39、Code 93、ITF-14、EAN-13、EAN-8、UPC-A、UPC-E -二维矩阵:QR码、Data Matrix码、PDF417码、Aztec码
- GS1 变体:GS1-128、GS1 DataBar
制造系统通常使用 Code 128 进行产品跟踪,因为它能有效地对字母数字数据进行编码。 医疗保健应用通常使用数据矩阵字体进行药品标签印刷,因为它在非常小的尺寸下也能很好地打印。 零售销售点系统在结账时扫描 EAN-13 和 UPC-A 条形码。 在集成条形码功能时,选择适合您使用场景的符号体系是您需要做出的首要决定之一。
如何在.NET项目中安装IronBarcode ?
使用 Visual Studio 中的NuGet包管理器或.NET CLI 安装IronBarcode只需不到两分钟。
程序包管理器控制台(Visual Studio):
Install-Package BarCode
Install-Package BarCode
.NET CLI :
dotnet add package BarCode
dotnet add package BarCode
如何在 C# 中集成条形码 .NET 组件:图 3 - 安装
安装软件包后,在任何使用条形码功能的文件顶部添加命名空间:
using IronBarCode;
using IronBarCode;
Imports IronBarCode
IronBarcode 的目标框架为.NET Framework 4.6.2 及更高版本、 .NET Core 3.1 及更高版本以及.NET 5 至.NET 10。它可在 Windows、Linux 和 macOS 上运行,因此相同的代码无需特定于平台的配置即可在云托管容器、本地服务器和开发人员工作站上运行。
对于ASP.NET Core应用程序,无需注册中间件。 您可以直接从控制器、后台服务或Razor Pages 调用 API。 Windows Forms 和 WPF 应用程序以相同的方式获得访问权限——添加命名空间并开始调用方法。
如何在 C# 中集成条形码 .NET 组件:图 4 - 生成具有跨平台支持的条形码
IronBarcode入门指南中提供了详细的安装步骤,包括离线NuGet源配置和代理设置。
如何在C#中生成条形码图像?
使用IronBarcode生成条形码需要三个步骤:选择编码、设置值和保存输出。 以下示例创建 Code 128 条形码,并将其保存为 PNG 图像和 PDF 文档:
using IronBarCode;
// Create a Code 128 barcode encoding a product identifier
var barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128);
// Set the output dimensions in pixels
barcode.ResizeTo(400, 100);
// Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode();
// Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png");
// Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf");
using IronBarCode;
// Create a Code 128 barcode encoding a product identifier
var barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128);
// Set the output dimensions in pixels
barcode.ResizeTo(400, 100);
// Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode();
// Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png");
// Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf");
Imports IronBarCode
' Create a Code 128 barcode encoding a product identifier
Dim barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128)
' Set the output dimensions in pixels
barcode.ResizeTo(400, 100)
' Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode()
' Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png")
' Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf")
ResizeTo() 方法可以精确设置像素尺寸,这在以特定 DPI 打印标签时非常重要。 AddBarcodeValueTextBelowBarcode() 调用会在条形图下方添加人类可读的文本,使仓库和零售环境中的人工验证更加容易。
条形码输出格式
如何在 C# 中集成条形码 .NET 组件:图 5 - PNG 输出
如何在 C# 中集成条形码 .NET 组件:图 6 - PDF 输出
IronBarcode可导出为 PNG、JPEG、GIF、TIFF、BMP、PDF、HTML 和 base64 字符串。 base64 格式特别适用于将条形码嵌入到 API 响应中,前端可以动态渲染这些响应,而无需将文件写入磁盘。
如何在C#中生成二维码?
对于二维码,IronBarcode 提供了 QRCodeWriter 类,该类内置了纠错级别和模块大小控制的支持:
using IronBarCode;
// Generate a QR code from a URL with 500px dimensions
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500);
// Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png");
using IronBarCode;
// Generate a QR code from a URL with 500px dimensions
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500);
// Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png");
Imports IronBarCode
' Generate a QR code from a URL with 500px dimensions
Dim qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500)
' Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png")
二维码可以编码网址、纯文本、vCard联系人数据、Wi-Fi凭证和任意字节序列。 条形码生成示例页面涵盖了其他编码场景,包括 Data Matrix 和 PDF417。
如何从图像中读取条形码?
从图像中读取条形码与写入条形码一样直接。 BarcodeReader.Read() 方法接受文件路径、Stream、Bitmap 或 IronSoftware.Drawing.AnyBitmap,并返回一个 BarcodeResults 集合:
using IronBarCode;
// Read all barcodes from a scanned document image
BarcodeResults results = BarcodeReader.Read("scanned-document.png");
// Iterate over every detected barcode
foreach (BarcodeResult result in results)
{
string value = result.Value;
BarcodeEncoding type = result.BarcodeType;
Console.WriteLine($"Detected {type}: {value}");
}
using IronBarCode;
// Read all barcodes from a scanned document image
BarcodeResults results = BarcodeReader.Read("scanned-document.png");
// Iterate over every detected barcode
foreach (BarcodeResult result in results)
{
string value = result.Value;
BarcodeEncoding type = result.BarcodeType;
Console.WriteLine($"Detected {type}: {value}");
}
Imports IronBarCode
' Read all barcodes from a scanned document image
Dim results As BarcodeResults = BarcodeReader.Read("scanned-document.png")
' Iterate over every detected barcode
For Each result As BarcodeResult In results
Dim value As String = result.Value
Dim type As BarcodeEncoding = result.BarcodeType
Console.WriteLine($"Detected {type}: {value}")
Next
阅读器会自动对图像进行预处理,以纠正常见的扫描问题:旋转、倾斜、噪声、低对比度和透视变形。 这意味着您可以直接传递原始扫描仪输出,而无需自行进行预处理。
从真实文档扫描
读取输出
如何配置条形码读取选项?
对于大批量或具有挑战性的扫描场景,BarcodeReaderOptions 可让您对读取算法进行精细控制:
using IronBarCode;
var options = new BarcodeReaderOptions
{
// Balance accuracy and processing time
Speed = ReadingSpeed.Balanced,
// Detect multiple barcodes in one pass
ExpectMultipleBarcodes = true,
// Limit the search to 1D formats for faster processing
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
};
// Read from a multi-page PDF warehouse inventory report
var results = BarcodeReader.Read("warehouse-inventory.pdf", options);
using IronBarCode;
var options = new BarcodeReaderOptions
{
// Balance accuracy and processing time
Speed = ReadingSpeed.Balanced,
// Detect multiple barcodes in one pass
ExpectMultipleBarcodes = true,
// Limit the search to 1D formats for faster processing
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
};
// Read from a multi-page PDF warehouse inventory report
var results = BarcodeReader.Read("warehouse-inventory.pdf", options);
Imports IronBarCode
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}
' Read from a multi-page PDF warehouse inventory report
Dim results = BarcodeReader.Read("warehouse-inventory.pdf", options)
将 ExpectBarcodeTypes 设置为与您实际期望的格式匹配可以提高吞吐量,因为读取器会跳过无法匹配的模式。 Speed 属性的范围从 Faster(最适合干净、高质量的图像)到 ExtremeDetail(最适合损坏或低分辨率的源)。 条形码读取文档涵盖了其他选项,包括多线程和感兴趣区域扫描。
如何自定义条形码外观?
IronBarcode允许您在保存条形码之前控制生成的条形码的每一个视觉方面。 您可以通过编程方式设置颜色、字体、边距和注释文本。 在为品牌标签或受监管行业生成条形码时,如果标签布局遵循严格的规范,这将非常有用。
该 API 遵循流畅式模式:创建条形码,调用样式方法,然后保存。 所有样式属性都会立即影响输出,无需单独的渲染步骤。有关可用属性的完整列表,请参阅样式和注释示例。
如何处理PDF文档中的条形码?
IronBarcode读取嵌入在 PDF 文件中的条形码的方式与读取图像文件的方式相同。 将 PDF 路径传递给 BarcodeReader.Read(),该库会自动从每一页中提取条形码。 这对于应付账款工作流程(其中发票 PDF 包含 GS1-128 条形码)和物流系统(其中发货清单以 PDF 附件形式分发)来说很有价值。
您还可以使用IronBarcode和IronPDF直接在 PDF 页面中写入条形码以生成文档。 常见的做法是生成一个包含人可读地址块和用于跟踪号码的可扫描 Code 128 条形码的货运标签 PDF。
如需进一步了解 PDF 条形码工作流程,IronBarcode教程部分提供了涵盖发票处理、批量标签打印和文档归档的端到端示例。
如何将条形码集成到ASP.NET Core API 中?
从ASP.NET Core控制器端点返回条形码图像是显示动态标签的 Web 门户的常见需求。 IronBarcode 的 base64 输出使这一切变得很简单:
using IronBarCode;
// In an ASP.NET Core controller action
public IActionResult GetBarcodeImage(string productId)
{
var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128);
barcode.ResizeTo(400, 100);
barcode.AddBarcodeValueTextBelowBarcode();
// Return the barcode as a PNG image response
byte[] imageBytes = barcode.ToJpegBinaryData();
return File(imageBytes, "image/jpeg");
}
using IronBarCode;
// In an ASP.NET Core controller action
public IActionResult GetBarcodeImage(string productId)
{
var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128);
barcode.ResizeTo(400, 100);
barcode.AddBarcodeValueTextBelowBarcode();
// Return the barcode as a PNG image response
byte[] imageBytes = barcode.ToJpegBinaryData();
return File(imageBytes, "image/jpeg");
}
Imports IronBarCode
' In an ASP.NET Core controller action
Public Function GetBarcodeImage(productId As String) As IActionResult
Dim barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128)
barcode.ResizeTo(400, 100)
barcode.AddBarcodeValueTextBelowBarcode()
' Return the barcode as a PNG image response
Dim imageBytes As Byte() = barcode.ToJpegBinaryData()
Return File(imageBytes, "image/jpeg")
End Function
这种方法适用于任何前端框架。 浏览器收到标准图像响应,并将其显示在 <img> 标签中。 对于高流量端点,只需生成一次条形码并缓存字节数组,因为相同的产品 ID 总是生成相同的条形码图像。
IronBarcode API 参考文档记录了所有可用方法,包括流式输出,从而避免为非常高分辨率的条形码分配大型字节数组。
IronBarcode如何处理条形码验证和纠错?
条形码标准定义了严格的编码规则和校验和要求。 Code 128 使用加权模 103 校验和。 EAN-13 使用模 10。二维码嵌入了里德-所罗门纠错技术,即使条形码高达 30% 被遮挡或损坏,也能部分恢复数据。
IronBarcode会自动执行这些规则。 当您调用 BarcodeWriter.CreateBarcode() 时,该库会验证数据是否符合符号系统的字符集和长度约束,然后计算并附加正确的校验和,而无需您的代码执行任何其他步骤。 这样可以防止生成扫描器会拒绝的无效条形码。
在读取方面,该库在解码过程中应用了纠错功能,这意味着它通常可以从部分撕裂、污损或低分辨率打印的条形码中恢复正确的值。 这种行为对于零售和物流行业的GS1 条码标准合规性尤为重要。
要深入了解条形码纠错在规范层面的工作原理, ISO/IEC 条形码标准文档提供了权威的技术参考。
条形码集成的常见场景有哪些?
| 场景 | 符号集 | IronBarcode 的主要功能 |
|---|---|---|
| 零售销售点 | EAN-13,UPC-A | BarcodeEncoding.EAN13 ,PDF导出 |
| 仓库库存 | 代码 128,ITF-14 | ExpectMultipleBarcodes = true |
| 医疗保健标签 | 数据矩阵,GS1-128 | 小尺寸打印,高分辨率输出 |
| 文件跟踪 | PDF417,代码 39 | PDF 阅读,支持多页 |
| 移动产品查找 | 二维码 | QRCodeWriter.CreateQrCode() |
| 运输标签 | 代码 128,GS1-128 | 标签大小的 PDF 输出,文本注释 |
不同的场景适合不同的配置选择。 IronBarcode示例库提供了上述所有场景的可运行代码。
下一步计划是什么?
集成条形码.NET组件可以将原本需要数周时间的自定义开发工作简化为一个下午的配置工作。 IronBarcode处理编码规则、校验和、图像预处理和纠错,因此您的团队可以专注于条形码工作流程的业务逻辑,而不是条形码机制本身。
继续前进:
- 在软件包管理器控制台中安装软件包:
dotnet add package BarCode或Install-Package BarCode2.尝试快速入门:条形码快速入门示例仅需不到 20 行代码即可完成条形码的生成和读取。 3.探索条码符号体系:支持的条码类型参考列表列出了所有编码格式及使用指南。 4.审核定价:IronBarcode 的许可选项涵盖单个开发者、团队和 OEM 再分发用例。 5.开始免费试用:下载30 天免费试用许可证,在您自己的应用程序中评估全部功能。
对于Enterprise许可、大批量部署或技术集成难题等问题, IronBarcode支持团队随时为您提供帮助。
条形码标准和规范的外部参考资料:
GS1条码标准——全球零售和物流条码规范权威机构
- ISO/IEC 条码标准委员会——一维和二维条码符号体系的国际标准 Stack Overflow 上的 C# 条形码问答-- 关于.NET中条形码实现的社区讨论
常见问题解答
什么是条码 .NET 组件?
条形码.NET组件是一个软件库,它使开发人员能够将条形码生成和扫描集成到.NET应用程序中,自动处理编码规则、校验和以及图像预处理。
IronBarcode 如何帮助 .NET 应用程序?
IronBarcode提供了一个.NET组件,可通过简单的 API 生成和读取条形码,从而可以轻松地将条形码功能添加到 C# 应用程序,而无需手动实现编码算法。
使用 IronBarcode 可以生成哪些类型的条码?
IronBarcode支持 Code 128、Code 39、Code 93、ITF-14、EAN-13、EAN-8、UPC-A、UPC-E、QR Code、Data Matrix、PDF417、Aztec 和 GS1 等多种条码。
为什么我应该使用条码组件而不是自己创建解决方案?
专业的条形码组件可自动处理校验和计算、纠错、图像预处理和多格式支持,从而缩短开发时间并降低生成无效条形码的风险。
IronBarcode 适合用于数据自动化任务吗?
是的, IronBarcode非常适合数据自动化。它可以从图像和 PDF 中读取条形码,并直接集成到后台服务、计划任务和ASP.NET Core API 中。
IronBarcode 可以用于文档跟踪吗?
是的IronBarcode可以读取多页 PDF 文件和多帧 TIFF 文件中的条形码,使其适用于物流、应付账款和档案管理中的文档跟踪工作流程。
IronBarcode支持哪些.NET版本?
IronBarcode支持.NET Framework 4.6.2 及更高版本、 .NET Core 3.1 及更高版本以及.NET 5 至.NET 10,可在 Windows、Linux 和 macOS 上运行。
IronBarcode 如何增强库存管理系统?
IronBarcode提供可靠的条形码生成和多条形码扫描功能,支持从图像和 PDF 文件进行扫描,从而在仓库和零售环境中实现快速准确的库存跟踪。

