使用ZXing.Net生成GS1 DataMatrix

时间:2017-04-21 09:54:05

标签: c# .net barcode zxing datamatrix

我需要什么

使用此测试内容生成有效的GS1 DataMatrix:

  

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

步骤

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

enter image description here

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

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格式......

给了我

enter image description here

如果我的智能手机上的扫描仪应用程序读取,则会提供我最初提供的文字内容,而不是我期望的GS1格式的FNC1格式:

  

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

虽然它应该

  

2401234567890 10AA12345 11123456211 961234567

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

enter image description here

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

问题

  

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

另见

link,克里斯·巴恩斯提出了同样的担忧,但他的要求没有得到有效的答案。

1 个答案:

答案 0 :(得分:1)

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

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

(替换"< GS>"用ASCII 29)

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

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