IRONSOFTWAREHOME

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

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026年6月4日

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

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

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

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

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

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

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

如何从字符串创建 BarCode?

哪些条形码格式最适合不同的字符串类型?

不同的 BarCode 格式针对特定的数据类型和用例进行了优化。 了解支持的条形码格式有助于选择正确的编码:

  • QR 代码:最适用于 网址、电子邮件地址和大型文本数据。 支持多达 4296 个字母数字字符,并支持 错误纠正
  • Code128:适用于订单号和序列号等字母数字数据。 对现代应用程序具有很高的效率。
  • PDF417:适用于机票和政府身份证等复杂数据。 最多可存储 1,850 个字母数字字符。
  • Code93:非常适合邮政服务和使用紧凑数字数据进行库存跟踪。
  • Aztec:移动票务和交通的最佳选择,所需的空间小于二维码。

以下代码演示了如何用字符串书写 BarCode:

using IronBarCode;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/barcode/";
string receiptID = "2023-08-04-12345"; // Receipt ID (numeric id)
string flightID = "FLT2023NYC-LAX123456"; // Flight ID (alphanumeric id)
string number = "1234";

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");

生成的 BarCode 结果是什么?

该代码将五个不同的数据示例编码为五种条形码类型:简单文本编码为 Aztec 码,网址 编码为 QR 码,数字 ID 编码为 Code 93 码,字母数字 ID 编码为 PDF417 码,数字编码为 Codabar 码。 图片保存为 PNG 格式。 有关高级导出选项,请参阅 Create BarCode as Image 指南。

包含 'Hello, World!' 文本的 Aztec 条形码,具有典型的方形螺旋图案
QR code generated from 网址 input demonstrating barcode creation functionality
生成的 Code93 条形码示例,显示黑白垂直条形图案
带堆叠行的 PDF417 条形码,编码航班 ID 字母数字数据
显示带有起始/停止字符的数字数据的 Codabar 条形码

如何自定义生成的 BarCode?

创建您的条形码后,使用 IronBarcode 的样式功能增强其外观。 以下是如何创建带有颜色、注释和页边距的自定义 BarCode:

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 教程。

如何从字节数组创建 BarCode?

字节阵列 BarCode 的字符编码为何重要?

从字节数组创建条形码,要确保字符编码与BarcodeEncoding对齐,因为每种条形码类型接受不同的字符编码。 了解输出数据格式可确保兼容性。 以下是 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:

using IronBarCode;
using System.Text;

byte[] text = Encoding.UTF8.GetBytes("Hello, World!");
byte[] url = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
byte[] receiptID = Encoding.UTF8.GetBytes("2023-08-04-12345"); // Receipt ID (numeric id)
byte[] flightID = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456"); // Flight id (alphanumeric id)
byte[] number = Encoding.UTF8.GetBytes("1234");

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");

此代码段将五个字符串输入转换为System.Byte[]对象。 要将这些字节数组转换为条形码,请将它们连同所需的BarcodeEncoding一起传递给BarcodeWriter。 可选地,设置MaxWidthMaxHeight以定义条形码大小。

处理二进制数据和特殊字符

在处理二进制数据或特殊字符时,请使用 Writing Unicode BarCode 获得国际字符支持。 下面是一个处理二进制数据的例子:

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 = QRCodeWriter.CreateQrCode(
    base64Data,
    errorCorrectionLevel: QRCodeWriter.QrErrorCorrectionLevel.High
);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
C#

如何从内存流中创建 BarCode?

何时应将内存流用于条形码生成?

内存流在处理不需要磁盘存储的数据时效果最佳,例如网络应用程序中动态生成的内容或数据库处理。 Export BarCode as Stream 指南为基于流的工作流程提供了更多的背景信息。

以下代码演示了从内存流生成 BarCode:

using IronBarCode;
using System.IO;
using System.Text;

MemoryStream text = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"));
MemoryStream url = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"));
MemoryStream receiptID = new MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")); // Receipt ID (numeric id)
MemoryStream flightID = new MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")); // Flight id (alphanumeric id)
MemoryStream number = new MemoryStream(Encoding.UTF8.GetBytes("1234"));

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");

使用内存流有哪些好处?

此代码段从System.Byte[]对象创建MemoryStream,然后将其作为输入传递给BarcodeWriter.CreateBarcode(),以从MemoryStream数据生成条形码。 内存流具有以下几个优点:

1.性能:无磁盘 I/O 操作,更快处理临时数据 2.安全性:数据保留在内存中,减少敏感信息的暴露 3.灵活性:与基于流的 API 和库轻松集成 4.资源效率:自动内存管理和处置

高级流处理示例

对于涉及流处理的复杂场景,请将 IronBarcode 与其他流操作相结合:

using IronBarCode;
using System.IO;
using System.Text;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();
    
    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 = barcode.ToStream();
        outputStream.Position = 0; // Reset position for reading
        
        barcodeStreams.Add(outputStream);
    }
    
    return barcodeStreams;
}

// Usage example
var orderNumbers = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNumbers);
C#

有关多线程应用程序中的异步操作和性能改进,请参阅 Use Async and 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 个字母数字字符,并具有纠错功能,是网址和电子邮件地址的理想选择。

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

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

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

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

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

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

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

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

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

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

What example use cases benefit from using IronBarcode's PDF417 format?

PDF417 is suitable for complex data storage like flight tickets, government IDs, and other applications requiring robust data encoding. It can store up to 1,850 alphanumeric characters.

How can IronBarcode handle binary data for QR code generation?

IronBarcode can handle binary data by converting it to a Base64 string and then generating a QR code with high error correction. This approach is useful for encoding small file data or binary data streams.

准备开始了吗?

Nuget Downloads 2,422,100版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 "IronBarcode"
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并将 IronBarCode 解压到解决方案目录中的 ~/Libs 等位置
  2. 在 Visual Studio 解决方案资源管理器中,右键单击引用。选择浏览,"IronBarcode.dll"

许可 $999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户