使用 bwip-js gs1datamatrix 解析 FNC1 字符

问题描述 投票:0回答:2

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

我通过 Postman 尝试了他们网站(在线条码 API 文档)中提供的示例,它返回了正确的值(即扫描结果中没有 FNC1 字符)。

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

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

然而,当我将我的示例用于 GS1 数据矩阵时,使用 FNC1 值,我在扫描结果中得到了 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

生成的图像:

barcode gs1-datamatrix gs1-ai-syntax bwip-js
2个回答
2
投票

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

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


0
投票

FNC1 字符在控制台中是不可见的,因此很难看到,但我已经设法使用以下方法从原始字符串中解析出来:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.