跳至页脚内容
USING IRONBARCODE

如何使用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

Barcode Generator C# Source Code Using IronBarcode: Image 1 - Installation

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")
$vbLabelText   $csharpLabel

BarcodeWriterEncoding中的条形码格式。 返回的GeneratedBarcode引用提供样式方法和导出选项,可以保存为PNG、JPEG、BMP、TIFF、PDF或HTML。

输出

Barcode Generator C# Source Code Using IronBarcode: Image 2 - Barcode Output

Code128 是物流和库存系统中的主力条形码。 它以紧凑的线性格式对大写字母、小写字母、数字和特殊字符进行编码。 此条形码类型确保在全球的运输设施和零售环境中能够正确扫描。当您使用SaveAsPng()方法时,IronBarcode会自动设置适合屏幕显示和标准打印机的默认分辨率。

对于需要直接从网络端点提供条形码图像的应用程序,您可以使用ToStream(),而不需要保存到磁盘。 可以将流直接写入ASP.NET Core中的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")
$vbLabelText   $csharpLabel

QR 码 BarCode 类型擅长存储 URL 和较大的数据有效载荷。 该库可自动处理纠错,确保条形码即使在部分损坏的情况下仍可扫描。 默认情况下, IronBarcode使用 M(中等)纠错级别,可从大约 15% 的数据丢失中恢复——对于可能被刮伤或部分遮挡的打印条形码,您可以将其提高到 H 级别。

输出

Barcode Generator C# Source Code Using IronBarcode: Image 3 - QR Code Output

对于需要 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")
$vbLabelText   $csharpLabel

EAN-13 是全球零售 POS 系统的标准格式。该库会自动计算校验位,因此您只需提供有效 GTIN-13 代码的前 12 位数字即可。 如果您提供的校验位不匹配, IronBarcode会抛出一个描述性异常,而不是默默地生成一个无法读取的条形码。

输出

Barcode Generator C# Source Code Using IronBarcode: Image 4 - EAN-13 Barcode Output

除了 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")
$vbLabelText   $csharpLabel

流畅的 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()
$vbLabelText   $csharpLabel

ToStream()方法返回与ASP.NET Core网络API和Blazor应用程序兼容的条形码数据。 System.Drawing.Bitmap引用。 有关将条形码盖章到现有PDF文档上的信息,请参见IronBarcode PDF条形码教程

输出

Barcode Generator C# Source Code Using IronBarcode: Image 5 - PNG Barcode Output

Barcode Generator C# Source Code Using IronBarcode: Image 6 - HTML Barcode Output

选择合适的格式取决于您的后续工作流程。 PNG 格式无损,是网页和应用程序用户界面的良好默认格式。 在对色彩精度要求较高的印刷生产流程中,TIFF 格式是首选。 当您需要一份可以直接由印刷厂处理的可打印文档时,PDF 输出非常有用。 HTML 输出会生成一个包含嵌入式 base64 图像的独立文件——方便用于电子邮件模板和 Web 门户。

IronBarcode支持哪些跨平台.NET环境?

IronBarcode支持在所有主流.NET平台上生成条形码。 部署到

IronBarcode部署平台支持
平台 支持的运行时 典型应用案例
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镜像中安装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毫米。 侵入静默区是生产环境中扫描失败的最常见原因之一。

在任何样式更改后进行验证。 调整颜色、应用渐变或调整到非标准尺寸后,在Verify()。 如果返回 false,则使用标准硬件将无法可靠地扫描您的条形码。 要么增加对比度,要么降低样式更改的复杂性。

对于大批量输出,请使用批量生成模式。如果您的应用程序生成数千个条形码(例如,产品标签或发货清单),请循环处理它们并重用相同的样式配置。 避免在循环内加载字体资源或配置对象,因为这会造成不必要的开销。 IronBarcode批量条形码生成示例展示了一种高效的循环模式,具有一致的输出。

在多种扫描器型号和光照条件下进行测试。条码扫描器对低对比度颜色、小模块尺寸和打印质量的容忍度各不相同。 部署前,至少使用两种不同的扫描器类型测试打印的条形码。 对于屏幕上显示的二维码,请在明亮和昏暗的光线下使用手机摄像头进行测试。 GS1 条码验证标准页面提供了零售条码符号质量等级的权威指导。

请遵守数据容量限制。每种条形码格式都有其最大数据容量。 Code 128 最多可以编码大约 48 个字符,超过这个宽度,符号就太宽,无法在标准标签尺寸上打印。 二维码容量取决于纠错级别——在 H 级,最大容量约为 1,273 个字母数字字符。 超出容量限制会导致库抛出异常或静默降低质量。 查看维基百科上的二维码数据容量参考,即可快速获取容量表。

遵循.NET处理模式。 IDisposable。 将它们放在using语句中,以便及时释放非托管资源,特别是在每次请求生成条形码的高吞吐量网络应用程序中。

了解常见的故障模式也有助于构建更具弹性的生成代码。 扫描失败的三大最常见原因是:静区不足、条形码颜色与背景颜色过于接近、条形码缩放小于所选格式的最小模块尺寸。 IronBarcode的Verify()方法在运行时捕获所有三种情况。

有关从生成的图像中读取条形码的信息——用于回程测试或扫描上传的文件——请参见IronBarcode条形码读取指南。 读取器 API 与写入器 API 一样简单,并且支持同样广泛的格式。

IronBarcode遵循的Code 128 标准为 ISO/IEC 15417QR 码标准为​​ ISO/IEC 18004 。 查阅目标条形码类型的相关标准有助于了解库必须在哪些限制条件下运行。

下一步计划是什么?

本指南涵盖了使用IronBarcode在 C# 中生成条形码图像——从NuGet安装到 Code 128、QR 码和 EAN-13 生成,使用流畅 API 进行高级样式设置,多格式导出,跨平台部署以及生产最佳实践。

如需了解更多信息,请浏览以下资源:

下载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 获取试用密钥,并在评估期间使用所有功能,且无水印。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

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