EAN 13码
- 格式:docx
- 大小:118.07 KB
- 文档页数:3
code128码和ean13码的定义
Code128码和EAN13码的定义
Code128码和EAN13码是两种常见的条形码,它们都是一种用于商品标识和追踪的编码系统。
下面将分别介绍它们的定义和特点。
Code128码是一种高密度、高容错性的条形码,它可以表示任意长度的数字、字母和符号。
Code128码由三个部分组成:起始符、数据符和校验符。
起始符和校验符是固定的,数据符则根据需要进行编码。
Code128码的编码规则比较复杂,但是它具有很高的容错性,即使在一定程度的损坏或污损情况下,仍能够正确读取。
EAN13码是一种常用的商品条形码,它由13个数字组成,其中前12个数字表示商品的国家代码、厂商代码和商品代码,最后一个数字是校验码。
EAN13码的编码规则比较简单,但是它具有很高的精度和可靠性,可以在高速读取的情况下正确识别商品信息。
Code128码和EAN13码的应用范围非常广泛,它们可以用于商品标识、物流追踪、库存管理、生产流程控制等方面。
在现代商业中,条形码已经成为不可或缺的一部分,它们为商家提供了高效、准确、可靠的商品管理和追踪手段,为消费者提供了方便、快捷、安全的购物
体验。
总之,Code128码和EAN13码是两种重要的条形码编码系统,它们具有不同的特点和应用场景,但都为现代商业提供了重要的支持和保障。
在未来的发展中,条形码技术将继续发挥重要作用,为商业和消费者带来更多的便利和效益。
mes中供应商条码规则供应商条码规则是指供应商在生产或销售商品时所使用的一种标识符号,用于区分不同的商品和供应商。
这些条码规则有助于提高供应链的效率和准确性,使得商品的采购、配送和销售过程更加顺畅。
本文将介绍一些常见的供应商条码规则,并解释它们的含义和应用。
一、EAN-13条码规则EAN-13(European Article Number)是一种全球通用的商品条码规则,它由13位数字组成。
其中前三位是国家代码,表示商品所属的国家或地区;接下来的9位是厂商代码,用于标识供应商;最后一位是校验码,用于验证条码的正确性。
EAN-13条码规则适用于各类商品,如食品、电子产品、化妆品等。
二、UPC条码规则UPC(Universal Product Code)是一种常用于北美地区的商品条码规则,它由12位数字组成。
UPC条码规则与EAN-13条码规则类似,也包括国家代码、厂商代码和校验码。
不同之处在于UPC条码规则没有区分国家代码,而是统一使用美国的国家代码“0”和“1”。
三、Code 128条码规则Code 128是一种高密度、可变长的条码规则,它可以包含任意的文本信息。
Code 128条码规则适用于需要包含大量信息的商品或包装,如货运单号、批次号等。
它的特点是条码密度高,可容纳更多的字符,且具有较高的容错能力。
四、QR码规则QR码(Quick Response Code)是一种二维码标准,它可以存储大量的信息,如文字、网址、电话号码等。
QR码规则适用于需要在有限的空间内存储大量信息的商品或广告宣传。
QR码可以通过智能手机等设备进行扫描,方便用户获取相关信息。
五、GS1-128条码规则GS1-128是一种基于Code 128的条码规则,它是一种可变长的、具有丰富扩展功能的条码规则。
GS1-128条码规则适用于供应链管理,可以用于标识和追踪货物的流动,包括生产日期、批次号、保质期等信息。
它可以与企业的ERP系统集成,实现自动化的库存管理和物流跟踪。
1. 什么是EAN-13代码EAN-13是商品的全球通用标识,用于唯一识别商品和服务。
它是一种由13个数字组成的条形码,通常出现在商品的包装上。
EAN-13代码可以帮助商家和用户追溯商品的生产和流通情况,也是全球贸易中不可或缺的一部分。
2. EAN-13代码的结构EAN-13代码由三部分组成:- 国家代码:前三位数字代表生产商品的国家或地区代码。
- 制造商代码:接下来的四位数字代表制造商的注册代码。
- 商品代码:再接下来的五位数字代表具体的商品代码。
- 校验码:最后一位是校验码,用于验证EAN-13代码是否输入正确。
3. EAN-13代码的解析EAN-13代码的解析可以帮助我们更好地了解商品的相关信息,比如生产地点、制造商和具体商品。
下面将介绍10种不同商品的EAN-13代码及其解析。
4. 商品1:洗发水EAN-13代码:xxx- 国家代码:690代表我国- 制造商代码:3148- 商品代码:xxx- 校验码:7这个EAN-13代码表明这款洗发水是我国制造的,制造商代码为3148,具体的商品代码为xxx。
5. 商品2:巧克力EAN-13代码:xxx- 国家代码:541代表比利时和卢森堡- 制造商代码:2278- 商品代码:xxx- 校验码:8这个EAN-13代码表明这款巧克力来自比利时和卢森堡,制造商代码为2278,具体商品代码为xxx。
6. 商品3:手机EAN-13代码:xxx- 国家代码:694代表我国- 制造商代码:1059- 商品代码:xxx- 校验码:5这个EAN-13代码表明这款手机是我国制造的,制造商代码为1059,具体商品代码为xxx。
7. 商品4:T恤EAN-13代码:xxx- 国家代码:880代表韩国- 制造商代码:9613- 商品代码:xxx- 校验码:0这个EAN-13代码表明这件T恤来自韩国,制造商代码为9613,具体商品代码为xxx。
8. 商品5:电脑EAN-13代码:xxx- 国家代码:471代表台湾- 制造商代码:2900- 商品代码:xxx- 校验码:6这个EAN-13代码表明这台电脑来自台湾,制造商代码为2900,具体商品代码为xxx。
EAN-13编码实现一、实验目标利用c语言或者java实现EAN-13条码的打印二、实验原理1.校验码:EAN-13编码,共13位数据,,其中最后一位为校验码,从左至右,奇数位上的数乘1加偶数为乘3后得数M,取M的个数位m,若m位0,则校验码为0。
若不为0,则校验码为10-m。
2.EAN-13的编码规则a)导入值(前置码):为EAN-13的最左边第一个数字,即国家代码的第一码,是不用条码符号表示的,其功能仅作为左资料码(左侧数据)的编码设定之用。
b)左护线:为辅助码,不代表任何资料,列印长度一般比数据长,逻辑形态为101,其中1代表细黑,0代表细白。
c)左资料码(左侧数据):即左护线和中线间的条码部分,共六个数字资料,其编码方式取决于导入值(前置码)的大小,规则如下表:d)中线:为辅助码,用于区分左侧数据和右侧数据。
中线长度一般比资料码长,逻辑形态为01010.e)右资料码(右侧数据):中线与右护线之间的部分。
包括五位数产品代码与一位检查码。
其编码方式为c雷编码规则,如表:f)右护线:为辅助码,,逻辑形态为101。
三、实现步骤1.输入EAN-13的前12位数据,先求出校验码。
2.根据前置码的数字确定左侧资料码(左侧数据)的编码方式,先将左侧数据的值用AB代替然后根据左侧资料码的逻辑值替换,得到长度为42的二进制左侧数据。
右侧数据可以用同样的方式取得长度为42的二进制右侧数据。
3.整合EAN-13编码需要打印的所有二进制数据,即左护线101+42位左侧二进制数据+中线01010+42位右侧二进制数据+右护线101.4.在java中利用Graphics类作图。
四、成果预览五、实现代码及注释package ean13;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage; import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;import javax.swing.JFrame;publicclass ean13 {static String BonaryDate=new String();static String all=new String();staticint width=300;staticint height=240;static BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);static Graphics2D g2=(Graphics2D) bi.getGraphics();publicstaticvoid main(String[] args) throws IOException { // TODO Auto-generated method stubString []LeftCode={"AAAAAA","AABABB","AABBAB","AABBBA","ABAABB","ABBAAB ","ABBBAA","ABABBA","ABBABA"};String []LeftCodeA={"0001101","0011001","0010011","0111101","0100011"," 0110001","0101111","0111011","0110111","0001011"};String []LeftCodeB={"0100111","0110011","0011011","0100001","0011101"," 0111001","0001010","0010001","0001001","0010111"};String []LeftCodeC={"1110010","1100110","1101100","1000010","1011100"," 1001110","1010000","1000100","1001000","1110100"};System.out.println("请输入12位数据:");InputStreamReader input= new InputStreamReader(System.in);String in = new BufferedReader(input).readLine();if(in.length()!=12){System.out.println("输入错误!");}else{String connectionleft;String connectionright;int checkcode;checkcode=CheckCode(in);in=in+checkcode;System.out.print("对应的13的EAN-13为:");System.out.print(in);all=in;connectionleft=eanLeft(in,LeftCode,LeftCodeA,LeftCodeB);//得到ean左侧42位二进制数据connectionright=eanRight(in,LeftCodeC);//得到ean右侧42位二进制数据BonaryDate="101"+connectionleft+"01010"+connectionright+"10 1";//要画出3+42+5+42+3共95位二进制数据}pp a=new pp();a.setBounds(300, 300, 300, 300);a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);a.setVisible(true);}/** 根据表2-3、表2-4取出左侧数据所对应的6^7个二进制数据,左侧数据本就有六位* 这里的算法是先根据前置码确定左侧数据的编码方式并将所对应的ABABAB编码存入s1这个字符串中* 然后将S1转化为字符数组a2,而左侧数据用left这个字符串保存,进入循环,此时按位取出左侧数据中的数字,记为d* 如果在a2[b]中取出的字符为A,则根据这个d值去LeftCodeA[]这个数组里取值,反之,则在LeftCodeB[]数组中取值* 然后保存到left这个字符串中,并且会根据下面的connectionnection+=left1积累下来最后就会得到左侧数据长达42位的二进制数**/privatestatic String eanLeft(String str,String[]LeftCode,String []LeftCodeA,String [] LeftCodeB){String begin=str.substring(0,1);String left=str.substring(1, 7);String s1=new String();int a=Integer.parseInt(begin);s1=LeftCode[a];//左侧数据符编码char [] a2=s1.toCharArray();//将数据编码字符串左侧转换为字符数组char [] right1=left.toCharArray();//将数据字符串右侧转化为字符数组String left1=new String();String connectionleft=new String();int d;String left2=new String();//A、B中取出的字符for(int b=0,c=0;b<6&&c<6;b++,c++){d=Integer.parseInt(left.substring(c, c+1));//读取左边数据if(a2[b]=='A') left1=LeftCodeA[d];else left1=LeftCodeB[d];connectionleft=connectionleft+left1;}return connectionleft;}/** 根据表2-3、表2-4取出右侧数据所对应的6^7个二进制数据* 这里的6是五位右侧数据和一位校验码*/privatestatic String eanRight(String str,String[] LeftCodeC){ String right =str.substring(7,13);int cr;String coderight;String connectionright=new String();for(int e=0;e<6;e++){cr=Integer.parseInt(right.substring(e,e+1));coderight=LeftCodeC[cr];connectionright=connectionright+coderight;}return connectionright;}/** 计算出校验码并返回,返回值还需要用到但是只需简单的字符串相加即可得到 * 所以*/privatestaticint CheckCode(String str){int odd=0;int even=0;for(int i=0;i<str.length();i++){if(i%2==0){odd+=Integer.parseInt(str.substring(i,i+1));//实际上编号为零是第奇数个}else{even+=Integer.parseInt(str.substring(i,i+1));}}int checkcode=(10 - (even * 3 + odd) % 10) % 10;return checkcode;}}class pp extends JFrame{publicvoid paint(Graphics g ){String a=ean13.BonaryDate;String b=ean13.all;int bin,l;int X=100,Y=100,HEIGH=50;for(int i=0;i<95;i++){bin=Integer.parseInt(a.substring(i,i+1),10);if(i>=0&&i<=2||i>=45&&i<=49||i>=92&&i<=94){l=10;}else{l=0;}if(bin==1){g.drawLine(X,Y,X,Y+HEIGH+l);// g.drawLine(X+1,Y, X+1,Y+HEIGHT+l);X=X+1;}elseX=X+1;}g.drawString(b, 93, 170);}}。
EAN—13前缀码对应国家*EAN—13(13位)=前缀码(3位)+厂商识别码(4或5位)+商品项目代码(5或4位)+校验码(1位)000 —019;030 - 039; 060 - 139 美国020 - 029; 040 - 049;200 —299 店内码050 - 059 优惠券300 —379 法国380 保加利亚383 斯洛文尼亚385 克罗地亚387 波黑400 —440 德国450 —459;490 —499 日本460 —469 俄罗斯470 吉尔吉斯斯坦471 中国台湾474 爱沙尼亚475 拉脱维亚476 阿塞拜疆477 立陶宛478 乌兹别克斯坦479 斯里兰卡480 菲律宾481 白俄罗斯482 乌克兰484 摩尔多瓦485 亚美尼亚486 格鲁吉亚487 哈萨克斯坦489 中国香港特别行政区500 —509 英国520 希腊528 黎巴嫩529 塞浦路斯530 阿尔巴尼亚531 马其顿535 马耳他539 爱尔兰540 - 549 比利时和卢森堡560 葡萄牙569 冰岛570 —579 丹麦590 波兰594 罗马尼亚599 匈牙利600 &601 南非603 加纳608 巴林609 毛里求斯611 摩洛哥613 阿尔及利亚616 肯尼亚618 象牙海岸619 突尼斯621 叙利亚622 埃及624 利比亚625 约旦626 伊朗627 科威特628 沙特阿拉伯629 阿拉伯联合酋长国640 - 649 芬兰690 —695 中华人民共和国700 - 709 挪威729 以色列730 —739 瑞典740 危地马拉741 萨尔瓦多742 洪都拉斯743 尼加拉瓜744 哥斯达黎加745 巴拿马746 多米尼加750 墨西哥754 —755 加拿大759 委内瑞拉760 - 769 瑞士770 哥伦比亚773 乌拉圭775 秘鲁777 玻利维亚779 阿根廷780 智利784 巴拉圭786 厄瓜多尔789 —790 巴西800 —839 意大利840 - 849 西班牙850 古巴858 斯洛伐克859 捷克860 南斯拉夫865 蒙古867 朝鲜869 土耳其870 - 879 荷兰880 韩国884 柬埔寨885 泰国888 新加坡890 印度893 越南899 印度尼西亚900 —919 奥地利930 - 939 澳大利亚940 —949 新西兰955 马来西亚958 中国澳门特别行政区977 连续出版物978 & 979 图书980 应收票据981 & 982 普通流通券990 - 999 优惠券。
德国条码格式
德国的条码格式包括EAN-13、EAN-8、UPC-A和UPC-E这四种,它
们归信息与数据交换协会(International Article Numbering Association,简称EAN)所有,由座落在比利时布鲁塞尔的EAN国际
协会进行所有注册和使用控制。
EAN-13是一种13位数字代码,也称为EAN/UCC-13或UPC-13。
它
由前缀区(1位)、制造商编码(2位到5位)、商品编码(4位到12位)及校验码(根据一套计算出来的算法得出来的1位)组成,合计
13位数字,用于标识商品的识别编码。
其中,前缀区代表所属国家或
地区,比如德国的EAN-13条码前缀为400–440。
EAN-8也是一种8位数字代码,有时也称为EAN/UCC-14或UPC-8。
与EAN-13的组成相同,只是缩短了到8位数字,标识商品更小的包装,如拉罐等。
UPC-A是指国际通用商品编码(UPC),是美国和加拿大共同采用
的12位数字代码,也称为Uniform Product Codes。
它由起始符号(1位)、制造商编码(5位)、系统编码(5位)、校验码(1位)组成,合计12位。
UPC-E也是UPC的一种8位数字代码。
UPC-E由起始符号(1位)、制造商编码(1位至5位)、商品编码(1位至4位)、校验码(1位)组成,合计8位,一般用于简化和缩短商品条码的表示。
EAN-13通用商品条形码一般由前缀部分、制造厂商代码、商品代码和校验码组成。
商品条形码中的前缀码是用来标识国家或地区的代码,赋码权在国际物品编码协会,如00-09代表美国、加拿大。
45-49代表日本。
690-692代表中国大陆,471代表我国台湾地区,489代表香港特区。
制造厂商代码的赋权在各个国家或地区的物品编码组织,我国由国家物品编码中心赋予制造厂商代码。
商品代码是用来标识商品的代码,赋码权由产品生产企业自己行使,生产企业按照规定条件自己决定在自己的何种商品上使用哪些阿拉伯数字为商品条形码。
商品条形码最后用1位校验码来校验商品条形码中左起第l-12数字代码的正确性。
全文:商品条形码是指由一组规则排列的条、空及其对应字符组成的标识,用以表示一定的商品信息的符号。
其中条为深色、空为纳色,用于条形码识读设备的扫描识读。
其对应字符由一组阿拉伯数字组成,供人们直接识读或通过键盘向计算机输人数据使用。
这一组条空和相应的字符所表示的信息是相同的。
条形码技术是随着计算机与信息技术的发展和应用而诞生的,它是集编码、印刷、识别、数据采集和处理于一身的新型技术。
使用条形码扫描是今后市场流通的大趋势。
为了使商品能够在全世界自由、广泛地流通,企业无论是设计制作,申请注册还是使用商品条形码,都必须遵循商品条形码管理的有关规定。
目前世界上常用的码制有EN A条形码、UPC条形码、二五条形码、交叉二五条形码、库德巴条形码、三九条形码和128条形码等,而商品上最常使用的就是EA N商品条形码。
EAN商品条形码亦称通用商品条形码,由国际物品编码协会制定,通用于世界各地,是目前国际上使用最广泛的一种商品条形码。
欧洲条码标准主要是指遵循欧洲标准局(European Committee for Standardization,简称CEN)和国际标准局(International Organization for Standardization,简称ISO)制定的条码标准。
在欧洲范围内,常用的条码类型有EAN-13、ITF-14等。
1. EAN-13条码:EAN-13(European Article Number,欧洲商品编号)是一种用于表示商品的条码,由13位数字组成。
它用于表示产品的唯一标识,方便在零售、物流等环节进行扫描识别。
EAN-13条码的生成和解析遵循ISO/IEC 15421-1998标准。
2. ITF-14条码:ITF-14(Interleaved 2 of 5,交错两位的五码制)是一种用于表示商品的条码,由14位数字组成。
与EAN-13条码相比,ITF-14条码具有更高的密度,适用于较小的商品包装。
ITF-14条码的生成和解析遵循ISO/IEC 16391-2009标准。
在欧洲范围内,商品条码的生成、印刷和扫描设备都需要遵循上述国际标准。
此外,为了确保条码的质量和可靠性,欧洲还制定了相关质量控制标准,如ISO/IEC 15415、ISO/IEC 15416等。
制作打印EAN 13码
EAN 13码是最常见的条形码之一,它常用在上市产品上,属于商品条码。
这类条码一般都是用专业的领跑条码打印软件制作而成的。
那么在制作这类条码的时候,经常会遇到明明软件支持这类条码,却做不出来显示数据长度错误等问题,这就是因为对EAN 13条码组成和软件操作不熟悉导致的一些小错误。
这里就介绍一下如何在条码打印软件中制作EAN 13码和做EAN 13码时需要注意的问题。
在做这个条码之前呢,要对EAN 13码的组成有所了解。
它是一个典型的商品条码,由13位数字组成。
这13位数字分为两个部分:前12位是一个部分,由客户根据编码规则和实际商品编码情况编写;而第13位又是单独的一部分,是一个校验位,不能随便输入。
是由前12位数据经过一定的计算方式,计算得出的。
所以在条码打印软件制作EAN 13条码时,要注意输入的数字是12位,最后一位可以通过设置让软件自动生成。
1、首先打开领跑条码打印软件,设置好排版布局(在之前的《条码打印软件的排版方式》文章中已经详细介绍过了,这里就不再阐述),在空白画布上绘制一个一维码。
选择这个一维码鼠标右键单击选择属性,或者直接双击这个一维码进入图形属性窗口。
在此窗口的条码选项卡中选择条码类型为EAN 13码。
在数据源选项卡中删除原数据,再重新添加一个数据对象,此数据对象就是在条码中显示的前12位条码数字。
在为这个条码添加数据对象的时候,数据对象类型可以是手动输入,数据库导入等方式,这里我们数据较少,所以就以手动输入为例。
不要以为这样就制作完成了哦,如果这个时候我们单击编辑——确定
按钮,就可以在画布上看到刚才绘制的一维码显示数据长度错误。
就是因为我们制作的EAN 13码数据长度为13位,但是我们只输入了12位数字,所以会显示出错。
所以我们还要制作EAN 13码的第13位数字,同样双击这个一维码打开图像属性窗口,在外观选项卡中勾选生成数字校验复选框。
其余内容选择默认即可。
这时软件就会根据我们输入的12位数字按照一定的公式计算出第13位数字,单击确定按钮就会显示出来13位的EAN 13码了。
2、在领跑条码打印软件中还有一种制作EAN 13码的方法就是直接在数据源中输入一个完整的13位EAN 13码,但是前提是要保证第13位数字是根据前12位按照规定公式计算得到的正确的数字才行。
但是在外观选项卡中就不要勾选生成数字校验和校验位可见这两项了。
以上就是在领跑条码打印软件中生成EAN 13码的两种方法,不过我们通常建议使用比较方便简单的第一种方法哦。
更多文档参见易网科技官网吧。