• 5分钟看懂Code128条形码


    什么是Code128条形码?

    相信大家看到这个都不陌生吧


    1、前言

    条形码种类很多,常见的大概有二十多种码制,其中包括:
    Code39码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、中国邮政码(矩阵25码的一种变体)、Code-B码、MSI码、、Code11码、Code93码、ISBN码、ISSN码、Code128码(Code128码,包括EAN128码)、Code39EMS(EMS专用的39码)等一维条码和PDF417等二维条码。

    2、简介

    2.1、CODE128码

    CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。
    CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。

    2.2、特点

    ●可表示高密度数据和字符串;
    ●每个字符由3个条、3个空、11个单元构成,字符串可变长;
    ●符号内含校验码;
    ●有三种不同的版本:A(数字、大写字母、控制字符)B(数字、大小字母、字符)C(双位数字):

      CODE128A:标准数字和大写字母,控制符,特殊字符;
      CODE128B:标准数字和大写字母,小写字母,特殊字符;
      CODE128C:[00]-[99]的数字对集合,共100个;
    ●可用128个字符分别在A、B或C三个字符串集合中。

    在这里插入图片描述

    3、如何看懂Code128条形码

    重点来了!!!

    在这里插入图片描述

    从上图中可观察到:

    从左往右是黑白相间的条形码,黑的叫“条”(B),白的叫“空”(S)。
    如果你仔细看,条和空都有4种不同的宽度。我们将它从细到粗赋予1、2、3、4这几个值。
    然后我们开始按照粗细的值来阅读条码、结果如下:
    211232 | 112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123 | 2331112

    注意这个结果是黑白相间的。别只顾着读“条”忘了都空。这边总共有55位。

    Code128码有一个头、一个校验、一个尾。
    尾总是2331112,这代表Code128已经结束。其余的部分是6位为一个块,包括头。
    头有3种:A)211412 B)211214 C)211232 。这分别表示此Code128是什么类型的。(ABC其中一种)

    我们将我们读出来的码,去掉头和尾,重新分一次块:
    112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123
    正好是6位为一块。其中最后一个块(除去尾段的最后一个块)是校验位,用于检查该条形码是否被正确编码。

    然后查Code 128字符表,对应各个编号表示的是什么。
    我们这个是211232开头,是Code128C型。C型码是纯数字的,每个块对应2位数字。
    查表可得 12 34 56 78 90 12。

    在这里插入图片描述

    211214 | 123221 | 223211 | 221132 | 132212 | 2331114
    128 B型 1 2 3 校验码 尾

    有了这些知识,我们就可以尝试去写一个程序去生成条形码和识别条形码。
    其实生成是比较简单的,而识别就比较麻烦了。通常超市是使用条码枪,通过光学原理来识别的,因为黑白条纹的反光特性不一样。

    附:
    Code128 字符表:
    可以看出从0-63这前64个字符中A类和B类是一样的。
    其中有些控制字符,比如CodeA表示此字段下一个个块临时使用Code128A的字符表中的字符。
    还有一些其他的,不是很常见,有兴趣的朋友可以参考GBT 15425-2002 EAN UCC系统 128条码 标准

    注:ABC分别为128A类,128B类,128C类的字符表。有些B类的字符为空表示和A类的一样。

      1     B,S,B,S,B,S// A    B    C 
      2     2,1,2,2,2,2,// sp          00
      3     2,2,2,1,2,2,// !           01
      4     2,2,2,2,2,1,// "           02
      5     1,2,1,2,2,3,// #           03
      6     1,2,1,3,2,2,// $           04
      7     1,3,1,2,2,2,// %           05
      8     1,2,2,2,1,3,// &           06
      9     1,2,2,3,1,2,// ...         07
     10     1,3,2,2,1,2,// (           08
     11     2,2,1,2,1,3,// )           09
     12     2,2,1,3,1,2,// *           10
     13     2,3,1,2,1,2,// +           11
     14     1,1,2,2,3,2,// ,           12
     15     1,2,2,1,3,2,// -           13
     16     1,2,2,2,3,1,// .           14
     17     1,1,3,2,2,2,// /           15
     18     1,2,3,1,2,2,// 0           16
     19     1,2,3,2,2,1,// 1           17
     20     2,2,3,2,1,1,// 2           18
     21     2,2,1,1,3,2,// 3           19
     22     2,2,1,2,3,1,// 4           20
     23     2,1,3,2,1,2,// 5           21
     24     2,2,3,1,1,2,// 6           22
     25     3,1,2,1,3,1,// 7           23
     26     3,1,1,2,2,2,// 8           24
     27     3,2,1,1,2,2,// 9           25
     28     3,2,1,2,2,1,// :           26
     29     3,1,2,2,1,2,// ;           27
     30     3,2,2,1,1,2,// <           28
     31     3,2,2,2,1,1,// =           29
     32     2,1,2,1,2,3,// >           30
     33     2,1,2,3,2,1,// ?           31
     34     2,3,2,1,2,1,// @           32
     35     1,1,1,3,2,3,// A           33
     36     1,3,1,1,2,3,// B           34
     37     1,3,1,3,2,1,// C           35
     38     1,1,2,3,1,3,// D           36
     39     1,3,2,1,1,3,// E           37
     40     1,3,2,3,1,1,// F           38
     41     2,1,1,3,1,3,// G           39
     42     2,3,1,1,1,3,// H           40
     43     2,3,1,3,1,1,// I           41
     44     1,1,2,1,3,3,// J           42
     45     1,1,2,3,3,1,// K           43
     46     1,3,2,1,3,1,// L           44
     47     1,1,3,1,2,3,// M           45
     48     1,1,3,3,2,1,// N           46
     49     1,3,3,1,2,1,// O           47
     50     3,1,3,1,2,1,// P           48
     51     2,1,1,3,3,1,// Q           49
     52     2,3,1,1,3,1,// R           50
     53     2,1,3,1,1,3,// S           51
     54     2,1,3,3,1,1,// T           52
     55     2,1,3,1,3,1,// U           53
     56     3,1,1,1,2,3,// V           54
     57     3,1,1,3,2,1,// W           55
     58     3,3,1,1,2,1,// X           56
     59     3,1,2,1,1,3,// Y           57
     60     3,1,2,3,1,1,// Z           58
     61     3,3,2,1,1,1,// [           59
     62     3,1,3,1,1,1,//            60
     63     2,2,1,4,1,1,// ]           61
     64     4,3,1,1,1,1,// ^           62
     65     1,1,1,2,2,4,// _           63
     66     1,1,1,4,2,2,// NUL   '     64
     67     1,2,1,1,2,4,// SOH   a     65
     68     1,2,1,4,2,1,// STX   b     66
     69     1,4,1,1,2,2,// ETX   c     67
     70     1,4,1,2,2,1,// EOT   d     68
     71     1,1,2,2,1,4,// ENQ   e     69
     72     1,1,2,4,1,2,// ACK   f     70
     73     1,2,2,1,1,4,// BEL   g     71
     74     1,2,2,4,1,1,// BS    h     72
     75     1,4,2,1,1,2,// HT    i     73
     76     1,4,2,2,1,1,// LF    j     74
     77     2,4,1,2,1,1,// VT    k     75
     78     2,2,1,1,1,4,// FF    l     76
     79     4,1,3,1,1,1,// CR    m     77
     80     2,4,1,1,1,2,// SO    n     78
     81     1,3,4,1,1,1,// SI    o     79
     82     1,1,1,2,4,2,// DLE   p     80
     83     1,2,1,1,4,2,// DC1   q     81
     84     1,2,1,2,4,1,// DC2   r     82
     85     1,1,4,2,1,2,// DC3   s     83
     86     1,2,4,1,1,2,// DC4   t     84
     87     1,2,4,2,1,1,// NAK   u     85
     88     4,1,1,2,1,2,// SYN   v     86
     89     4,2,1,1,1,2,// ETB   w     87
     90     4,2,1,2,1,1,// CAN   x     88
     91     2,1,2,1,3,1,// EM    y     89
     92     2,1,4,1,2,1,// SUB   z     90
     93     4,1,2,1,2,1,// ESC   {     91
     94     1,1,1,1,4,3,// FS    |     92
     95     1,1,1,3,4,1,// GS    }     93
     96     1,3,1,1,4,1,// RS    ~     94
     97     1,1,4,1,1,3,// US    DEL   95
     98     1,1,4,3,1,1,// FNC3  FNC3  96
     99     4,1,1,1,1,3,// FNC2  FNC2  97
    100     4,1,1,3,1,1,// SHIFT SHIFT 98
    101     1,1,3,1,4,1,// CodeC CodeC 99
    102     1,1,4,1,3,1,// CodeB FNC4  CodeB
    103     3,1,1,1,4,1,// FNC4  CodeA CodeA
    104     4,1,1,1,3,1,// FNC1  FNC1  FNC1
    105     2,1,1,4,1,2,//      StartA
    106     2,1,1,2,1,4,//      StartB
    107     2,1,1,2,3,2,//      StartC
    108     2,3,3,1,1,1,2,//     Stop

    Over...

    参考:

    1、 Code128一维条码中A码、B码、C码的区别

    2、 如何看懂Code128条形码

  • 相关阅读:
    牛客寒假算法基础集训营1 C 小a与星际探索(思维+异或)
    牛客寒假算法基础集训营4 E Applese 涂颜色
    Python的range()函数用法
    R语言读取XML数据
    R语言如何读取.csv文件
    反转链表
    HashSet HashTable HashMap 区别
    输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
    Activity生命周期之我见
    左旋转字符串
  • 原文地址:https://www.cnblogs.com/gjmhome/p/13887300.html
Copyright © 2020-2023  润新知