USING IRONBARCODE C# 数据矩阵生成器——包含代码示例的完整教程 Jordi Bardia 已更新:2026年3月1日 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 数据矩阵条形码将大量的编码数据压缩到一个很小的物理区域内,因此成为药品标签、电子元件标记以及在空间有限的库存管理系统中跟踪物品的首选。 本教程将引导您了解如何使用IronBarcode在 C# 中生成 Data Matrix 条形码,自定义其外观,编码不同的数据类型,并将其导出为各种文件格式——所有这些都使用简单易懂、可用于生产的代码完成。 立即开始使用 IronBarcode。 免费开始 数据矩阵条形码有何特别之处? 数据矩阵条形码是二维符号,它将数据编码到排列成行和列的黑白点阵网格中。 与传统的线性条形码(如 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 1D 12位数字 无 零售产品标识 Code 128 1D 约50个字符 仅校验和 航运、一般物流 如何在 C# 项目中安装条形码库? 使用NuGet包管理器安装IronBarcode只需不到一分钟。 在 Visual Studio 中打开软件包管理器控制台并运行: Install-Package BarCode 或者,在NuGet包管理器 GUI 中搜索Iron Software的BarCode 。 安装完成后,将命名空间添加到您的 C# 文件中: using IronBarCode; using IronBarCode; $vbLabelText $csharpLabel 这就是全部的准备工作了。 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"); // 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"); $vbLabelText $csharpLabel 这段代码会创建一个数据矩阵条形码,编码文本为 PROD-12345-2024,并将其保存为 PNG 文件。参数 BarcodeWriterEncoding.DataMatrix 指示IronBarcode使用数据矩阵格式。 生成的条形码会自动应用 ECC200 规范,该规范包含内置纠错功能,可确保在实际条件下可靠扫描。 条形码输出 如需立即在应用程序中使用,请将条形码检索为位图或直接导出为 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"); // 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"); $vbLabelText $csharpLabel 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"); // 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"); $vbLabelText $csharpLabel 数字数据采用紧凑的编码模式,与字母数字文本相比,可减小条形码尺寸。 二进制编码无需手动配置即可处理特殊字符和Unicode文本。 IronBarcode会自动选择最有效的编码模式,因此您无需明确指定。 输出 这里,所有四种数据类型都已成功编码为有效的 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"); // 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"); $vbLabelText $csharpLabel 这些定制化服务有助于满足企业品牌推广要求或特定标签标准。 ResizeTo 方法保持了正确的模块比例,这对于在任何扫描仪距离下 Data Matrix 的可读性至关重要。 颜色变化是为了适应特殊的印刷工艺或承印物限制,例如彩色标签或金属材料。 SetMargins 设置的静默区裕度满足 ISO/IEC 16022 规范中定义的最小空白要求。 选择合适的条形码尺寸 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); } // 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); } $vbLabelText $csharpLabel 这种模式适用于需要大量标签集的物流和医疗保健工作流程,每个标签集都与一个唯一的标识符相关联。 对于 Web 应用程序,直接在 PDF 文档上添加条形码或将其作为字节数组进行流式传输,可以实现实时标签生成,而无需保存中间文件。 面向大批量数据的异步和多线程处理 当生成数千个条形码时,同步处理会成为瓶颈。 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翻译类型}"); } // 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翻译类型}"); } $vbLabelText $csharpLabel 这种往返验证模式在受监管的行业(例如制药行业)中尤其有价值,因为《药品供应链安全法案》(DSCSA) 规定处方药包装上的序列化条形码必须既是机器可读的,又是格式正确的。 在生成流程中运行回读检查,可以在标签到达生产线之前捕获编码错误。 对于更高级的读取场景,请参阅IronBarcode读取文档和从 PDF 读取条形码指南。 常见的扫描兼容性注意事项 不同扫描器固件版本对数据矩阵符号的解读存在差异,对静区和模块对比度的容忍度也不同。如果目标设备是旧款手持扫描器,则应增大模块尺寸,使用高对比度的黑底白字,并确保静区宽度至少为两个模块的宽度。GS1应用标识符指南提供了在单个数据矩阵符号中编码供应链标识符(例如批号、有效期和 GTIN)的模式。 下一步计划是什么? 使用IronBarcode在 C# 中生成 Data Matrix 条形码遵循一致的模式:安装NuGet包,调用 BarcodeWriter.CreateBarcode 和 BarcodeWriterEncoding.DataMatrix,应用任何所需的自定义项,然后导出为目标格式。 同一个 API 可以处理从单个条形码原型到大批量流水线的所有操作。 以下是进一步推进此项目的推荐路径: -探索条形码读取: IronBarcode读取指南涵盖了从图像、PDF 和实时摄像头流中解码条形码。 -尝试其他 二维 格式: IronBarcode还使用相同的 API 生成QR 码、PDF417、Aztec 和所有主要的 1D 格式。 -在文档中嵌入条形码: PDF 盖章教程展示了如何以编程方式向现有 PDF 添加条形码。 -利用异步处理进行扩展:查看异步和多线程指南,以并行化大型批处理作业。 -查看许可:IronBarcode许可页面列出了从开发者到 OEM 再分发的各种选项。 开始免费试用,即可不受限制地测试所有功能,或者查看完整的IronBarcode文档,获取详细的 API 参考和其他代码示例。 使用 NuGet 安装 PM > Install-Package BarCode 在 IronBarcode 上查看 NuGet 快速安装。超过 1000 万次下载,它正以 C# 改变 PDF 开发。 您也可以下载 DLL。 常见问题解答 什么是数据矩阵条码? 数据矩阵条形码是一种符合 ISO/IEC 16022 标准的二维符号,可在很小的网格内编码多达 2335 个字母数字字符或 3116 个数字。它常用于药品标签、电子产品标识和库存管理。 如何在 C# 中生成 Data Matrix 条形码? 调用 BarcodeWriter.CreateBarcode 方法,传入数据字符串和 BarcodeWriterEncoding.DataMatrixIronBarcode,然后对结果调用 SaveAsImage 或 SaveAsPdf 方法。IronBarcode 会自动处理 ECC200 编码和纠错。 使用 IronBarcode 生成数据矩阵有什么好处? IronBarcode只需一行代码即可生成 ECC200 数据矩阵条形码,自动处理编码模式选择,并可导出为 PNG、PDF、SVG 等格式,无需其他依赖项。 IronBarcode 可以将 Data Matrix 条形码导出为不同的文件格式吗? IronBarcode的。IronBarcode 可以将 Data Matrix 条形码导出为 PNG、JPEG、BMP、GIF、TIFF、SVG 和 PDF 格式。您还可以直接将条形码添加到现有的 PDF 文档中。 是否可以使用 IronBarcode 自定义数据矩阵条码? 是的。IronBarcode 提供IronBarcode来调整尺寸,ChangeBarCodeColor 和 ChangeBackgroundColor 来调整颜色,AddAnnotationTextBelowBarcode 来添加人类可读的文本,以及 SetMargins 来控制静默区域。 数据矩阵 BarCode 特别适用于哪些行业? 数据矩阵条形码广泛应用于制药行业以符合药品供应链安全法案 (DSCSA) 的要求,电子行业以组件识别为目的,物流行业以包裹追踪为目的,以及医疗保健行业以符合 GS1 标准的药品标签为目的。 IronBarcode生成的是哪个版本的 Data Matrix 数据? IronBarcode默认生成 ECC200 数据矩阵条码。ECC200 是当前 ISO/IEC 16022 标准版本,提供最高的数据容量和里德-所罗门纠错功能。 为什么使用 Data Matrix 条形码而不是其他二维条码? 数据矩阵条形码因其在小物理占用空间内具有高数据密度、里德-所罗门纠错功能(可承受高达 30% 的符号损坏)以及在全球受监管行业中得到认可的 ISO/IEC 标准化而备受青睐。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已发布2026年3月8日 为.NET应用程序创建条码专业SDK 一个全面的.NET条码SDK,用于QR码、GS1、数据矩阵等。支持.NET 6-10、Core和Framework。 阅读更多 已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多 已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多 IronBarcode 与 Open Source Barcode Reader .NET 的比较How to Print Barcodes in Crystal Re...
已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多
已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多