How to Create Barcode From Data in C#

在 C# 中从文本、网址、ID 和二进制数据创建 BarCode;

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

IronBarcode 使 C# 开发人员能够使用 BarcodeWriter.CreateBarcode() 方法从字符串、字节数组和内存流等各种数据源生成条形码,并支持 QR Code、Code128 和 PDF417 等多种条形码格式。

快速入门:用一行代码从字符串创建条形码

使用 IronBarcode 的 API 生成条形码,只需最少的设置。本示例展示了如何仅使用一行代码从一个简单字符串创建条形码。 有关综合示例,请查看 Barcode Quickstart 指南。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronBarcode

    PM > Install-Package BarCode

  2. 复制并运行这段代码。

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Order123", IronBarCode.BarcodeWriterEncoding.Code128);
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronBarcode,免费试用!
    arrow pointer


如何从字符串创建 BarCode?

哪些条形码格式最适合不同的字符串类型? 不同的 BarCode 格式针对特定的数据类型和用例进行了优化。 [了解支持的条形码格式](https://ironsoftware.com/csharp/barcode/get-started/supported-barcode-formats/)有助于选择正确的编码: - **QR 代码**:最适用于 网址、电子邮件地址和大型文本数据。 支持多达 4296 个字母数字字符,并支持 [ 错误纠正](https://ironsoftware.com/csharp/barcode/how-to/error-correction/)。 - **Code128**:适用于订单号和序列号等字母数字数据。 对现代应用程序具有很高的效率。 - **PDF417**:适用于机票和政府身份证等复杂数据。 最多可存储 1,850 个字母数字字符。 - **Code93**:非常适合邮政服务和使用紧凑数字数据进行库存跟踪。 - **Aztec**:移动票务和交通的最佳选择,所需的空间小于二维码。 以下代码演示了如何用字符串书写 BarCode: ```cs :path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-string.cs ```

生成的 BarCode 结果是什么? 该代码将五个不同的数据示例编码为五种条形码类型:简单文本编码为 Aztec 码,网址 编码为 QR 码,数字 ID 编码为 Code 93 码,字母数字 ID 编码为 PDF417 码,数字编码为 Codabar 码。 图片保存为 PNG 格式。 有关高级导出选项,请参阅 [Create BarCode as Image](https://ironsoftware.com/csharp/barcode/how-to/create-barcode-images/) 指南。
Aztec barcode containing 'Hello, World!' text with characteristic square spiral pattern
QR code generated from 网址 input demonstrating barcode creation functionality
Generated Code93 barcode example showing vertical black and white bars pattern
PDF417 barcode with stacked rows encoding flight ID alphanumeric data
Codabar barcode displaying numeric data with start/stop characters

如何自定义生成的 BarCode? 创建您的条形码后,使用 IronBarcode 的样式功能增强其外观。 以下是如何创建带有颜色、注释和页边距的自定义 BarCode: ```cs using IronBarCode; // Create a barcode with custom styling GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128); // Apply custom styling myBarcode.ResizeTo(300, 100); myBarcode.SetMargins(10); myBarcode.ChangeBarCodeColor(Color.DarkBlue); // Add text annotations myBarcode.AddBarcodeValueTextBelowBarcode(); myBarcode.AddAnnotationTextAboveBarcode("Product SKU", Font.Arial, Color.Black, 12); // Save the customized barcode myBarcode.SaveAsPng("customized-barcode.png"); ``` 有关更多样式选项,请浏览[自定义和样式化 BarCode](https://ironsoftware.com/csharp/barcode/how-to/customize-barcode-style/) 教程。

如何从字节数组创建 BarCode?

字节阵列 BarCode 的字符编码为何重要? 要从字节数组创建条形码,请确保字符编码与所需的 `BarcodeEncoding` 一致,因为每种条形码类型都接受不同的字符编码。 了解[输出数据格式](https://ironsoftware.com/csharp/barcode/how-to/output-data-formats/)可确保兼容性。 以下是 IronBarcode 中可用的字符编码: - **ASCII**:英文字母、数字和标点符号每个字符使用 7 位。 例如:'A' = 65。 - **UTF-8**:适用于所有 Unicode 字符的可变长度编码。 例如:€ = 0xE2 0x82 0xAC。 - **UTF-16**:使用 16 位 Unicode 序列。 例如:α = 0x03B1。 - **UTF-32**:每个字符的固定 32 位序列。 例如:α = 0x000003B1。 - **ISO-8859-1**:为西欧语言扩展 ASCII。 例如:é = 233. [{i:IronBarcode 中的默认字符编码是 ISO-8859-1。}]

如何将字节数组转换为 BarCode? 以下代码演示了从字节数据生成 BarCode: ```cs :path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-byte.cs ``` 该代码段将五个字符串输入转换为 `System.Byte[]` 对象。 要将这些字节数组转换为条形码,请将它们传递给带有所需 `BarcodeEncoding` 的 `BarcodeWriter` 。 可选择为条形码尺寸设置 `MaxWidth` 和 `MaxHeight` 。 ### 处理二进制数据和特殊字符 在处理二进制数据或特殊字符时,请使用 [Writing Unicode BarCode](https://ironsoftware.com/csharp/barcode/how-to/writing-in-unicode/) 获得国际字符支持。 下面是一个处理二进制数据的例子: ```cs using IronBarCode; using System.Text; using System.IO; // Example: Encoding binary data (like a small file) into QR Code byte[] binaryData = File.ReadAllBytes("document.pdf"); string base64Data = Convert.ToBase64String(binaryData); // Create QR code with high error correction for binary data GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode( base64Data, BarcodeEncoding.QRCode ); // Set high error correction for data integrity binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High); // Save with appropriate size for data density binaryBarcode.ResizeTo(500, 500); binaryBarcode.SaveAsPng("binary-data-qr.png"); ```

如何从内存流中创建 BarCode?

何时应将内存流用于条形码生成? 内存流在处理不需要磁盘存储的数据时效果最佳,例如网络应用程序中动态生成的内容或数据库处理。 [Export BarCode as Stream](https://ironsoftware.com/csharp/barcode/how-to/export-barcode-as-stream/) 指南为基于流的工作流程提供了更多的背景信息。 以下代码演示了从内存流生成 BarCode: ```cs :path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-stream.cs ```

使用内存流有哪些好处? 此代码段从 `System.Byte[]` 对象创建 `MemoryStream` ,然后将其作为 `BarcodeWriter.CreateBarcode()` 的输入,从内存流数据生成条形码。 内存流具有以下几个优点: 1.**性能**:无磁盘 I/O 操作,更快处理临时数据 2.**安全性**:数据保留在内存中,减少敏感信息的暴露 3.**灵活性**:与基于流的 API 和库轻松集成 4.**资源效率**:自动内存管理和处置 ### 高级流处理示例 对于涉及流处理的复杂场景,请将 IronBarcode 与其他流操作相结合: ```cs using IronBarCode; using System.IO; using System.Text; // Example: Processing multiple barcodes in a batch using streams public static ListGenerateBarcodeStreams(ListdataItems) { var barcodeStreams = new List(); foreach (var item in dataItems) { // Convert string to stream var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item)); // Generate barcode from stream var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128); // Export barcode back to stream var outputStream = new MemoryStream(); barcode.SaveAsPng(outputStream); outputStream.Position = 0; // Reset position for reading barcodeStreams.Add(outputStream); } return barcodeStreams; } // Usage example var order数字s = new List{ "ORD-001", "ORD-002", "ORD-003" }; var barcodes = GenerateBarcodeStreams(order数字s); ``` 有关多线程应用程序中的异步操作和性能改进,请参阅 [Use Async and Multithread](https://ironsoftware.com/csharp/barcode/how-to/async-multithread/) 指南。

常见问题解答

如何用 C# 从文本中创建 BarCode?

只需一行代码,您就可以在 C# 中使用 IronBarcode 从文本创建条形码:BarcodeWriter.CreateBarcode("YourText",BarcodeWriterEncoding.Code128)。IronBarcode 支持多种格式,包括 QR Code, Code128, PDF417, Aztec 等。

哪些类型的数据可以编码到 BarCode 中?

IronBarcode 允许您对各种数据类型进行编码,包括字符串、URL、ID、二进制数据(字节数组)和内存流。该库可根据您选择的 BarCode 格式自动处理转换和编码。

URL 应使用哪种 BarCode 格式?

QR 码是 IronBarcode 对 URL 进行编码的最佳选择。QR 码最多可存储 4296 个字母数字字符,并具有纠错功能,是网址和电子邮件地址的理想选择。

哪种条形码格式最适合订单号和序列号?

使用 IronBarcode 时,Code128 是订单号和序列号等字母数字数据的理想格式。它对于现代应用程序来说非常高效,并能为混合字符集提供出色的数据密度。

我可以用二进制数据创建 BarCode 吗?

是的,IronBarcode 支持通过 CreateBarcode 方法使用 System.Byte[] 数组或 System.IO.Stream 输入的二进制数据创建条形码,允许您对任何类型的二进制信息进行编码。

我可以用什么图像格式保存 BarCode?

IronBarcode 允许您将生成的条形码保存为多种图像格式,包括 PNG、JPEG、BMP、GIF 和 TIFF。该库为不同的使用情况提供了灵活的导出选项。

PDF417 条形码中可以存储多少数据?

使用 IronBarcode 创建的 PDF417 条形码可存储多达 1,850 个字母数字字符,是机票、运输标签和政府 ID 等复杂数据的完美选择。

哪种条形码格式最适合移动售票?

使用 IronBarcode 时,阿兹特克条形码是移动票务和交通应用的最佳选择。与 QR 码相比,阿兹台克条形码所需的空间更小,同时还能在移动设备上保持较高的数据容量和可读性。

Hairil Hasyimi Bin Omar
软件工程师
如所有伟大的工程师一般,Hairil 是个热心的学习者。他正在提高对 C#、Python 和 Java 的知识,并利用这些知识为 Iron Software 团队成员增值。Hairil 从马来西亚的玛拉工业大学加入 Iron Software 团队,获得化学与工艺工程学士学位。
准备开始了吗?
Nuget 下载 2,002,059 | 版本: 2025.12 刚刚发布