使用bwip-js gs1datamatrix解析FNC1字符

时间:2018-10-24 03:40:52

标签: barcode gs1-datamatrix

我想要的是使用bwip-js API并传入FNC1来生成GS1数据矩阵。

我通过邮递员尝试了他们网站(Online Barcode API documentation)中提供的示例,该示例返回了正确的值(即扫描结果中没有FNC1字符)。

他们的示例请求(正确解析FNC1)

http://bwipjs-api.metafloor.com/?bcid=code128&text=%5EFNC1011234567890&parsefnc&alttext=%2801%291234567890

但是,当我将示例用于具有FNC1值的GS1数据矩阵时,会在扫描结果中获得FNC1。因此,它无法正确解析FNC1值。

我的请求(无法正确解析FNC1):

http://bwipjs-api.metafloor.com/?bcid=gs1datamatrix&text=%5EFNC1(01)03453120000011(17)120508(10)ABCD1234(410)9501101020917&parsefnc&alttext=%2801%291234567890

我已经阅读了所有有关其生成器和FNC1字符的文档和文章,但没有提供任何线索。

我在这里做错什么了吗?

更新:

BWIP-JS的输入:

(01)99312650999998(91)111JD507496002000960300(420)2164(8008)181102113732

生成的图像:

enter image description here

2 个答案:

答案 0 :(得分:2)

bwip-js中的代码是PostScript,我不是该语言的专家。但是,请尝试从您的请求中删除“ FNC1”,看看是否可行。

我认为它正在尝试在看到AI时将FNC1自动添加到任何GS1 Datamatrix(请参阅第23903行的开始部分),而对于Data Matrix,则必须明确请求它。

答案 1 :(得分:0)

FNC1字符对于控制台是不可见的,因此很难看到它,但是我设法使用以下命令将其从原始字符串中解析出来:

var decoded = decodedString.split(decodeURI("%1D"));

如果您在括号中得到FNC代码,则可以使用REGEX删除它们。