edward
2014-11-2 20:15:08
6/2351

1. 什么是GS1 Datamatrix码?


GS1 Datamatrix不是普通的Datamatrix,它以Datamatrix编码为基础,符合GS1规则。GS1码是由国际物品编码组织(GS1)制定的一种编码系统,该系统能在全球范围内对货物、服务、资产和位置进行唯一标识,并将这些信息进行编码。


1-1)请在开始之前在手机上安装好能识别GS1 Datamatrix码制的APP,此APP来源请问您的客户索取或从中国物品编码中心 (ancc.org.cn)上下载安装。


1-2)APP扫描后会出现下面类似内容,否则的话要么您的APP不能识别GS1 Datamatrix,要么您的码图不是GS1 Datamatrix。“类似”的意思是不同的APP显示界面会有所不同。


WeChat Image_20210120081703.jpg


1-3)GS1条形码的官方说明文件下载


有关GS1条形码的知识和概念,请务必阅读下面这本手册。


2024-9-3 13-25-11.png

下载地址:

(英文版)

www.haiyaatech.com/support/download/temp/doc/GS1_DataMatrix_Introduction_and_technical_overview.pdf

(中文版)

www.haiyaatech.com/support/download/temp/doc/2018-GS1 DataMatrix.pdf



1-4)GS1条形码标识符号清单Application Identifier



http://www.haiyaatech.com/bbs/article.asp?Id=1439&page=1




2. 在VariPrint中实现GS1 Datamatrix码制


2-1)制作方法:黑色二维码控件----Data Matrix条形码类型----黑油墨扩展补偿(像素)


aa1.png


2-2)先举例2个,不同处是“黑油墨扩展补偿(像素)”参数设置


举例1:1,0,1,2.4,-2,-1,1,1,0,1.6,1

其中,

1--补偿1个像素

0--默认

1--默认

2.4--尺寸

-2--自动正方形

-1--最优方式

1--GS1

1--添加白边

0--不反显

1.6--X宽度方向缩放

1--Y纵向方向缩放


举例2:0,0,1,20,-2,-1,1,0,0,1,1

0--不设置补偿,因为尺寸够大。

0--默认

1--默认

20--尺寸

-2--自动正方形

-1--最优方式

1--GS1

0--不添加白边

0--不反显

1--X宽度方向缩放

1--Y纵向方向缩放


特别提醒:

  1. 颜色设置必须CMYK。如果默认设置RGB,加白边和XY缩放无效,左上角会出现小的白块(虽然不影响阅读)。

  2. 条码缩放扩展设置:在20210729版本更新后不需要设置,尺寸按参数最后呈现。


2-3)“黑油墨扩展补偿(像素)”参数含义说明


第一个参数:补偿值,  单位是像素。注:一般在小尺寸码图时使用,用来补偿油墨网点扩展导致的图形模糊而无法识别,或阅读等级低。
第二个参数: 0(固定)
第三个参数: 1(固定)
第四个参数: 限制尺寸,单位是mm,根据不同打印分辨率计算最接近这个限制尺寸的条码,不会超过该值,可能小于该值
第五个参数: DataMartix条码Size类型
-2: 根据内容自动计算正方形Size
-1: 根据内容自动计算长方形Size
0 :  SIZE 10 * 10
1 :  SIZE 12 * 12
2 :  SIZE 14 * 14
3 :  SIZE 16 * 16
4 :  SIZE 18 * 18
5 :  SIZE 20 * 20
6 :  SIZE 22 * 22
7 :  SIZE 24 * 24
8 :  SIZE 26 * 26
9 :  SIZE 32 * 32
10 :  SIZE 36 * 36
11 :  SIZE 40 * 40
12 :  SIZE 44 * 44
13 :  SIZE 48 * 48
14 :  SIZE 52 * 52
15 :  SIZE 64 * 64
16 :  SIZE 72 * 72
17 :  SIZE 80 * 80
18 :  SIZE 88 * 88
19 :  SIZE 96 * 96
20 :  SIZE 104 * 104
21 :  SIZE 120 * 120
22 :  SIZE 132 * 132
23 :  SIZE 144 * 144
24 :  SIZE 8  * 18
25 :  SIZE 8  * 32
26 :  SIZE 12 * 26
27 :  SIZE 12 * 36
28 :  SIZE 16 * 36
29 :  SIZE 16 * 48

第六个参数:编码类型
  最快速         = -2
  最优方式       = -1
  Ascii          =  0
  C40            =  1
  Text           =  2
  X12            =  3
  Edifact        =  4
  Base256        =  5

第七个参数:
1-- GS1 Datamatrix
0-- DataMatrix

第八个参数:

1-四周添加白边

0-四周不添加白边

注意:为了应对ripping精度误差,在做特别小的Datamatrix码是一定要四周添加白边。  

第九个参数:

1-黑白反显

0-黑白不反显

第十个参数:

X方向的缩放比例

第十一个参数:

Y方向的缩放比例



2-4)具体制作方法


  1. 用黑色二维码控件建立可变栏位。

  2. 用表达式关联相关数据(注:数据必须处理到与GS1相符的格式要求,如果不是GS1,则没有特别要求)。

  3. 到右侧“条码”属性中,选择“Datamatrix”条码类型,然后在“黑油墨扩散补偿(补偿)”选项中,输入上述11个参数,每个参数用英文逗号分隔。注:现在扩充到最多11个参数,基本囊括了GS1 Datamatrix和Datamatrix用到的所有相关参数。

  4. 其他属性一般情况下无需设置。

  5. 完毕。

 

aa1.png

aa2.png

 

 














edward

3. GS1 Datamatrix的内容准备


注:由于最终用户或品牌商提供的数据文件各种各样,所以有必要就如何预处理数据或如何在VariPrint中填写内容的格式做下列说明。请根据您的数据格式找到对应的预处理或格式填写方式。



3-1)如果原始数据中有<GS> <RS> <EOT>这样的分隔符号,如何预处理数据? 

版本更新20210120


1)增加ReplaceStringToHex函数,用来处理<GS> <RS> <EOT>...等等GS1 DataMetrix内容字符串中的符号。


举例:ReplaceStringToHex($主数据库.SN$,<GS>,29), 这里的SN字段内容中有<GS>符号,GS实际就是Group Separator, 对应的Dec为29. <RS>对应30,<EOT>对应4。 这里的28,30,4都是十进制数值,对应的Hex十六进制数值为1C,1E和04.


另,下面帖子中谈及的\u001D其实就是插入<GS>分隔符,有的客户数据中数据中会写成《GS》,意思一样。


注:因为ASCII码中超过128的码制不能用ReplaceStringToHex函数,而用下面GSFNC2参数在Setting.ini里面预先设定。原因是超过128的码值在Windows API Unicode转ANSI时会将编码变掉,不适用。


2021-1-20 7-35-40.png


2)在Setting.ini设置

GSFNC1=@@,这个之前版本已有。
GSFNC2=FNC1|232|PAD|129,这个参数最多可增加至5组。特别注意:如果用户数据中PAD是作为内容而不是分隔符的,这个PAD转129的参数设置要删除,否则就不对了。

2021-1-20 7-34-35.png


3-2)如果原始数据中有FNC1这样的分隔符号,如何预处理数据? 


注:内容中有FNC1,还是要预先用@@替换处理掉。PAD就留在那里用新加的参数自动处理。举例:FNC12402Y1FNC180103601DA4050FNC18011032000001PAD,先要做一个参数替换FNC1为@@2402Y1@@80103601DA4050@@8011032000001PAD


做出来的条码,扫描结果如下:


WeChat Image_20210120081703.jpg


 

 

 







edward

3-3)如果原始数据本身就包含“作为内容,如何预处理数据? 


特殊数据案例备注:


如果数据本身就包含“作为内容,怎么办?


例如数据为


010888001073806821IFt*O“v 93c01p


注意:这里有一个隐藏的93之前的分隔符,你看不到它。


步骤1:必须将“”添加到字符串上方的括号中,将其更改为“010888001073806821IFt*O”v 93c01p“,为什么?因为在VariParint中,它将默认将“”视为分隔符。有一个“在O和v之间,O”v。


怎么做?

如果客户数据是csv,先把这个数据文件的后缀名手工从csv改为txt。

打开Excel打开上面的txt文件,然后再次保存到csv中,如果原始数据已经包含引号“或,逗号符号,这个过程会自动将这些数据两端自动添加“”。

但通过这种方式,数据将更改为“010888001073806821IFt*O”v 93c01p“,它将隐藏的隐藏分隔符更改为93之前的空格。因此,我们需要在VariPrint内部的步骤2中处理此空间


2023-12-21 20-18-22.png


步骤2:创建一个参数,将上面的空格改回隐藏分隔符代码29,参数如下,注意:

ReplaceStringToHex($Key database.Column_1$, ,29), 参数名字 A1,

Weixin Image_20231221202002.png



注意:如果数据中本身有逗号“,”的,您的参数设置就要在字段名称左右打上双引号,以避免与参数中的分隔符相冲突。

举例:如数据(注:都是不可见的符号)

0104660258550540215!(Mr&ec,iLAG91EE1092asnDcFJAINEGVW2mBpF99zcm+UFRUeCtVnsNwT5rkzI=

经过保存为csv后变为

"0104660258550540215!(Mr&ec,iLAG91EE1092asnDcFJAINEGVW2mBpF99zcm+UFRUeCtVnsNwT5rkzI="


参数A1的设置为:ReplaceStringToHex("$主数据库.Code$", ,29),假设字段名称为Code。

image.png


3-4)如果原始数据本身就包含隐藏符合,如何预处理数据? 


如果客户数据为

0104627166507189215!&;vJGHV?WNX93nMbC,X与93之间有一个隐藏符号,贴子上肉眼看不到,但通过鼠标移动可感觉这里有一个隐藏字符。


用UltraEdit打开数据,转十六进制模式查看,看到93前面的隐藏字符为1D,就是Group Separator的十六进制字符。所以不用再用ReplaceCharToHex或ReplaceStringToHex函数处理了,直接使用带了“”的处理好的数据做GS1即可。

2024-1-23 17-04-07.png


步骤3。设计GS1 Datamatrix,将表达式设置为@@$参数.A1$,并相应地设置GS1 Datamatrix


2023-12-21 20-20-58.png


2023-12-21 20-22-14.png



结束。









edward

3-5)如何在数据中间添加@@作为分隔,有何原则?


20221011记录,


最近有客户用某个医疗健康用的APP扫描用下列数据组成的GS1 Datamatrix


010123410562958317271101101220926004240000001


如果数据做成@@0101234105629583@@17271101@@101220926004@@240000001,用这个APP阅读始终报错


改为@@010123410562958317271101101220926004@@240000001,就ok了。


设置说明:


01是GTIN标识符号,后面跟14位数据,这里是01234105629583,17是Expiration Data标识复合,后面跟6位数据,这里是271101,10是Batch or Lot Number标识复合,后面跟数据的长度补丁,允许长短,最大到20位,何时结束不知道,所以需要新加一个@@来断数据,240是Additional Item Indentifier标识符合,后面跟数据的长度补丁,允许长短,最大到30位,因为在后面没有其他标识符号了,所以后面就不用@@断数据了。


3-6)如果原始数据中有\u001D这样的分隔符号,如何预处理数据? 


举例1:


用户数据:010466005427402221G0kdLKrupIVJ5\u001D2406404\u001D91ffd0\u001D928N9WSKs9ag1f8Ysejilmd72n4JDPF2i8IvEJy5zKdHNWY82yJCo+4RjPgzfcydtLjYyATX4RxL1/N/rnWsX1kQ==

其中\u001D不显示。


我们做一个参数,用Replacetext函数,把\u001D替换为@@

a2.png


然后设置GS1 Datamatrix码的内容

a3.png

a4.png





edward

3-6)如果原始数据中有#这样的分隔符号,如何预处理数据? 


举例2:


用户数据:0104680071197531215&zyyX(a2nPAD#91EE09#92USWdQA+LMWHB7duGj0nh3324gAEYdCue1nAVOSEHYbs=


其中#不显示。


我们做一个参数,用Replacetext函数,把#替换为@@。本例中为ReplaceText($主数据库.Serial$,1,#,@@)

2024-3-14 11-55-32.png

然后用这个参数作为条码的内容

2024-3-14 11-55-57.png




edward

4. 如何提升Datamatrix或GS1 Datamatrix的输出速度?


特别是采用GS1 Datamatrix方式参数第一位设置了油墨补偿值后。


主要2个地方需要设置:


  1. Datamatrix码的颜色设置,用Black专色表示,而不是单单K100。方法:选中码图,“填充叠印”-真-假。如果用户已购买“随机彩色条形码”选件,也可以直接到这个模组下,选择“单色随机(专色)”--设置Black的专色黑。

  2. PDF处理器=Acrobat,先决条件:电脑系统中必须安装Acrobat完整版。安装完毕后,到Distiller中,“首选项”--“安全性”--选勾“信任任何通过Acrobat Distiller处理的文件”。


edward
2020-1-1 10:46:19

5. 如何对Datamatrix或GS1 Datamatrix的码图形状做任意比例的缩放?


从20191230版本起,支持GS1 Datamatrix的变形缩放。


本例中


1,0,1,2.5,-2,-1,0,0,0,1.6,1


2.5是正常DM的单边长度,最后增加加了2个参数:1.6是X方向缩放比例,1是Y方向缩放比例。


因为要做旋转,所以旋转角度设为90


aa1.png




第 1/1 页

发表回复

发表