如何创建二维条形码

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

说到在狭小空间内存储详细信息,二维条形码是行业内的权威解决方案。 它们非常坚固耐用,可容纳数千个字符,即使在撕裂、划伤或标记的情况下也能保持可读性。此外,由于它们可以从任何角度扫描,而且不要求完全对齐,因此这些 BarCode 是快节奏物流和移动扫描应用的理想选择,在这些应用中,效率是关键。

主要的挑战在于根据您的具体需求选择正确的格式。 您可能需要阿兹台克代码的无边界紧凑设计用于移动票务,需要数据矩阵的工业精度用于微小的电子元件,或者需要 PDF417 的海量离线存储容量用于驾驶执照和身份证。 有了 IronBarcode,您可以放心地生成所有这些格式,因为您知道您的流程是简化和可靠的。

在本指南中,我们将介绍如何生成 QR 码、MaxiCode 和新的 rMQR 等最重要的二维格式,以及它们在 IronBarcode 中的日常使用案例。

开始使用 IronBarcode

今天在您的项目中使用 IronBarcode,免费试用。

第一步:
green arrow pointer


创建二维条形码

二维条形码(如 QR 码)使用方格或圆点网格在水平和垂直方向上存储信息。 相比之下,线性一维 BarCode 使用单行来存储数据。 标准的 BarCode 仅限于几个数字或字母,而二维条形码可以保存大量数据,如网络链接、ID 详情或整个文件,且无需数据库连接。

这种坚固耐用的设计也使得二维 BarCode 非常耐用。 得益于内置的纠错功能,即使条形码被刮花、撕裂或做了标记,它们仍然可以被扫描,而一般的条形码往往会被扫描仪误读。 这使得二维 BarCode 成为无法保证完美条件的恶劣环境或移动扫描的最佳选择。 有关如何微调纠错的详细信息,请参阅 此处

让我们来了解一下 IronBarcode 所支持的所有二维条码格式,并展示创建它们是多么简单明了,以及它们的常见用途。

Aztec

阿兹台克代码是一种高密度二维矩阵,通常通过符号中心的正方形牛眼图案来识别。

与其他条形码不同,阿兹台克代码的独特之处在于它不需要静区。 最常用于移动票务,如电子登机牌和医疗保健病人腕带。

代码

IronBarcode 可直接生成阿兹台克代码:我们在调用 Create 方法时将 BarcodeEncoding.Aztec 作为第二个参数传递,然后将结果作为图像导出。

:path=/static-assets/barcode/content-code-examples/how-to/create-aztec-barcode.cs
using IronBarCode;

// Create the Aztec barcode
GeneratedBarcode AztecCode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Aztec);

// Display the value below the barcode
AztecCode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
AztecCode.SaveAsJpeg("aztec-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

阿兹台克输出示例

数据矩阵

数据矩阵(Data Matrix)是一种紧凑的二维矩阵,通常通过其外围的 L 形查找器图案来识别。

Data Matrix 的独特之处在于其极佳的耐久性以及可缩小到微小尺寸用于直接部件标记 (DPM) 的能力。 最常用于工业跟踪,如手术器械、电子元件和航空航天部件,因为这些地方的空间非常有限。

代码

IronBarcode 使生成 DataMatrix 代码变得简单明了:我们在调用 Create 方法时将 BarcodeEncoding.DataMatrix 作为第二个参数传递,然后将结果导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-datamatrix-barcode.cs
using IronBarCode;

// Create the DataMatrix barcode
GeneratedBarcode DataMatrix = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.DataMatrix);

// Display the value below the barcode
DataMatrix.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
DataMatrix.SaveAsJpeg("dataMatrix-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

DataMatrix 输出示例

MaxiCode

MaxiCode 是一种固定大小的二维矩阵,其圆形牛眼图案由一个六边形网格包围。

MaxiCode 的独特之处在于,无论其存储的数据是什么,它都能保持不变的 1 英寸物理尺寸,这使其最适合在高速传送带上读取。 最常用于物流和供应链管理,特别是 UPS 运输标签上的自动包裹分拣和路由选择。

代码

IronBarcode 使生成 MaxiCode 变得简单明了:我们在调用 Create 方法时将 BarcodeEncoding.MaxiCode 作为第二个参数传递,然后将其导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-maxicode-barcode.cs
using IronBarCode;

// Create the MaxiCode barcode
GeneratedBarcode MaxiCode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.MaxiCode);

// Display the value below the barcode
MaxiCode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
MaxiCode.SaveAsJpeg("maxiCode-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

MaxiCode 输出示例

PDF417

PDF417 是一种堆叠式线性条形码,其宽大的矩形外观类似于数字静态块,是一种常见的条形码。

PDF417 的独特之处在于它可以作为便携式数据文件,无需连接数据库即可存储大量综合数据,如照片、姓名和生物识别记录。 最常用于政府身份识别,如驾驶执照背面和打印的航空公司登机牌。

代码

IronBarcode 使生成 PDF417 变得简单明了:我们在调用 Create 方法时将 BarcodeEncoding.PDF417 作为第二个参数传递,然后将其导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-pdf417-barcode.cs
using IronBarCode;

// Create PDF417 barcode
GeneratedBarcode PDF417code = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.PDF417);

// Display the value below the barcode
PDF417code.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
PDF417code.SaveAsJpeg("pdf417-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

PDF417 输出示例

QRCode

QR 码是一种高密度二维矩阵,通常通过其四角的三个独特的方形查找器图案来识别。

QR 码的独特之处在于其对消费者的通用性,因为它是几乎所有现代智能手机照相应用程序原生支持的唯一一种二维符号,无需额外软件。 最常用于营销和公众参与,如链接到网站和数字餐厅菜单,以及促进移动支付。

代码

IronBarcode 使生成 QR 代码变得简单明了:我们在调用Create方法时将BarcodeEncoding.QRCode作为第二个参数传递,然后将其导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-QRCode.cs
using IronBarCode;

// Create QR Code
GeneratedBarcode QRcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.QRCode);

// Display the value below the barcode
QRcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
QRcode.SaveAsJpeg("QRcode.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

QRCode 输出示例

MicroQRCode

微型二维码是一种小型化的二维矩阵,通常通过左上角的单方格查找器图案进行识别。

Micro QR 码的独特之处在于它能够通过减少开销来适应极其狭小的空间,与标准的四个静区相比,它只需要两个静区模块,但却牺牲了数据容量以获得物理上的紧凑性。 最常用于标记小型电子元件、印刷电路板 (PCB) 和工业部件,因为这些地方的标准 QR 码尺寸太大,无法安装。

由于其微型化的尺寸,您能容纳的字符数是有限的。 最大版本(M4)最多只能包含 21 个字母数字字符或 35 个数字。

代码

IronBarcode 使生成 MicroQRCode 变得简单明了:我们在调用 Create 方法时将 BarcodeEncoding.MicroQRCode 作为第二个参数传递,然后将其导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-microQR.cs
using IronBarCode;

// Create a Micro QR Code
GeneratedBarcode microQRcode = BarcodeWriter.CreateBarcode("IRON-1234", BarcodeEncoding.MicroQRCode);

// Display the value below the barcode
microQRcode.AddBarcodeValueTextBelowBarcode();

// Save to file as Jpeg
microQRcode.SaveAsJpeg("microQRCode.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

MicroQR 代码输出示例

故障排除

如您所见,如果提供的输入字符串超过 35 位数字或 21 个字母数字字符,IronBarcode 就会出错。

MicroQR 代码异常

RMQRCode

矩形微 QR 码 (rMQR) 是一种专门的二维矩阵,通常以其细长的条状形状和左上角的单个查找器图案来识别。

rMQR 的独特之处在于它能够适应方形代码无法适应的狭长空间,例如边框的薄边或曲面。 它在 Micro QR 的小尺寸和标准 QR 码的大容量之间架起了一座桥梁,只需要两个模块的静区。 最常用于标记电缆、试管、医用小瓶和高度严重受限的薄型电子元件。

由于其矩形设计,它可以在不增加垂直占地面积的情况下水平拉伸以增加容量。 最大版本(R17x139)最多可包含 219 个字母数字字符或 361 个数字。

代码

IronBarcode 使生成 RMQRCode 变得简单明了:我们在调用 Create 方法时将 BarcodeEncoding.RMQRCode 作为第二个参数传递,然后将其导出为图像。

:path=/static-assets/barcode/content-code-examples/how-to/create-rmQRcode.cs
using IronBarCode;

// Create a  RmQR Code
GeneratedBarcode rMqrCode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.RMQRCode);

// Display the value below the barcode
rMqrCode.AddBarcodeValueTextBelowBarcode();

// Save to file as Jpeg
rMqrCode.SaveAsJpeg("rmQRcode.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

rmQRcode 输出示例

故障排除

如您所见,如果提供的输入字符串超过 361 位数字或 219 个字母数字字符,IronBarcode 就会出错。

rmQR 异常

不同二维条形码类型概述

名称 翻译格式 常见用法 限制与陷阱
Aztec 代码 矩阵(中心向外)
带有中心 "靶心 "查找器的正方形网格。无需静区。
移动登机牌(苹果钱包)、火车票和医疗保健腕带。
  • 中心损坏:完全依赖于中心查找器;如果 "靶心 "被划伤或扭曲,代码就会失败。
  • 屏幕眩光:高反射手机屏幕在没有优化照明的情况下会使标准扫描仪失明。
数据矩阵 矩阵(L 型)
正方形或矩形。由两侧的实心 "L "边框定义。
电子元件、手术器械和金属上的直接零件标记 (DPM)。
  • 安静区域:严格要求 1 个模块的白色边框。图形触及边缘将导致读取失败。
  • 对比度:闪亮金属(DPM)上的低对比度通常需要专门的照明才能阅读。
MaxiCode 固定尺寸矩阵
精确到 1x1 英寸。六边形圆点,中央为圆形靶心。
UPS 发货标签和高速传送带分拣。
  • 固定尺寸:不能缩小以适应小物品;必须保持 1 英寸高。
  • 打印机质量:低分辨率的热敏打印机经常会扭曲六边形,从而产生 "混叠 "错误。
PDF417 堆叠线性
类似数字静态的宽矩形。容量大(可容纳文件)。
驾驶执照(AAMVA)、身份证和纸质登机牌。
  • 截断:代码较宽;手持扫描仪经常会错过左/右边缘("开始/停止 "模式)。
  • 尺寸增长:当您添加更多数据时,物理尺寸会显著增长。
QR Code 矩阵
具有三种独特找角模式的正方形。
消费者营销、支付、餐厅菜单、Wi-Fi 配对。
  • 静区:需要较大的空白边距(4 个模块宽)才能正常工作。
  • 密度:在没有简短器的情况下对较长的 URL 进行编码会产生密集的 "静态",使手机摄像头难以聚焦。
Micro QR 微型矩阵
只有一个角查找模式的小正方形。
印刷电路板 (PCB)、小型电子元件。
  • 容量限制:最多 ~35 个数字或 21 个字母数字字符。不能包含完整的 URL。
  • 扫描仪支持: 所有标准智能手机相机应用程序均不支持扫描仪。
rMQR 矩形矩阵
窄长条。缩小了微型 QR 和标准 QR 之间的差距。
试管、电缆、薄边框、窄产品边缘。
  • 新格式:支持不断增加,但尚未在所有传统扫描仪上普及。
  • 宽高比:严格针对狭窄空间设计;不适合一般使用。

常见问题解答

什么是二维 BarCode?

二维条形码又称二维条形码,是一种矩阵码,可以在两个维度上存储数据,与传统的一维条形码相比,可以容纳更多的信息。

如何用 C# 创建二维 BarCode?

您可以使用 IronBarcode 在 C# 中创建二维条形码,它提供了简单易懂的代码示例和说明,可生成各种格式的条形码。

IronBarcode 可以生成哪些类型的二维条码?

IronBarcode 支持生成多种二维条码格式,包括 QR 码、数据矩阵和 PDF417。

使用 IronBarcode 需要任何特殊软件吗?

无需特殊软件。IronBarcode for .NET 是一个 .NET 库,可轻松集成到您现有的 C# 应用程序中。

是否可以自定义二维 BarCode 的外观?

是的,使用 IronBarcode,您可以自定义二维条码的外观,包括颜色、大小和嵌入式徽标。

IronBarcode 能否读取条形码以及创建条形码?

是的,IronBarcode 既能创建也能读取多种条码格式,是一款适用于条码应用的多功能工具。

二维 BarCode 有哪些常见应用?

由于二维条形码比一维条形码能够存储更多信息,因此常用于库存管理、票务和移动支付等应用中。

如何开始使用IronBarcode?

要开始使用 IronBarcode,您可以从 Iron Software 网站下载该库,并按照文档中提供的步骤说明和代码示例进行操作。

使用 IronBarcode 是否有任何许可要求?

是的,IronBarcode 需要有效的商业使用许可证,可从 Iron Software 网站获取。

我可以将 IronBarcode 与其他 .NET 应用程序集成吗?

当然,IronBarcode 的设计可与其他 .NET 应用程序无缝集成,便于实施和使用。

Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,979,979 | Version: 2025.11 刚刚发布