使用 ZXing.Net 生成 GS1 DataMatrix

Generating GS1 DataMatrix using ZXing.Net

我需要的

就是生成一个可以工作的GS1 DataMatrix,使用这个测试内容:

(240)1234567890(10)AA12345(11)123456(21)1(96)1234567

步数

我已经从这里下载了 nuget 包:

我创建了一个使用此代码的控制台应用程序:

private static void DoGs1DataMatrixStuff()
{
    var writer = new BarcodeWriter
    {
        Format = BarcodeFormat.DATA_MATRIX
    };

    writer
        .Write("(240)1234567890(10)AA12345(11)123456(21)1(96)1234567")
        .Save(@"C:\Temp\barcode.png");
}

没有明显的特定 GS1_DataMatrix 格式我可以使用...

这给了我

如果我的智能手机上的扫描仪应用读取它,它会给出我最初呈现的文字内容,而不是我期望的 GS1 格式的 FNC1:

(240)1234567890(10)AA12345(11)123456(21)1(96)1234567

虽然应该是

2401234567890 10AA12345 11123456211 961234567

从另一个来源(不是我可以使用的来源)我得到了这个条形码:

使用我的智能手机应用程序,这会读入正确的数据。

问题

How can I recreate this working GS1 datamatrix, using ZXing.Net?

另见

这个 link,Chris Bahns 提出了我同样的担忧,但他的请求没有得到有效的答复。

您必须使用带 ASCII 字符 29(GS - 组分隔符)的格式化字符串:

< GS >2401234567890< GS >10AA12345< GS >11123456211< GS >961234567

(将“”替换为 ASCII 29)

ZXing.Net 从 0.15 版本开始支持带有 ASCII 编码器的 GS 符号。它用生成的数据矩阵图像中的 FNC1 代码字 (232) 替换 ASCII 29 值。

这只是低水平的支持。没有内置 class 或类似的东西可以理解具有固定或可变长度的 AI(应用程序标识符)(类似于 vCards、vEvent、ISBN 等的结果解析器 classes)。