IRONSOFTWAREHOME
USING IRONBARCODE

C# 数据矩阵生成器——包含代码示例的完整教程

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

数据矩阵条形码将大量的编码数据压缩到一个很小的物理区域内,因此成为药品标签、电子元件标记以及在空间有限的库存管理系统中跟踪物品的首选。 本教程将指导您如何在C#中使用IronBarcode生成Data Matrix条码、定制其外观、编码不同的数据类型,并将它们导出为各种文件格式——所有这些都使用简单的、适合生产环境的代码。

第一步:
arrow pointer

数据矩阵条形码有何特别之处?

数据矩阵条形码是二维符号,它将数据编码到排列成行和列的黑白点阵网格中。 与传统的线性条形码(如 UPC 或 EAN)不同,它们可以在 10 x 10 个模块大小的空间内存储多达 2,335 个字母数字字符或 3,116 个数字。 由于内置的​​里德-所罗门纠错功能,即使符号损坏高达 30%,现代条形码扫描器也能准确读取它们。

这些特性使得 Data Matrix 成为标记小型零件、邮政条形码和电子元件的理想选择,也适用于医疗保健和物流中心的标签制作。 医疗保健行业依赖GS1数据矩阵标准进行药品追踪,而制造商则将其嵌入生产线,用于在全球范围内识别产品。由于单个条形码可以存储大量数据,因此如今已被国际上各个行业广泛采用,以实现完整的应用追溯。

ISO/IEC 16022 标准规范了数据矩阵编码,定义了IronBarcode默认使用的 ECC200 变体。 ECC200 提供所有 Data Matrix 版本中最有效的纠错能力和最大的数据容量,使其成为新部署的正确选择。

数据矩阵与常用条形码格式
翻译格式翻译类型最大字符数错误纠正典型用例
数据矩阵(ECC200)二维2,335 个字母数字里德-所罗门(约30%)医药、电子、物流
二维码二维4,296 个字母数字里德-所罗门(高达 30%)网址、营销、支付
UPC-A一维12位数字None零售产品标识
Code 128一维约50个字符仅校验和航运、一般物流

如何在C#项目中安装条码库?

使用NuGet包管理器安装IronBarcode只需不到一分钟。 在 Visual Studio 中打开软件包管理器控制台并运行:

PM > Install-Package BarCode

C#中的Data Matrix生成器:使用IronBarcode的完整指南:图片1 - 与Data Matrix生成器相关的5张图片中的第1张

或者,在NuGet包管理器 GUI 中搜索Iron Software的BarCode 。 安装完成后,将命名空间添加到您的 C# 文件中:

using IronBarCode;

这就是全部的准备工作了。 IronBarcode按照 ISO/IEC 16022 标准在内部处理所有复杂的 Data Matrix 编码,因此您可以专注于应用程序逻辑。 有关离线安装或自定义包源等其他设置选项,请参阅IronBarcode安装指南高级NuGet安装页面

支持的目标框架

IronBarcode 的目标平台为.NET 10、 .NET 8、 .NET 6、 .NET 5、 .NET Standard 2.0 和.NET Framework 4.6.2 及更高版本。 如果您的项目面向这些框架中的任何一个,则NuGet包无需额外配置即可安装。

如何创建您的第一个数据矩阵条形码?

生成 Data Matrix 条形码只需要一行代码:

// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");

此代码创建一个Data Matrix条码,编码文本BarcodeWriterEncoding.DataMatrix告诉IronBarcode使用Data Matrix格式。 生成的条形码会自动应用 ECC200 规范,该规范包含内置纠错功能,可确保在实际条件下可靠扫描。

条形码输出

C#中的Data Matrix生成器:使用IronBarcode的完整指南:图片2 - 第一个条码输出

如需立即在应用程序中使用,请将条形码检索为位图或直接导出为 PDF:

// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");

IronBarcode支持导出为 PNG、JPEG、BMP、GIF、TIFF、SVG 和 PDF 格式。 您还可以创建条形码并将其添加到现有的 PDF 文档中,以便将其嵌入到采购订单、发票或发货清单中。

数据矩阵条形码可以编码哪些数据类型?

Data Matrix 支持多种编码模式,每种模式都针对不同的字符集进行了优化。 IronBarcode会根据您提供的内容自动选择最高效的模式:

// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");

数字数据采用紧凑的编码模式,与字母数字文本相比,可减小条形码尺寸。 二进制编码无需手动配置即可处理特殊字符和Unicode文本。 IronBarcode会自动选择最有效的编码模式,因此您无需明确指定。

输出

这里,所有四种数据类型都已成功编码为有效的 Data Matrix 条形码。

C#中的Data Matrix生成器:使用IronBarcode的完整指南:图片3 - 使用4种不同数据类型创建的Data Matrix条码

对于编码选项和字符集支持的更深入查看,请参阅IronBarcode编码文档条码数据类型参考

如何自定义数据矩阵条形码的外观?

IronBarcode提供了一整套条形码自定义选项,用于控制尺寸、颜色、注释和边距:

// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");

这些定制化服务有助于满足企业品牌推广要求或特定标签标准。 方法ResizeTo保持正确的模块比例,这是确保Data Matrix在任何扫描器距离下可读的关键。 颜色变化是为了适应特殊的印刷工艺或承印物限制,例如彩色标签或金属材料。 由SetMargins设置的静默区边距符合ISO/IEC 16022规范中定义的最小空白区域要求。

C#中的Data Matrix生成器:使用IronBarcode的完整指南:图片4 - 自定义Data Matrix输出

选择合适的条形码尺寸

Data Matrix 条形码的最小可读尺寸取决于扫描器和打印分辨率。 对于一般用途的扫描,建议使用至少 0.3 毫米的模块尺寸。 在 300 DPI 打印分辨率下,500 像素的条形码尺寸约为 42 毫米见方——足以满足可靠的手持扫描需求。 对于较小的标签,增加 DPI 或减少数据有效载荷,使符号保持在可扫描的尺寸范围内。

如何批量生成多个条形码?

批量生成功能减少了创建大量数据矩阵码(用于生产运行、运输标签或序列化库存)所需的工作量:

// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}

这种模式适用于需要大量标签集的物流和医疗保健工作流程,每个标签集都与一个唯一的标识符相关联。 对于 Web 应用程序,直接在 PDF 文档上添加条形码或将其作为字节数组进行流式传输,可以实现实时标签生成,而无需保存中间文件。

C#中的Data Matrix生成器:使用IronBarcode的完整指南:图片5 - 批量Data Matrix条码创建

面向大批量数据的异步和多线程处理

当生成数千个条形码时,同步处理会成为瓶颈。 IronBarcode提供异步和多线程处理功能,允许您在多个 CPU 核心上并行生成条形码。 对于 10,000 个标签的批量处理,与顺序循环相比,并行处理可以将总生成时间减少一个数量级。

对于高吞吐量场景,可以考虑使用IronBarcode 的 PDF 冲压 API将条形码分组到 PDF 表格中,而不是保存数千个单独的图像文件,这可能会在 Windows 和 Linux 部署中造成文件系统开销。

如何读取和验证数据矩阵条形码?

生成条形码只是工作流程的一半——验证扫描器能否正确读取条形码才是质量控制闭环的最后一步。IronBarcodeIronBarcode条形码读取器,可让您在生成条形码后立即对其进行解码:

// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"翻译格式: {result.Barcode翻译类型}");
}

这种往返验证模式在受监管的行业(例如制药行业)中尤其有价值,因为《药品供应链安全法案》(DSCSA) 规定处方药包装上的序列化条形码必须既是机器可读的,又是格式正确的。 在生成流程中运行回读检查,可以在标签到达生产线之前捕获编码错误。

对于更高级的读取场景,请参阅IronBarcode读取文档从PDF读取条码指南

常见的扫描兼容性注意事项

不同扫描器固件版本对数据矩阵符号的解读存在差异,对静区和模块对比度的容忍度也不同。如果目标设备是旧款手持扫描器,则应增大模块尺寸,使用高对比度的黑底白字,并确保静区宽度至少为两个模块的宽度。GS1应用标识符指南提供了在单个数据矩阵符号中编码供应链标识符(例如批号、有效期和 GTIN)的模式。

下一步计划是什么?

在C#中使用IronBarcode生成Data Matrix条码遵循一致的模式:安装NuGet包,调用BarcodeWriterEncoding.DataMatrix,应用任何需要的自定义并导出为目标格式。 同一个 API 可以处理从单个条形码原型到大批量流水线的所有操作。

以下是进一步推进此项目的推荐路径:

  • 探索条码读取IronBarcode读取指南涵盖了从图像、PDF和实时摄像头流中解码条码。 -尝试其他 二维 格式: IronBarcode还使用相同的 API 生成QR 码、PDF417、Aztec 和所有主要的 一维 格式。 -在文档中嵌入条形码PDF 盖章教程展示了如何以编程方式向现有 PDF 添加条形码。 -利用异步处理进行扩展:查看异步和多线程指南,以并行化大型批处理作业。 -查看许可IronBarcode许可页面列出了从开发者到 OEM 再分发的各种选项。

开始免费试用以在不受限制的情况下测试所有功能,或查看完整的IronBarcode文档以获取详细的API参考和附加代码示例。

NuGet使用 NuGet 安装

PM > Install-Package BarCode

Install IronBarcode by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
Curtis Chau
技术作家

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

...
阅读更多

相关文章

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 天试用密钥
无需信用卡或创建账户