文档仅供参考,如有不当之处,请联系本人改正。 一维码种类 \uf0b2 ENA码 —— ENA-13码 —— ENA-8码 \uf0b2 UPC码 \uf0b2 交叉二五码 \uf0b2 三九码 \uf0b2 Code128 文档仅供参考,如有不当之处,请联系本人改正。 ENA码 ENA码是国际物品编码协会在全球推广应用的商品条码,是定长的纯数字型条码,它表示的字符集为数字0~9。 在实际应用中,EAN码有两种版本,标准版和缩短版。标准版是由13位数字组成,称为EAN-13码或长码;缩短版EAN码是由8位数字组成,称为EAN-8码或者短码。 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码 ENA-13码有黑白相间的条形线阵列和表示其代码的13位数字构成。每个代码由两个黑条码和两个白条码相间表示,并且有7个单位模块宽度。一个黑线条(或白线)条的宽度可以是一个模块,也可以是两个模块、三个模块、四个模块, 一个字符黑线条和白线条的宽度之和为七个模块,例如一个两个单位宽度的黑色模块读作11,三个单位宽度的白色模块读作000。 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码结构图 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码各组成部分 \uf070 起始符:条形码符号的第一位字符是起始符,它特殊的条空结构用于识别条形码符号的开始。由3个模块组成。 \uf070 左侧数据符:位于中间分隔符的左侧,表示一定信息的条码字符,由42个模块组成。 \uf070 中间分隔符:位于条码中间位置的若干条与空,用于区分左右侧数据,有5个模块构成。 \uf070 右侧数据符:位于中间分隔符右侧,表示一定信息的条码字符,由35个模块组成。 \uf070 条码校验符:表示校验码的条码字符,用以校验条码符号的正确与否,由7个模块组成。 \uf070 终止符:条形码符号的最后一位字符是终止符,它的特殊的条空结构用于识别条形码符号的结束,由3个模块组成。 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码编码方式 起始符、终止符的编码是相同的,都是用等宽的两个黑线条加一个白线条组成,分别是黑-白-黑。如规定一个模块宽度的黑条对应1,白条对应0,则起始符和终止符的编码为101,中间分隔符的编码为01010。这三种符号的条空排列是固定不变的,比其他条空的长度略长。 文档仅供参考,如有不当之处,请联系本人改正。 前置码读取方法 \uf0b2 左侧数据符有奇、偶性之分,它的奇、偶排列取决于前置符,所谓前置符是国别识别码的第一位F1,该位以消隐的形式隐含在左侧六位字符的奇偶性排列中,这是国际物品编码标准版的突出特点。前置符与左侧六位字符的奇偶排列组合方式的对应关系见下一页,实际上从图里面这种编码规定看出,F1与这种组合方式是一一对应固定不变的。例如:中国的国别识别码为“690-692”,因此它的前置符为“6”,左侧数据符的奇偶排列为“ABBBAA” 文档仅供参考,如有不当之处,请联系本人改正。 前置码和左侧数据奇偶性关系 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码编码 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码计算方法 ① 将数字码从右往左排序(包括校验码)从序号2开始,将所有偶数位的数字代码求和,得出S1; ② S1*3=S2; ③ 从序号3开始,将所有奇数位的数字求和,得出S3; ④ S3+S2=S4; ⑤S5为S4的个位数, C=10-S5,得到校验码C的值。比对校验码和C是否相同,相同则正确。 文档仅供参考,如有不当之处,请联系本人改正。 ENA-13码实例 文档仅供参考,如有不当之处,请联系本人改正。 计算过程 ① 从右往左排列数据3505408413096 ② S1=5+5+0+4+3+9=26 ③ S2=S1*3=78 ④ S3=0+4+8+1+0+6=19 ⑤ S4=78+19=97 ⑥ S5=7 ⑦ D=10-7=3 ⑧ 与校验码一致,所以正确 EAN-13条形码的编码 文档仅供参考,如有不当之处,请联系本人改正。 ENA-8码 ENA-13码有黑白相间的条形线阵列和表示其代码的8位数字构成。左边数据为4个,右边数据3个加一个校验码。验证计算的时候只需要在8位数前面加五个0,然后按照ENA-13码的计算方法计算即可。 文档仅供参考,如有不当之处,请联系本人改正。 UPC码的构成 \uf0b2 UPC由11位数字的通用产品代码和1位校验码组成。产品代码的第1位数字为编码系统字符;中间5位数字表示制造商号,后5位数字为产品代码。UPC码共有A、B、C、D、E等五种版本。 UPC-A也就是UPC标准码,UPC-E则是UPC缩短码,缩短码一般用在商品包装比较小也就是条码位置不够的商品上。 文档仅供参考,如有不当之处,请联系本人改正。 UPC码分类 文档仅供参考,如有不当之处,请联系本人改正。 UPC码编码方式 UPC码采用四种元素宽度,每个条或者空是1 、2 、3或4倍单位元素宽度,黑色代码为二进制中的“1”,白色代码为二进制中的“0”,每个单位元素宽度表示一个二进制数。UPC-A码是一种特殊的ENA-13码,UPC-A码与ENA-13码中的“N1=0”兼容。 文档仅供参考,如有不当之处,请联系本人改正。 UPC码算法 检查码的算法 1. 从国别码开始自左至右取数,设UPC-A各码代号如下: 2. N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 C 3. 则检查码之计算步骤如下: 4. C1 = (N1+ N3+N5+N7+N9+N11)× 3 C2 = N2+N4+N6+N8+N10 5. CC = (C1+C2) 取个位数 C (检查码) = 10 - CC (若值为10,则取0) 文档仅供参考,如有不当之处,请联系本人改正。 交叉二五码 交叉二五码是多用于仓储、运输过程的一类条码。支持0-9十个纯数字字符。不限制条码内容的长度。可以条、空均代码条码字符,属于双向条码。交叉二五码具有自动校验功能,当有检验位的时候,校验位由前面字符经过一定的算法得到。交叉二五码在生成条码时规定条码字符必须是偶数位。如果是奇数位则在字符左侧自动添加一个0。 文档仅供参考,如有不当之处,请联系本人改正。 \uf0b2 交叉二五码起始符与终止符是固定的,起始符为2条2空,均为窄。所以用二进制表示为“0000”;终止符为2条1空(其中第一条为宽单元),用二进制表示为“100”。在交叉二五码中5个 “条”单元或者是5个“空”单元,表示一个条码字符。条空单元有“窄”“宽”之分,条码中的“宽”单元表示二进制中的“1”;“窄”单元表示二进制中的“0” 文档仅供参考,如有不当之处,请联系本人改正。 二五码编译示意图 文档仅供参考,如有不当之处,请联系本人改正。 交叉二五码二进制表示 文档仅供参考,如有不当之处,请联系本人改正。 校验码计算方法 交叉二五码的校验计算方式为: 当条码字符个数为偶数位时,校验位的计算方法为: ① 10的倍数-{[(奇数位的数字之和+(偶字之和)*3] 的个位数} ② 比如说条码字符为236851的偶数位字符,校验位计算法方法为: ③ 奇数位之和=2+6+5=13;偶数位之和*3=(3+8+1)*3=36 ④ 步骤3中两值之和取个数位应该为:13+36=49取个数位为9 ⑤ 最终得到校验位为:10-9=1,校验位为1。 文档仅供参考,如有不当之处,请联系本人改正。 校验码计算方法 当条码字符个数为偶数位时,校验位的计算方法为: ① 10的倍数-{[(偶数位的数字之和<从左至右>)+(奇数位数字之和)*3] 取个位数} ② 比如说51436,它的校验位计算方法就是: ③ 偶数位之和=1+3=4;奇数位之和*3=(5+4+6)*3=45; ④ 步骤3中的两值之和:4+45=49取个位数为:9。 ⑤ 最终得到 校验位为:10-9=1。校验位为1。 文档仅供参考,如有不当之处,请联系本人改正。 三九码 三九码仅有两种单元宽度——分别为宽单元和窄单元,即共有四种单元,粗黑线、细黑线、粗白线、细白线。 每个字符由5条黑线和黑线之间的4条白线条构成,字符间隙是空白线,字符间隙的宽度最大可为细线的10倍,通常取1-2倍,如果太大,识别率下降,甚至可能因码形对称造成误码。每个条码字符共9个单元,其中有3个宽单元和6个窄单元,共包括5个条和4个空。粗细线比例最好在2—3。 39码以“*”字符开始和结束,39码可双向扫描。 文档仅供参考,如有不当之处,请联系本人改正。 可编码的字符集: 1) A~Z和0~9的所有数字字母; 2) 特殊字符:空格、“$”、“%”、“+”、“-”、“.”、“/”; 3) 起始符/终止符。 文档仅供参考,如有不当之处,请联系本人改正。 三九码基本结构 粗黑线代表2,细黑线代表1,粗白线代表b,细白线代表a。39码无固定条长,双向可编译,条码密度取决于条码字符间隔。可以选择是否启用校验码功能,启用的话会增加解码时间。 文档仅供参考,如有不当之处,请联系本人改正。 三九码字符集表 文档仅供参考,如有不当之处,请联系本人改正。 文档仅供参考,如有不当之处,请联系本人改正。 39码校验码计算方法 \uf0b2 a) 为每一个数据字符分配一个数值,如图所示。 \uf0b2 \uf0b2 b) 计算出符号所有数据字符数值的总和。 \uf0b2 \uf0b2 c) 将数值的总和除以43。 \uf0b2 \uf0b2 d)步骤c)所得的余数值在表中对应的字符就是符号校验字符。 文档仅供参考,如有不当之处,请联系本人改正。 实例 对于“CODE 39”数据 计算校验码过程 文档仅供参考,如有不当之处,请联系本人改正。 Code128 \uf0b2 CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。由于CODE128码可表示较全面的字符(数字、字母和符号),在同样长度的条码中可容纳的字符长度较长(高密度),条码长度与字符串长度无明显的敏感性,所以CODE128码是企业内部管理系统最为广泛使用的条码码制。 文档仅供参考,如有不当之处,请联系本人改正。 Code128 文档仅供参考,如有不当之处,请联系本人改正。 Code128码特性 \uf0b2 1、具有A、B、C三种不同的编码类型,可提供标准ASCII中128个字元的编码使用; \uf0b2 2、允许双向扫描; \uf0b2 3、可自行决定是否加上检验位; \uf0b2 4、条码长度可调,但包括开始位和结束位在内,不可超过232个字元; \uf0b2 5、同一个128码,可以由A、B、C三种不同编码规则互换,既可扩大字元选择的范围,也可缩短编码的长度。 文档仅供参考,如有不当之处,请联系本人改正。 Code128码基本结构 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表 文档仅供参考,如有不当之处,请联系本人改正。 Code128 编码表