EAN全名为European Article Number(欧洲商品条码),在1977年时由欧洲几个主要工业国家共同发展出来的,后来变成国际商品条码系统。台湾在1985年加入EAN会员,现在我们买东西时在柜台结帐,服务人员用扫瞄器所读的商品上的条码就是EAN条码。国际商品条码需经过申请,不可自行编码列印。

EAN-13现在称之为GTIN-13条码,属于GS1国际条码系统其中的一种。

备注:GS1国际条码系统包括GTIN-13、GTIN-12(原称UPC)、GTIN-8(原称EAN-8)、GLN、GTIN-14(ITF-14)、SSCC、GS1-128(原称EAN- 128)、GS1 Databar(原称RSS code)、GS1 Data Matrix 等。


首先我们先了解一下EAN条码的基本特性:

1.EAN条码的组成只有数字而已,依结构区分为EAN-13与EAN-8两种编码方式,两者都是固定的字元长度,例如EAN-13由13个数字所组成,EAN-8则为8个数字组成。

2.EAN条码包含一字元检查码,主要是防止资料读取错误。

3.条码结构具有左护线,中线以及右护线,以便区隔条码结构上的差异。


接下来说明EAN-13及EAN-8的字元组成及其意义

EAN-13条码基本结构如下:

图一

EAN-13条码的编码内容,由四个部份组成

1.[国家代码]:前面三码,例如台湾所出的商品为471,香港为489。

2.[厂商代码]:接下来四码是由商品条码策进会核发。

3.[商品代码]:再来的五码为厂商自行编码。

4.[检查码]:最后一码由公式计算而得。


EAN-8条码基本结构如下:

图二

EAN-8条码少了厂商代码,产品代码则缩短为四码,总共只有八个数字。

其编码内容,由三个部份组成︰

1.[国家代码]︰前面三码与EAN-13条码相同,例如872为荷兰代码

2.[商品代码]:再来的四码是由厂商自行编码。

3.[检查码]:最后一码由公式计算而得。


EAN条码之字元编码构造

  在进入EAN编码方式说明前,我们先复习一下每一字元的编码原理。在UPC条码章节我们说明过,UPC与EAN条码的每一字元由2条Space及2条Bar所组合而成,而又细分成7等分,因此能组合不同粗细比例的线条字元,这就是UPC及EAN条码字元编码的基础。UPC与EAN条码均有三种编码型态,如图三所示

图三

  举例来说,以图四所示,在图的上方条码组合成0101111为A Type编码方式的数字"6",而图的下方组​​合成1010000为C Type编码方式的数字"6",两者虽同是"6",但编码的型态却不同,上方的条码其黑色粗线条(bar)由连续性4个细黑线所构成,而下方的条码其白色粗线条(space)则由连续性4个细白线所构成。

图四


EAN-13条码编码方式

我们就以图五来做解说

图五

  最左边我们称之为[左护线],最右边称为[右护线],逻辑型态均为101,列印时两条bar较长,不具任何资料意义,只是做为条码起始及结束识别之用。而在中间的[中线]逻辑型态为01010,列印时两条bar也比较长,也不具​​任何资料意义,其用途主要做区分左资料码与右资料码之用。

左资料码

  EAN-13最左边的一码4 (国家代码第一码),我们称之为导入值,并不属于列印条码的一部份,其功能在于作为左资料码的编码方式设定之用。下表为左资料码的编码规则,编码方式固定由三种编码型态中的A type及B type所组合而成。

表一

例如国家代码第一码4的话,其后面左资料六码的编码方式为ABAABB。

再举个例子,若国家代码第一码6的话,其后面左资料六码的编码方式为ABBBAA。

我们实际用条码来说明

如图五导入码为4,左资料码712302,套入编码方式ABAABB (参阅图三的编码型态A及B type) 。

7--->A type编码规则为0111011

1--->B type编码规则为0110011

2--->A type编码规则为0010011

3--->A type编码规则为0111101

0--->B type编码规则为0100111

2--->B type编码规则为0011011

左资料码等于0111011 0110011 0010011 0111101 0100111 0011011

条码图形为 

右资料码

在中线与右护线之间的6位数条码资料,其中产品代码占5码,最右边一码为检查码,右资料码的编码型态固定用C type (参阅图三之C type) 。

如图五右资料码为310065 (全部用C type编码型态 )

3--->C type编码规则为1000010

1--->C type编码规则为1100110

0--->C type编码规则为1110010

0--->C type编码规则为1110010

6--->C type编码规则为1010000

5--->C type编码规则为1001110

右资料码等于1000010 1100110 1110010 1110010 1010000 1001110

条码图形为 


EAN-13条码检查码计算方式

我们以下面的排列表示EAN 13码

B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 C

B13:表示最左边的国家代码第一码(即导入码)

C:为最右边欲计算出的检查码

步骤一.先将B2,B4,B6,B8,B10,B12的值相加起来,然后乘以3

即T1=(B2+B4+B6+B8+B10+B12) * 3

步骤二.将B3,B5,B7,B9,B11,B13的值相加起来

即T2=(B3+B5+B7+B9+B11+B13)

步骤三.将T1加上T2后,取其个位数,代号为T3

步骤四.最后再以10减去T3,所得的值即为EAN-13的检查码

但假如得到的是10的话(T3=0时),则检查码为0

以图五4712302310065条码来说明

套入以上公式

步骤一.T1=(6+0+3+0+2+7)*3=54

步骤二.T2=(0+1+2+3+1+4)=11

步骤三.T3=T1+T2=65---->取个位数5

步骤四.C=10-T3=5 <----检查码则为5

EAN-13 条码(又称GTIN-13 条码)的更多相关文章

  1. HDU 3652 区间有13并且这样整除13 的数量(数位DP)

    题目:求1-n的范围里含有13且能被13整除的数字的个数. 分析: dfs(len, num, mod, flag) mod记录数字对13取余后的值 len表示当前位数 num==0 不含13且上一位 ...

  2. hdu3652(含有13且能被13整除的数)数位DP基础

    B-number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. 13号中断 int 13(转)

    第一部分      简      介      1,1      一.    硬盘结构简介              1.    硬盘参数释疑              到目前为止,    人们常说的 ...

  4. 13年7月13日CF练习 Codeforces Round #147 (Div. 2)

    这场div2可以说是我见过的比较水的一场吧.基本都是一眼题. 比赛地址http://acm.bnu.edu.cn/bnuoj/contest_show.php?cid=1836 题号是237A-237 ...

  5. 【Python3练习题 019】 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

    后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果.注意,假设分子为a,分母为b,虽然 a = a + b, 但此时a已经变成 a+b 了,所以再给b重 ...

  6. 一维码EAN 13简介及其解码实现(zxing-cpp)

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: 1.  EAN 13码: 由13个数字组成,为EAN的标准编码型 ...

  7. (zxing.net)一维码EAN 13的简介、实现与解码

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EA ...

  8. BarTender软件中GS1-128条码如何制作?

    GS1-128条码是UCC/EAN-128条码的新名字,它只是Code 128的一个特殊子集.GS1-128条码是EAN·UCC系统中唯一可用于表示附加信息的条码,可广泛用于非零售贸易项目.物流单元. ...

  9. 条码知识之十:EAN-128条码(下)

    国际物品编码协会(EAN)和美国统一代码委员会(UCC)将CODE-128码引入EAN/UCC系统,并作如下规定:起始符由一个START A/B/C 加一个辅助字符FNC1构成,以区别普通的CODE- ...

随机推荐

  1. Oracle触发器(trigger):view,schema,database

    视图trigger, instead of 我们知道如果一个view只是由一个table构成,那在view上做啥操作没太多限制.如果view是由多个table组成那在view上做啥unpdate,in ...

  2. 视频主观质量评价工具:MSU Perceptual Video Quality tool

    MSU Perceptual Video Quality tool是莫斯科国立大学(Moscow State University)的Graphics and Media Lab制作的一款视频主观评价 ...

  3. o怎么样racle输入dmp数据库文件

    Oracle进出口数据imp/exp等价物oracle数据恢复和备份. exp命令可以从远程数据库传输数据server出到本地的dmp文件,imp命令能够把dmp文件从本地导入到远处的数据库serve ...

  4. 启用Spring quartz定时器,导致tomcat服务器自动停止

    在项目中添加了一个定时功能,基于Spring quartz: 设置好执行时间后(如:每天14:00) 当程序执行完后,就会出现以下信息: 2013-7-22 11:36:02 org.apache.c ...

  5. python 类属性、对象属性

    类的普通属性: dir(Myclass), 返回一个key列表: Myclass.__dir__,返回一个字典: 1.类的数据属性: 2.类的方法: 类的特殊属性: 1.Myclass.__name_ ...

  6. java web分享ppt大纲 -- servlet容器简介

    今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...

  7. zoj 1539 Lot

    /*理解题意后,发现最后剩下的都是个数并不是和奇数偶数等有直接的关系,所以我们直接从数量入手 比如11会被分为5,6.5再分2,3.6再分3,3只要剩下三个就算一种,少于三个不用算.大于3个继续分 很 ...

  8. java中如何计算两个时间段的月份差

    直接计算,先取得两个日期的年份和月份,月份差=(第二年份-第一年份)*12 + 第二月份-第一月份

  9. 解决 Tomcat reload WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but fail

    转自:http://www.cnblogs.com/interdrp/p/5632529.html 我的错误如下: 06-Sep-2016 18:57:10.595 WARNING [localhos ...

  10. 【转】QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化

    //QString to wchar_t *: const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileNa ...