You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ZXing.Net强制生成正方形的Data Matrix码?

ZXing.Net生成正方形Data Matrix码解决方案

码形差异原因

Data Matrix ECC 200标准本身支持正方形和矩形两种码形,ZXing.Net默认会根据输入内容的长度自动匹配容量最合适的码形版本:当内容长度匹配正方形版本容量时输出正方形,匹配矩形版本容量时就会输出扁平矩形,属于默认自动适配的正常表现。

强制生成正方形的方法

可以通过编码配置强制指定码形为正方形,无需修改输入内容,核心配置为DatamatrixEncodingOptions的SymbolShape参数,示例代码如下:

using ZXing;
using ZXing.Datamatrix;
using ZXing.Common;

// 配置编码参数
var encodeOptions = new DatamatrixEncodingOptions
{
    // 强制输出正方形码形
    SymbolShape = DataMatrixSymbolShape.ForceSquare,
    // 可选:限定正方形的尺寸范围,避免内容过长导致生成失败
    MinSize = new Dimension(10, 10),
    MaxSize = new Dimension(144, 144),
    ECC = 200
};

// 初始化条码生成器,此处Bitmap可根据你实际使用的渲染载体替换
var barcodeWriter = new BarcodeWriter<Bitmap>
{
    Format = BarcodeFormat.DATA_MATRIX,
    Options = encodeOptions
};

// 生成条码
var resultBitmap = barcodeWriter.Write("待编码的文本内容");

注意事项

  • 强制正方形模式下,如果输入内容的长度超过你配置的最大正方形版本的可容纳上限,会抛出编码错误,需要根据业务场景的输入长度上限提前设置合理的MaxSize参数。
  • 如果你使用的是较老版本的ZXing.Net,SymbolShape的枚举值可能命名不同,找不到ForceSquare时可以查找对应版本中表示强制正方形的枚举项即可。

内容的提问来源于stack exchange,提问作者Aidal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:15:03