1

我需要的

就是生成一个可以工作的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

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

在此处输入图像描述

使用我的智能手机应用程序可以读取正确的数据。

问题

如何使用 ZXing.Net 重新创建这个工作的 GS1 数据矩阵?

也见

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

4

1 回答 1

1

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

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

(将“< GS >”替换为 ASCII 29)

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

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

于 2017-04-23T19:13:41.807 回答