跳至页脚内容
USING IRONBARCODE

使用 IronBarcode 的条码 .NET 组件教程

条码.NET组件是一个托管代码库,允许您在C#应用程序中仅使用几行代码生成和读取条码。 IronBarcode 支持所有主要符号体系——Code 128, QR, Data Matrix, EAN, UPC等,并且在Windows, Linux和macOS上运行,无需额外的运行时依赖。

通过NuGet安装,几分钟内即可开始生成条码:

Install-Package BarCode
Install-Package BarCode
SHELL

什么是条码.NET组件?

条码.NET组件是一个软件库,作为NuGet包提供,通过简洁的API提供条码生成和读取功能。 与需要手动校验和计算和复杂格式化规则的条码字体不同,专用组件内部处理所有编码逻辑。

IronBarcode库暴露了两个主要入口点:

  • BarcodeWriter -- 从文本或数值数据创建条码图像、PDF和HTML
  • BarcodeReader -- 扫描图像、PDF和多框架TIFF以提取条码值

这种双向设计意味着您可以在同一库中将条码打印到标签上并从文档中扫描回来,这对于库存管理、文档跟踪、水晶报表集成和数据自动化工作流至关重要。

支持的符号体系包括:

  • 1D线性:Code 128, Code 39, Code 93, ITF-14, EAN-13, EAN-8, UPC-A, UPC-E
  • 2D矩阵:QR码, Data Matrix, PDF417, Aztec
  • GS1变体:GS1-128, GS1 DataBar

制造系统通常使用Code 128进行产品跟踪,因为它能有效地编码字母数字数据。 医疗应用程序通常依赖Data Matrix进行药物标签,因为它能很好地在非常小的尺寸上打印。 零售POS系统在结账时扫描EAN-13和UPC-A条码。 为您的使用案例选择合适的符号体系是集成条码功能时首先要做的决定之一。

如何在.NET项目中安装IronBarcode?

使用Visual Studio中的NuGet包管理器或.NET CLI安装IronBarcode不到两分钟。

包管理器控制台 (Visual Studio):

Install-Package BarCode
Install-Package BarCode
SHELL

.NET CLI

dotnet add package BarCode
dotnet add package BarCode
SHELL

如何在C#中集成条码.NET组件:图3 - 安装

包安装后,在任何使用条码功能的文件顶部添加命名空间:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

IronBarcode面向.NET Framework 4.6.2及以上版本,.NET Core 3.1及以上版本,以及.NET 5到.NET 10。在Windows、Linux和macOS上运行,因此相同的代码可以在云托管容器、本地服务器和开发工作站上运行,无需平台特定配置。

对于ASP.NET Core应用程序,不需要中间件注册。 您可以从控制器、后台服务或Razor页面直接调用API。 Windows窗体和WPF应用程序以相同方式访问——添加命名空间并开始调用方法。

如何在C#中集成条码.NET组件:图4 - 带跨平台支持生成条码

详细的安装步骤,包括离线NuGet源配置和代理设置,提供在IronBarcode入门指南中。

如何在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");
$vbLabelText   $csharpLabel

ResizeTo()方法精确设置像素尺寸,这在您以特定DPI打印标签时非常重要。 AddBarcodeValueTextBelowBarcode()调用在条形下面添加人可读文本,使仓库和零售环境中的人工验证更容易。

条码输出格式

如何在C#中集成条码.NET组件:图5 - PNG输出

如何在C#中集成条码.NET组件:图6 - PDF输出

IronBarcode导出为PNG、JPEG、GIF、TIFF、BMP、PDF、HTML和base64字符串。 base64格式特别适用于在API响应中嵌入条码,前端可以动态渲染而无需将文件写入磁盘。

如何在C#中生成QR码?

对于QR码,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");
$vbLabelText   $csharpLabel

QR码可以编码URL、纯文本、vCard联系人数据、Wi-Fi凭据和任意字节序列。 条码生成示例页面涵盖了包括Data Matrix和PDF417在内的其他编码场景。

如何从图像中读取条码?

从图像中读取条码和写入一样直接。 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}");
}
$vbLabelText   $csharpLabel

阅读器自动预处理图像以校正常见的扫描问题:旋转、倾斜、噪音、低对比度和透视扭曲。 这意味着您可以直接传递原始扫描仪输出,无需自己预处理。

从真实文档扫描

如何在C#中集成条码.NET组件:图7 - 代码128条码准备扫描

读取输出

如何在C#中集成条码.NET组件:图8 - 条码输出

如何配置条码读取选项?

对于高容量或具有挑战性的扫描场景,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);
$vbLabelText   $csharpLabel

设置ExpectBarcodeTypes以匹配实际预期的格式可提升吞吐量,因为阅读器跳过无法匹配的模式。 ExtremeDetail(最适合受损或低分辨率来源)。 条码阅读文档覆盖了包括多线程和感兴趣区域扫描在内的其他选项。

如何自定义条码外观?

IronBarcode允许您在保存之前控制生成的条码的每个视觉方面。 您可以通过编程设置颜色、字体、边距和注释文本。 这在生成品牌标签或遵循严格规范的行业标签时非常有用。

API遵循流式样式模式:创建条码,调用样式方法,然后保存。 所有样式属性立即影响输出,并不需要单独的渲染步骤。查看样式和注释示例以获取完备的可用属性列表。

如何处理PDF文档中的条码?

IronBarcode读取嵌入在PDF文件中的条码与读取图像文件相同。 将PDF路径传递给BarcodeReader.Read(),库会自动提取每个页面中的条码。 这对于包含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");
}
$vbLabelText   $csharpLabel

此方法适用于任何前端框架。 浏览器接收标准的图像响应并在<img>标签中显示。 对于高流量端点,一次生成条码并缓存字节数组,因为相同的产品ID总是会生成相同的条码图像。

IronBarcode API参考记录了所有可用的方法,包括流式输出,避免为非常高分辨率的条码分配大型字节数组。

IronBarcode如何处理条码验证和误差校正?

条码标准定义严格的编码规则和校验和要求。 Code 128使用加权模103校验和。 EAN-13使用模10。QR码嵌入里德-所罗门误差校正,即使在30%的条码被遮挡或损坏时也允许部分数据恢复。

IronBarcode自动实施这些规则。 当您调用BarcodeWriter.CreateBarcode()时,库会验证数据是否符合符号体系的字符集和长度限制,然后计算并附加正确的校验和,无需您的代码额外步骤。 这可以防止生成无效的条码,扫描仪会拒绝这些条码。

在读取端,库在解码时应用误差校正,这意味着它通常可以从部分撕裂、涂抹或低分辨率打印的条码中恢复正确值。 此行为对于GS1条码标准在零售和物流中的合规性尤其重要。

为了更深入了解条码误差校正在规范层面上的工作原理,ISO/IEC条码标准文档提供权威的技术参考。

常见的条码集成场景是什么?

常见的条码集成场景和推荐的IronBarcode功能
场景 符号体系 关键IronBarcode功能
零售POS EAN-13, UPC-A `BarcodeEncoding.EAN13`, PDF导出
仓库库存 Code 128, ITF-14 `ExpectMultipleBarcodes = true`
医疗标签 Data Matrix, GS1-128 小尺寸打印,高DPI导出
文档跟踪 PDF417, Code 39 PDF读取,多页支持
移动产品查找 二维码 `QRCodeWriter.CreateQrCode()`
发货标签 Code 128, GS1-128 标签大小PDF输出,文本注释

每个场景受益于不同的配置选择。 IronBarcode示例库提供上述所有场景的可运行代码。

您的下一步是什么?

集成条码.NET组件将原本需要几周的定制开发工作转变为一个下午的配置。 IronBarcode处理编码规则、校验和、图像预处理和误差校正,以便您的团队能够专注于围绕条码工作流的业务逻辑,而不是条码机制本身。

继续操作:

  1. 安装软件包Install-Package BarCode在软件包管理器控制台中
  2. 尝试快速入门条码快速入门示例在不到20行代码中演示生成和读取
  3. 探索符号体系支持的条码类型参考列出所有编码格式,并提供使用指导
  4. 查看定价IronBarcode许可选项涵盖单开发者、团队和OEM再分发使用情况
  5. 开始免费试用:下载30天免费试用许可证,在您自己的应用程序中评估完整功能集

有关企业许可、高容量部署或技术集成挑战的问题,IronBarcode支持团队可以提供帮助。

条码标准和规范的外部参考:

常见问题解答

什么是条码 .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 文件进行扫描,从而在仓库和零售环境中实现快速准确的库存跟踪。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我