如何使用IronBarcode在 C# 中生成条形码
IronBarcode是一个.NET条形码库,只需几行代码即可在 C# 中生成和读取条形码。 您可以创建 Code 128、QR 码、EAN-13、PDF-417、Data Matrix 以及数十种其他条形码类型——然后导出为 PNG、JPEG、TIFF、BMP、PDF 或 HTML 格式。 本指南将引导您完成安装、核心生成模式、样式、导出格式和最佳实践,以便您可以向任何.NET应用程序添加可靠的条形码输出。
如何使用NuGet包管理器安装条形码生成器库?
打开 Visual Studio,在软件包管理器控制台中使用此命令安装 NuGet 软件包:
Install-Package BarCode

NuGet包支持.NET 10、 .NET 8、 .NET 6、 .NET Core、 .NET Standard和.NET Framework ,使其与 Windows 应用程序和跨平台.NET应用程序兼容。 IronBarcode 支持部署到 Docker 容器、Azure 和 Linux 服务器。 更多详细信息和参考文档请参见IronBarcode文档页面和Iron Software GitHub项目。
安装完成后,您将在项目中看到 IronBarCode 命名空间。 该库在 Windows 上不需要额外的运行时依赖项——在 Linux 上,您可能需要安装一些系统库,如IronBarcode Linux 部署指南中所述。
如何在 C# 中生成简单的条形码图像文件?
只需几行代码即可创建 BarCode 图像。 下面的示例显示了保存 PNG 图像文件的 BarCode 生成:
using IronBarCode;
// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);
// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
using IronBarCode;
// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);
// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
Imports IronBarCode
' Generate a simple barcode and encode the string data
Dim barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128)
' Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png")
BarcodeWriter.CreateBarcode() 方法接受一个要编码的字符串和来自 BarcodeWriterEncoding 的条形码格式。 返回的 GeneratedBarcode 参考提供了样式方法和导出选项,可保存为 PNG、JPEG、BMP、TIFF、PDF 或 HTML 格式。
输出
!a href="/static-assets/barcode/blog/barcode-generator-csharp-source-ode/barcode-generator-csharp-source-ode-2.webp">Barcode Generator C# 源代码使用 IronBarcode:图像 2 - 条码输出。
Code128 是物流和库存系统中的主力条形码。 它以紧凑的线性格式对大写字母、小写字母、数字和特殊字符进行编码。 这种条形码类型可确保在全球各地的物流中心和零售环境中正确扫描。使用 SaveAsPng() 方法时,IronBarcode 会自动设置适用于屏幕显示和标准打印机的默认分辨率。
对于需要直接从 Web 端点提供条形码图像的应用程序,可以使用 ToStream() 而不是保存到磁盘。 可以直接将流写入 ASP.NET Core 中的 HttpResponse,或者从控制器操作中作为 FileStreamResult 返回。
如何创建二维码和其他二维条形码?
IronBarcode 支持所有主流条形码格式,包括 QR 码和数据矩阵等二维条形码类型。 生成具有类似语法的 QR 代码:
using IronBarCode;
// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
using IronBarCode;
// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
Imports IronBarCode
' Create a QR code and encode URL data
Dim qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
)
qrCode.SaveAsPng("website-qr.png")
QR 码 BarCode 类型擅长存储 URL 和较大的数据有效载荷。 该库可自动处理纠错,确保条形码即使在部分损坏的情况下仍可扫描。 默认情况下, IronBarcode使用 M(中等)纠错级别,可从大约 15% 的数据丢失中恢复——对于可能被刮伤或部分遮挡的打印条形码,您可以将其提高到 H 级别。
输出
。
对于需要 EAN-13 条形码的零售产品,可生成类似这样的条形码图像:
using IronBarCode;
// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
using IronBarCode;
// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
Imports IronBarCode
' Generate an EAN-13 barcode compatible with UPC for retail print applications
Dim eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13)
eanBarcode.SaveAsPng("retail-product.png")
EAN-13 是全球零售 POS 系统的标准格式。该库会自动计算校验位,因此您只需提供有效 GTIN-13 代码的前 12 位数字即可。 如果您提供的校验位不匹配, IronBarcode会抛出一个描述性异常,而不是默默地生成一个无法读取的条形码。
输出
!a href="/static-assets/barcode/blog/barcode-generator-csharp-source-ode/barcode-generator-csharp-source-ode-4.webp">Barcode Generator C# Source Code Using IronBarcode:图像 4 - EAN-13 条码输出。
除了 Code 128、QR Code 和 EAN-13 之外,该库还支持 Code 39、Code 93、UPC-A、UPC-E、ITF、Codabar、PDF-417、Aztec 和 Data Matrix。 支持的格式完整列表可在IronBarcode条形码类型参考页面上找到。
如何创建具有高级样式选项的样式化二维码?
专业条形码生成通常需要高级样式选项来调整颜色和添加注释。 GeneratedBarcode 类提供了一个流畅的 API 和样式方法:
using IronBarCode;
using IronSoftware.Drawing;
// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
.ResizeTo(400, 120)
.SetMargins(20)
.ChangeBarCodeColor(Color.DarkBlue)
.AddAnnotationTextAboveBarcode("Invoice Number:")
.AddBarcodeValueTextBelowBarcode();
// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
using IronBarCode;
using IronSoftware.Drawing;
// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
.ResizeTo(400, 120)
.SetMargins(20)
.ChangeBarCodeColor(Color.DarkBlue)
.AddAnnotationTextAboveBarcode("Invoice Number:")
.AddBarcodeValueTextBelowBarcode();
// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
Imports IronBarCode
Imports IronSoftware.Drawing
' Create a styled barcode with advanced styling options
Dim styledBarcode = BarcodeWriter _
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128) _
.ResizeTo(400, 120) _
.SetMargins(20) _
.ChangeBarCodeColor(Color.DarkBlue) _
.AddAnnotationTextAboveBarcode("Invoice Number:") _
.AddBarcodeValueTextBelowBarcode()
' Verify to ensure proper scanning after styling
Dim isReadable As Boolean = styledBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
styledBarcode.SaveAsPng("styled-invoice-barcode.png")
流畅的 API 可让您在一条语句中使用链式样式方法来调整颜色、设置页边距和添加文本。 Verify() 方法指示您的条形码是否仍然机器可读——确保在应用非标准颜色或调整尺寸至较小尺寸后,在生产中正确扫描。
将条形码颜色改为非常浅的色调或与白色背景对比度很低的蓝色,可能会导致条形码无法扫描。 颜色更改后,请务必拨打 Verify()。 如果验证失败,则增加对比度或恢复为黑边。 条形码样式和自定义指南详细介绍了所有可用的样式方法。
为了在整个产品目录中生成具有一致样式的多个条形码,请构建一个辅助方法,将您的标准样式链应用于每个 GeneratedBarcode 实例。 这种方法可以确保生成的数千张图像具有统一的边距、字体大小和颜色。
如何将条形码导出为不同的图像格式?
针对不同用例生成多种格式的 BarCode 图像。 该库可保存为 PNG、JPEG、BMP、TIFF、PDF 和 HTML 格式:
using IronBarCode;
var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);
// Export barcode images to various formats
barcode.SaveAsPng("barcode.png"); // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg"); // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff"); // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf"); // PDF document output
barcode.SaveAsHtmlFile("barcode.html"); // HTML for inline web embedding
// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
using IronBarCode;
var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);
// Export barcode images to various formats
barcode.SaveAsPng("barcode.png"); // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg"); // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff"); // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf"); // PDF document output
barcode.SaveAsHtmlFile("barcode.html"); // HTML for inline web embedding
// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
Imports IronBarCode
Dim barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128)
' Export barcode images to various formats
barcode.SaveAsPng("barcode.png") ' Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg") ' Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff") ' High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf") ' PDF document output
barcode.SaveAsHtmlFile("barcode.html") ' HTML for inline web embedding
' Get as bitmap stream for web APIs or database storage
Dim barcodeStream As System.IO.Stream = barcode.ToStream()
Dim bitmapImage As System.Drawing.Bitmap = barcode.ToBitmap()
ToStream() 方法返回与 ASP.NET Core Web API 和 Blazor 应用程序兼容的条形码数据。 ToBitmap() 方法为进一步的图像处理提供 System.Drawing.Bitmap 参考。 要将条形码添加到现有的 PDF 文档中,请参阅IronBarcode PDF 条形码教程。
输出
!a href="/static-assets/barcode/blog/barcode-generator-csharp-source-ode/barcode-generator-csharp-source-ode-5.webp">Barcode Generator C# 源代码使用 IronBarcode:图像 5 - PNG 条码输出。
。
选择合适的格式取决于您的后续工作流程。 PNG 格式无损,是网页和应用程序用户界面的良好默认格式。 在对色彩精度要求较高的印刷生产流程中,TIFF 格式是首选。 当您需要一份可以直接由印刷厂处理的可打印文档时,PDF 输出非常有用。 HTML 输出会生成一个包含嵌入式 base64 图像的独立文件——方便用于电子邮件模板和 Web 门户。
IronBarcode支持哪些跨平台.NET环境?
IronBarcode支持在所有主流.NET平台上生成条形码。 部署到
| 平台 | 支持的运行时 | 典型应用案例 |
|---|---|---|
| Windows | .NET 10、 .NET 8、 .NET Framework 4.6.2+ | 桌面应用程序、Windows 服务、IIS Web 服务器 |
| Linux | .NET 10、 .NET 8、 .NET Core 3.1+ | Docker容器、AWS Lambda、Azure Functions |
| macOS | .NET 10、 .NET 8 | 开发环境、macOS 服务器应用程序 |
| 移动设备 | .NET MAUI,Xamarin | iOS 和 Android 移动应用程序 |
| 云 | Azure、AWS、Google 云 | 无服务器函数、容器化微服务 |
IronBarcode Docker 设置指南提供了容器化部署所需的系统库的详细信息。 在 Linux 上运行时,通常需要在 Docker 镜像中安装 libgdiplus 和 libc6-dev。 在 Alpine Linux 上,需要略有不同的软件包集——该指南涵盖了 Ubuntu/Debian 和 Alpine Dockerfile。
对于 AWS Lambda 部署, AWS Lambda 部署演练解释了如何在部署包中捆绑原生依赖项,以及如何配置内存限制来处理条形码渲染工作负载。
如何在.NET中遵循条形码生成的最佳实践?
在 C# 应用程序中生成条形码图像时,遵循一套一致的做法,可以决定条形码在现场能否可靠地扫描,还是会在销售点或仓库车间扫描失败。 以下准则适用于任何条形码格式。
根据您的使用场景选择合适的条形码格式。选择与您的扫描环境和数据需求相匹配的格式。 对于超过 80 个字符的 URL 和数据有效载荷,请使用二维码。 对于库存和物流,如果字母数字数据必须能够装入紧凑的线性符号中,请使用代码 128。 对于需要在 GS1 系统中注册的零售产品,请使用 EAN-13 或 UPC-A。 IronBarcode 的条形码格式比较页面提供了所有受支持类型、其容量限制和推荐用例的并排参考。
务必预留足够的空白区域。条形码周围的空白区域(称为空白区域)与条形码本身同样重要。 扫描仪利用它来检测符号的起始位置和结束位置。 使用 SetMargins() 方法,在数字显示时每边至少添加 10 像素的边距,在打印输出时至少添加 2.5 毫米的边距。 侵入静默区是生产环境中扫描失败的最常见原因之一。
进行任何样式更改后都要进行验证。调整颜色、应用渐变或调整大小为非标准尺寸后,请在 GeneratedBarcode 对象上调用 Verify()。 如果返回 false,则使用标准硬件将无法可靠地扫描您的条形码。 要么增加对比度,要么降低样式更改的复杂性。
对于大批量输出,请使用批量生成模式。如果您的应用程序生成数千个条形码(例如,产品标签或发货清单),请循环处理它们并重用相同的样式配置。 避免在循环内加载字体资源或配置对象,因为这会造成不必要的开销。 IronBarcode批量条形码生成示例演示了一种高效的循环模式,并实现了一致的输出。
在多种扫描器型号和光照条件下进行测试。条码扫描器对低对比度颜色、小模块尺寸和打印质量的容忍度各不相同。 部署前,至少使用两种不同的扫描器类型测试打印的条形码。 对于屏幕上显示的二维码,请在明亮和昏暗的光线下使用手机摄像头进行测试。 GS1 条码验证标准页面提供了零售条码符号质量等级的权威指导。
请遵守数据容量限制。每种条形码格式都有其最大数据容量。 Code 128 最多可以编码大约 48 个字符,超过这个宽度,符号就太宽,无法在标准标签尺寸上打印。 二维码容量取决于纠错级别——在 H 级,最大容量约为 1,273 个字母数字字符。 超出容量限制会导致库抛出异常或静默降低质量。 查看维基百科上的二维码数据容量参考,即可快速获取容量表。
遵循 .NET 释放模式。 GeneratedBarcode 和 ToStream() 返回的任何流都实现了 IDisposable。 将它们包装在 using 语句中,以便及时释放未托管资源,尤其是在条形码生成是按请求进行的、高吞吐量的 Web 应用程序中。
了解常见的故障模式也有助于构建更具弹性的生成代码。 扫描失败的三大最常见原因是:静区不足、条形码颜色与背景颜色过于接近、条形码缩放小于所选格式的最小模块尺寸。 IronBarcode 的 Verify() 方法在运行时捕获所有这三个。
要从生成的图像中读取条形码(用于往返测试或扫描上传的文件),请参阅IronBarcode条形码阅读器指南。 读取器 API 与写入器 API 一样简单,并且支持同样广泛的格式。
IronBarcode遵循的Code 128 标准为 ISO/IEC 15417 , QR 码标准为 ISO/IEC 18004 。 查阅目标条形码类型的相关标准有助于了解库必须在哪些限制条件下运行。
下一步计划是什么?
本指南涵盖了使用IronBarcode在 C# 中生成条形码图像——从NuGet安装到 Code 128、QR 码和 EAN-13 生成,使用流畅 API 进行高级样式设置,多格式导出,跨平台部署以及生产最佳实践。
如需了解更多信息,请浏览以下资源:
- IronBarcode 完整 API 参考--
BarcodeWriter、GeneratedBarcode以及所有枚举的完整方法文档 IronBarcode条形码阅读器教程——从图像、PDF和流媒体中读取和解码条形码 -批量条形码生成示例——适用于标签打印和运输工作流程的大批量生成模式 IronBarcode 的许可和定价——选项起价为 $799
下载IronBarcode ,即可为您的.NET应用程序添加条形码功能;或者开始 30 天免费试用,无需许可证密钥即可在您的环境中生成条形码图像。
常见问题解答
如何使用NuGet包管理器安装IronBarcode ?
打开 Visual Studio,导航至“工具”> “NuGet包管理器”>“包管理器控制台”,然后运行: Install-Package BarCode。或者,在NuGet包管理器界面中搜索“ IronBarcode ”,然后单击“安装”。
使用IronBarcode可以生成哪些类型的条形码?
IronBarcode支持生成各种条形码类型,包括 QR 码、Code 128、Code 39、Code 93、UPC-A、UPC-E、EAN-13、EAN-8、PDF-417、Data Matrix、Aztec 等。
IronBarcode 可以生成不同图像格式的条码吗?
是的, IronBarcode可以使用 SaveAsPng、SaveAsJpeg、SaveAsTiff、SaveAsPdf 和 SaveAsHtmlFile 方法生成 PNG、JPEG、BMP、TIFF、PDF 和 HTML 格式的条形码。
IronBarcode与.NET 10 兼容吗?
是的, IronBarcode与.NET 10、 .NET 8、 .NET 6、 .NET Core、 .NET Standard和.NET Framework完全兼容,允许您将条形码生成集成到跨平台应用程序中。
如何使用IronBarcode自定义条形码的外观?
IronBarcode为 GeneratedBarcode 类提供了一个流畅的 API。您可以链式调用 ResizeTo()、SetMargins()、ChangeBarCodeColor()、AddAnnotationTextAboveBarcode() 和 AddBarcodeValueTextBelowBarcode() 等方法来自定义条形码的外观。在设置样式后,务必调用 Verify() 来确认条形码仍然可扫描。
IronBarcode 支持条码读取和扫描吗?
是的, IronBarcode支持使用 BarcodeReader 类及其 Read 方法从图像、PDF 和流中读取和扫描条形码。
您可以使用IronBarcode批量生成条形码吗?
是的, IronBarcode支持批量生成。使用循环遍历数据,对每个数据项调用 `BarcodeWriter.CreateBarcode()`,然后应用标准样式链。为了提高效率,可以在循环外重用配置对象。
IronBarcode 是否有试用版?
是的, IronBarcode提供 30 天免费试用许可。请访问 ironsoftware.com/csharp/barcode/licensing/#trial-license 获取试用密钥,并在评估期间使用所有功能,且无水印。

