如何在 C# 中生成条形码图像

How to Generate Barcode Images in C# .NET Applications

This article was translated from English: Does it need improvement?
Translated
View the article in English

需要在您的 .NET 应用程序中快速生成专业的 BarCode 图像吗? 本教程将详细展示如何使用 IronBarcode 创建、自定义和导出 BARCODE——从简单的单行代码实现,到可完全掌控 BARCODE 外观的高级样式设计技巧。

快速入门:即时创建并保存BarCode图像

借助 IronBarcode,您只需一次简单的调用即可生成并导出 BarCode 图像。 在文本中使用 CreateBarcode 方法,选择格式和大小,然后调用 SaveAsPng ——无需复杂配置。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/BarCode

    PM > Install-Package BarCode
  2. 复制并运行这段代码。

    IronBarCode.BarcodeWriter.CreateBarcode("Hello123", BarcodeWriterEncoding.Co/de128, 200, 100).SaveAsPng("barcode.png");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronBarcode

    arrow pointer

How Do I Install a Barcode Generator Library in C#?

using NuGet 包管理器安装 IronBarcode 仅需几秒钟。 您可以通过包管理器控制台直接安装,或手动下载 DLL 文件。

Install-Package BarCode
IronBarcode 凭借强大的功能和易于使用的 API,简化了 .NET 应用程序中的条形码生成流程 IronBarcode for .NET 为开发人员提供了全面的 BarCode 生成功能

How Can I Generate a Simple Barcode Using C#?

只需两行代码,即可生成您的第一个BARCODE。 下面的示例演示了如何生成标准的 Code128 BARCODE并将其保存为图像文件。

using IronBarCode;

// Create a barcode with your desired content and encoding type
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Co/de128);

// Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png");

// Optional: Open the generated image in your default viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("myBarcode.png") { UseShellExecute = true });
using IronBarCode;

// Create a barcode with your desired content and encoding type
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Co/de128);

// Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png");

// Optional: Open the generated image in your default viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("myBarcode.png") { UseShellExecute = true });
Imports IronBarCode
Imports System.Diagnostics

' Create a barcode with your desired content and encoding type
Dim myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128)

' Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png")

' Optional: Open the generated image in your default viewer
Process.Start(New ProcessStartInfo("myBarcode.png") With {.UseShellExecute = True})
$vbLabelText   $csharpLabel

BarcodeWriter.CreateBarcode() 方法是生成 BARCODE 的入口点。 它接受两个参数:您要编码的数据以及来自 BarcodeWriterEncoding 枚举的 BARCODE 格式。 IronBarcode 支持所有主流 BarCode 格式,包括 DataMatrix 以及 QRCode 条码。

生成后,GeneratedBarcode 对象提供多种导出选项。 您可以将其保存为多种图像格式(PNG、JPEG、GIF、TIFF),导出为 PDF,甚至将其作为 System.Drawing.Bitmap 获取,以便在您的应用程序中进行进一步处理。

使用 C# 中的 IronBarcode 生成的 Code128 条形码示例 *A Code128 barcode generated with IronBarcode displaying a URL*

我可以自定义生成的BarCode外观吗?

IronBarcode 提供了丰富的自定义选项,其功能远不止于基本的 BarCode 生成。 您可以添加注释、调整颜色、设置边距,并控制BarCode外观的各个方面。

using IronBarCode;
using IronSoftware.Drawing;

// Create a QR code with advanced styling options
GeneratedBarcode myBarCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeWriterEncoding.QRCode
);

// Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:");

// Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode();

// Set consistent margins around the barcode
myBarCode.SetMargins(100);

// Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple);

// Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html");
using IronBarCode;
using IronSoftware.Drawing;

// Create a QR code with advanced styling options
GeneratedBarcode myBarCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeWriterEncoding.QRCode
);

// Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:");

// Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode();

// Set consistent margins around the barcode
myBarCode.SetMargins(100);

// Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple);

// Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html");
Imports IronBarCode
Imports IronSoftware.Drawing

' Create a QR code with advanced styling options
Private myBarCode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.QRCode)

' Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:")

' Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode()

' Set consistent margins around the barcode
myBarCode.SetMargins(100)

' Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple)

' Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html")
$vbLabelText   $csharpLabel

GeneratedBarcode 类提供了一套丰富的自定义方法:

  • 注释:使用 AddAnnotationTextAboveBarcode()AddAnnotationTextBelowBarcode() 在 BARCODE 周围添加自定义标签或说明
  • 值显示AddBarcodeValueTextBelowBarcode() 方法会自动将编码数据以人类可读的格式显示出来
  • 空格:使用 SetMargins() 控制空白,以确保正确扫描和视觉美观
  • 颜色:使用 ChangeBarCodeColor()ChangeBackgroundColor() 更改前景色和背景色
  • 导出选项:保存为图像文件、PDF 或自包含的 HTML 文档
Customized purple QR code with annotations generated using IronBarcode styling features *一个带有自定义颜色和注释文本的样式化QR码*

如需了解详细的自定义选项,请查阅 GeneratedBarcode 类文档,其中涵盖了所有可用的样式方法和属性。

如何用一行代码创建并导出BarCode?

IronBarcode 实现了流畅的 API 设计模式,支持方法链,从而使代码更加简洁易读。 当对BARCODE应用多种转换时,此方法尤为有用。

using IronBarCode;
using IronSoftware.Drawing;

// Generate, style, and convert a barcode in a single statement
string value = "https://ironsoftware.com/csharp/barcode";

// Create PDF417 barcode with chained operations
AnyBitmap barcodeBitmap = BarcodeWriter
    .CreateBarcode(value, BarcodeWriterEncoding.PDF417)  // Create PDF417 barcode
    .ResizeTo(300, 200)                                  // Set specific dimensions
    .SetMargins(10)                                      // Add 10px margins
    .ToBitmap();                                         // Convert to bitmap

// Convert to System.Drawing.Bitmap for legacy compatibility
System.Drawing.Bitmap legacyBitmap = barcodeBitmap;
using IronBarCode;
using IronSoftware.Drawing;

// Generate, style, and convert a barcode in a single statement
string value = "https://ironsoftware.com/csharp/barcode";

// Create PDF417 barcode with chained operations
AnyBitmap barcodeBitmap = BarcodeWriter
    .CreateBarcode(value, BarcodeWriterEncoding.PDF417)  // Create PDF417 barcode
    .ResizeTo(300, 200)                                  // Set specific dimensions
    .SetMargins(10)                                      // Add 10px margins
    .ToBitmap();                                         // Convert to bitmap

// Convert to System.Drawing.Bitmap for legacy compatibility
System.Drawing.Bitmap legacyBitmap = barcodeBitmap;
Imports IronBarCode
Imports IronSoftware.Drawing

' Generate, style, and convert a barcode in a single statement
Private value As String = "https://ironsoftware.com/csharp/barcode"

' Create PDF417 barcode with chained operations
Private barcodeBitmap As AnyBitmap = BarcodeWriter.CreateBarcode(value, BarcodeWriterEncoding.PDF417).ResizeTo(300, 200).SetMargins(10).ToBitmap() ' Convert to bitmap

' Convert to System.Drawing.Bitmap for legacy compatibility
Private legacyBitmap As System.Drawing.Bitmap = barcodeBitmap
$vbLabelText   $csharpLabel

流畅的 API 模式具有以下优势:

  • 可读性:按逻辑顺序串联操作,使译文读起来如同自然语言
  • 效率:减少变量声明和中间步骤
  • 灵活性:无需重构代码即可轻松添加或移除操作

常见的流畅操作包括:

  • ResizeTo(): 控制精确的BARCODE尺寸
  • SetMargins(): 添加统一的空格
  • ChangeBarCodeColor(): 修改外观
  • AddAnnotationTextAboveBarcode(): 包含说明性文本
  • ToBitmap(), SaveAsPng(), SaveAsPdf():导出为多种格式
使用 IronBarcode 的流畅 API 并自定义尺寸生成的 PDF417 条形码 *A PDF417 barcode generated using fluent method chaining*

IronBarcode 支持哪些 BarCode 格式?

IronBarcode 通过 BarcodeWriterEncoding 枚举支持全面的 BarCode 格式生成。 支持的格式包括:

一维BarCodeCode128, Code39, Code93, Codabar, ITF, MSI, Plessey, UPCA, UPCE, EAN8, EAN13
2D BarCodeMaxiCode
专用格式DataBarExpanded 以及各种 GS1 标准

每种格式都有其特定的特点和适用场景。 例如,QRCode 擅长存储 URL 和海量数据,而 EAN13 则是零售产品的标准选择。 了解如何为您的应用选择合适的BarCode格式

如何验证生成的BarCode是否可读?

质量保证对于BarCode的实施至关重要。 IronBarcode 包含内置验证功能,以确保生成的 BarCode 始终可被扫描:

// Generate and verify a barcode
GeneratedBarcode myBarcode = BarcodeWriter
    .CreateBarcode("TEST123", BarcodeWriterEncoding.Co/de128)
    .ResizeTo(200, 100)
    .ChangeBarCodeColor(Color.DarkBlue);

// Verify the barcode is still readable after modifications
bool isReadable = myBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
// Generate and verify a barcode
GeneratedBarcode myBarcode = BarcodeWriter
    .CreateBarcode("TEST123", BarcodeWriterEncoding.Co/de128)
    .ResizeTo(200, 100)
    .ChangeBarCodeColor(Color.DarkBlue);

// Verify the barcode is still readable after modifications
bool isReadable = myBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
Imports System.Drawing

' Generate and verify a barcode
Dim myBarcode As GeneratedBarcode = BarcodeWriter _
    .CreateBarcode("TEST123", BarcodeWriterEncoding.Code128) _
    .ResizeTo(200, 100) _
    .ChangeBarCodeColor(Color.DarkBlue)

' Verify the barcode is still readable after modifications
Dim isReadable As Boolean = myBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
$vbLabelText   $csharpLabel

Verify() 方法用于检查在进行调整大小或更改颜色等变换后,BarCode是否仍可被机器识别。 在使用非标准颜色或极小字号时,这一点尤为重要。

哪里可以找到更多BarCode生成示例?

若需扩展BarCode生成功能,请参考以下资源:

源代码和示例

下载本教程的完整源代码:

高级主题

API 文档

准备好在您的应用程序中生成Professional BARCODE 了吗?

IronBarcode 使 BarCode 生成变得简单直观,同时为 Professional 应用提供了所需的灵活性。 无论您需要简单的产品代码,还是具有自定义样式的复杂二维BarCode,IronBarcode 都能通过极少的代码轻松处理。

立即下载 IronBarcode,几分钟内即可开始生成 BarCode。 需要帮助选择合适的许可证吗? 查看我们的许可方案,或申请免费试用许可证,在您的生产环境中测试 IronBarcode。

常见问题解答

我如何在 C# 中创建条形码图像?

要在 C# 中创建条形码图像,可以使用 IronBarcode 的 BarcodeWriter.CreateBarcode() 方法。这允许您指定数据和条形码格式,然后使用 SaveAsPng() 等方法以 PNG 或 JPEG 格式保存图像。

在 .NET 项目中安装 IronBarcode 的步骤是什么?

您可以通过 Visual Studio 中的 NuGet 包管理器在您的 .NET 项目中安装 IronBarcode。或者,您可以从 IronBarcode 网站下载 DLL 并将其添加到项目引用中。

我如何在 C# 中将条形码导出为 PDF?

IronBarcode 允许使用 GeneratedBarcode 类中的 SaveAsPdf() 方法将条形码导出为 PDF,这是一种以 PDF 格式保存条形码的简便方法。

在 C# 中,条形码有哪些自定义选项?

IronBarcode 提供广泛的自定义选项,例如使用 ChangeBarCodeColor() 更改条形码颜色、使用 AddAnnotationTextAboveBarcode() 添加文本注释,以及使用 SetMargins() 设置边距。

我如何快速在一行代码中创建和样式化条形码?

使用 IronBarcode 的流畅 API,您可以通过方法链在一行代码中创建和样式化条形码:BarcodeWriter.CreateBarcode(data, encoding).ResizeTo(300, 200).SetMargins(10).SaveAsPng(path).

我如何确保修改后的条形码可扫描?

要验证样式或调整大小后的条形码的可扫描性,使用 GeneratedBarcode 对象上的 Verify() 方法以检查其机器可读性。

我可以在 C# 中生成带有徽标的二维码吗?

是的,IronBarcode 支持使用 QRCodeWriter 类生成带有嵌入徽标的二维码,该类包含徽标插入和增强错误更正级别的功能。

在 C# 中高效生成多个条形码的过程是什么?

您可以使用 IronBarcode 高效地在 C# 中生成多个条形码,该工具支持批处理,并允许使用循环或并行处理来处理大批量条形码生成。

在 C# 中,我可以使用哪些文件格式导出条形码?

IronBarcode 支持以多种格式导出条形码,包括 PNG、JPEG、GIF、TIFF、BMP、PDF 和 HTML,为不同的应用程序需求提供了灵活性。

我如何在 C# 中在条形码下方添加人类可读的文本?

要在 C# 中在条形码下方添加人类可读的文本,使用 AddBarcodeValueTextBelowBarcode() 方法,该方法会自动显示编码值为文本格式并置于条形码图像下方。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。

准备开始了吗?
Nuget 下载 2,240,258 | 版本: 2026.5 just released
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package BarCode
运行示例 观看您的字符串变成 BarCode。