Code 128 规则解析
1.CODE 128 标准
1.1 code 128码格式:
格式:
从左起: 空白区域,起始字符(Start),数据区域(data),校验码(check),结束字符(Stop),空白区域。
所有字符条纹图像都是以黑色开始,白色结束,只有结束字符例外。
1.2 起始字符:
由于128码有三个字符集。所以有三个起始字符。
|
Start A : 表示后面的码值代码是从字符集A中值—— 全部大写字母和标点符号和特殊符号。 Start B: 表示字符集B——全部大小写字符和标点符号。 Start B的值为:六个黑白粗细不一交替地表示为:{2,1,1,2,1,4} ; Start C: 表示字符集C——数字00-99. Start C的值为:六个黑白粗细不一交替地表示为:{2,1,1,2,3,2} |
1.3 数据字符的表示
在128码中所有数据都是形如:d1d2…di ,其中di在(1,4)之间,且1<=i<=6 ,且sum(di) =11。
即总共需要绘制成11条黑白相间的条纹。
校验码算法:
| 校验码=(起始字符值 +第一位数据值*1 +第二位数据值*2+ …. + 第 n 位数据*n )%103; |
1.4 结束字符:
128码结束字符只有一个在编码表中以Stop 来表示,数据为:{2,3,3,1,1,1,2};
2.图形方式输出Code128C条形码
最近的项目牵涉到一维条码打印的问题。条码的选型上倒没什么,因为要求短且仅包含数字,所以决定选用Code128C。在国外的网站上找了点资料研究了下,终于大致搞懂了Code128C的原理和实现方法。
Code128C只能编码长度是偶数的数字串,这是它的前提之一。说起来编码规则很简单,00 - 99 这100个数字每个数字都预先规定好一个条码,然后把原始的待编码字符串两位两位的读取,每个两位都从上面提到的码表中找到对应的条码,追加。
举个例子,我们要打印12345678的Code128c条码。
首先打印Code128c的条码头,bbsbssbbbss。(b代表1个单位宽度的竖线,s代表1个单位宽度的空白)
然后对12345678编码。
我们把它看成 12 34 56 78。12对应的条码是bsbbssbbbss,34对应的条码是bsssbsbbsss,56对应的条码是bbbsssbsbbs,78对应的条码是bbssssbsbss。按次序堆积起来就是了。
现在应该很好理解为什么C型128码可以打印的比较短,就是因为输出的信息被压缩到原来的一半。
接下来就是一个自校验码。计算方法是:(105 + (1 * 12 + 2 * 34 + 3 * 56 + 4 *78)) % 103 = 47。再追加47对应的条码bsssbbbsbbs。
这里有个注意点是,第n组数字要乘以n。比如,12是第一组所以乘1,而34是第二组所以乘2。
最后就是终结符,固定为bbsssbbbsbsbb,也追加。
如此得出一个可以代表条形码的字符串:
bbsbssbbbss bsbbssbbbss bsssbsbbsss bbbsssbsbbs bbssssbsbss bsssbbbsbbs bbsssbbbsbsbb (本字符串中的空格仅作演示,实际编码的时候不会产生空格)
也就是 StartC 12 34 56 78 47 Stop (实际上没空格)
3. Code 128 Barcode Table
| Value | Code Set A |
Code Set B |
Code Set C |
Bar/Space Pattern B S B S B S |
|---|---|---|---|---|
| 0 | SP | SP | 00 | 2 1 2 2 2 2 |
| 1 | ! | ! | 01 | 2 2 2 1 2 2 |
| 2 | " | " | 02 | 2 2 2 2 2 1 |
| 3 | # | # | 03 | 1 2 1 2 2 3 |
| 4 | $ | $ | 04 | 1 2 1 3 2 2 |
| 5 | % | % | 05 | 1 3 1 2 2 2 |
| 6 | & | & | 06 | 1 2 2 2 1 3 |
| 7 | ' | ' | 07 | 1 2 2 3 1 2 |
| 8 | ( | ( | 08 | 1 3 2 2 1 2 |
| 9 | ) | ) | 09 | 2 2 1 2 1 3 |
| 10 | * | * | 10 | 2 2 1 3 1 2 |
| 11 | + | + | 11 | 2 3 1 2 1 2 |
| 12 | , | , | 12 | 1 1 2 2 3 2 |
| 13 | - | - | 13 | 1 2 2 1 3 2 |
| 14 | . | . | 14 | 1 2 2 2 3 1 |
| 15 | / | / | 15 | 1 1 3 2 2 2 |
| 16 | 0 | 0 | 16 | 1 2 3 1 2 2 |
| 17 | 1 | 1 | 17 | 1 2 3 2 2 1 |
| 18 | 2 | 2 | 18 | 2 2 3 2 1 1 |
| 19 | 3 | 3 | 19 | 2 2 1 1 3 2 |
| 20 | 4 | 4 | 20 | 2 2 1 2 3 1 |
| 21 | 5 | 5 | 21 | 2 1 3 2 1 2 |
| 22 | 6 | 6 | 22 | 2 2 3 1 1 2 |
| 23 | 7 | 7 | 23 | 3 1 2 1 3 1 |
| 24 | 8 | 8 | 24 | 3 1 1 2 2 2 |
| 25 | 9 | 9 | 25 | 3 2 1 1 2 2 |
| 26 | : | : | 26 | 3 2 1 2 2 1 |
| 27 | ; | ; | 27 | 3 1 2 2 1 2 |
| 28 | < | < | 28 | 3 2 2 1 1 2 |
| 29 | = | = | 29 | 3 2 2 2 1 1 |
| 30 | > | > | 30 | 2 1 2 1 2 3 |
| 31 | ? | ? | 31 | 2 1 2 3 2 1 |
| 32 | @ | @ | 32 | 2 3 2 1 2 1 |
| 33 | A | A | 33 | 1 1 1 3 2 3 |
| 34 | B | B | 34 | 1 3 1 1 2 3 |
| 35 | C | C | 35 | 1 3 1 3 2 1 |
| 36 | D | D | 36 | 1 1 2 3 1 3 |
| 37 | E | E | 37 | 1 3 2 1 1 3 |
| 38 | F | F | 38 | 1 3 2 3 1 1 |
| 39 | G | G | 39 | 2 1 1 3 1 3 |
| 40 | H | H | 40 | 2 3 1 1 1 3 |
| 41 | I | I | 41 | 2 3 1 3 1 1 |
| 42 | J | J | 42 | 1 1 2 1 3 3 |
| 43 | K | K | 43 | 1 1 2 3 3 1 |
| 44 | L | L | 44 | 1 3 2 1 3 1 |
| 45 | M | M | 45 | 1 1 3 1 2 3 |
| 46 | N | N | 46 | 1 1 3 3 2 1 |
| 47 | O | O | 47 | 1 3 3 1 2 1 |
| 48 | P | P | 48 | 3 1 3 1 2 1 |
| 49 | Q | Q | 49 | 2 1 1 3 3 1 |
| 50 | R | R | 50 | 2 3 1 1 3 1 |
| 51 | S | S | 51 | 2 1 3 1 1 3 |
| 52 | T | T | 52 | 2 1 3 3 1 1 |
| 53 | U | U | 53 | 2 1 3 1 3 1 |
| 54 | V | V | 54 | 3 1 1 1 2 3 |
| 55 | W | W | 55 | 3 1 1 3 2 1 |
| 56 | X | X | 56 | 3 3 1 1 2 1 |
| 57 | Y | Y | 57 | 3 1 2 1 1 3 |
| 58 | Z | Z | 58 | 3 1 2 3 1 1 |
| 59 | [ | [ | 59 | 3 3 2 1 1 1 |
| 60 | \ | \ | 60 | 3 1 4 1 1 1 |
| 61 | ] | ] | 61 | 2 2 1 4 1 1 |
| 62 | ^ | ^ | 62 | 4 3 1 1 1 1 |
| 63 | _ | _ | 63 | 1 1 1 2 2 4 |
| 64 | NUL | ` | 64 | 1 1 1 4 2 2 |
| 65 | SOH | a | 65 | 1 2 1 1 2 4 |
| 66 | STX | b | 66 | 1 2 1 4 2 1 |
| 67 | ETX | c | 67 | 1 4 1 1 2 2 |
| 68 | EOT | d | 68 | 1 4 1 2 2 1 |
| 69 | ENQ | e | 69 | 1 1 2 2 1 4 |
| 70 | ACK | f | 70 | 1 1 2 4 1 2 |
| 71 | BEL | g | 71 | 1 2 2 1 1 4 |
| 72 | BS | h | 72 | 1 2 2 4 1 1 |
| 73 | HT | i | 73 | 1 4 2 1 1 2 |
| 74 | LF | j | 74 | 1 4 2 2 1 1 |
| 75 | VT | k | 75 | 2 4 1 2 1 1 |
| 76 | FF | I | 76 | 2 2 1 1 1 4 |
| 77 | CR | m | 77 | 4 1 3 1 1 1 |
| 78 | SO | n | 78 | 2 4 1 1 1 2 |
| 79 | SI | o | 79 | 1 3 4 1 1 1 |
| 80 | DLE | p | 80 | 1 1 1 2 4 2 |
| 81 | DC1 | q | 81 | 1 2 1 1 4 2 |
| 82 | DC2 | r | 82 | 1 2 1 2 4 1 |
| 83 | DC3 | s | 83 | 1 1 4 2 1 2 |
| 84 | DC4 | t | 84 | 1 2 4 1 1 2 |
| 85 | NAK | u | 85 | 1 2 4 2 1 1 |
| 86 | SYN | v | 86 | 4 1 1 2 1 2 |
| 87 | ETB | w | 87 | 4 2 1 1 1 2 |
| 88 | CAN | x | 88 | 4 2 1 2 1 1 |
| 89 | EM | y | 89 | 2 1 2 1 4 1 |
| 90 | SUB | z | 90 | 2 1 4 1 2 1 |
| 91 | ESC | { | 91 | 4 1 2 1 2 1 |
| 92 | FS | | | 92 | 1 1 1 1 4 3 |
| 93 | GS | } | 93 | 1 1 1 3 4 1 |
| 94 | RS | ~ | 94 | 1 3 1 1 4 1 |
| 95 | US | DEL | 95 | 1 1 4 1 1 3 |
| 96 | FNC 3 | FNC 3 | 96 | 1 1 4 3 1 1 |
| 97 | FNC 2 | FNC 2 | 97 | 4 1 1 1 1 3 |
| 98 | SHIFT | SHIFT | 98 | 4 1 1 3 1 1 |
| 99 | CODE C | CODE C | 99 | 1 1 3 1 4 1 |
| 100 | CODE B | FNC 4 | CODE B | 1 1 4 1 3 1 |
| 101 | FNC 4 | CODE A | CODE A | 3 1 1 1 4 1 |
| 102 | FNC 1 | FNC 1 | FNC 1 | 4 1 1 1 3 1 |
| 103 | Start A | Start A | Start A | 2 1 1 4 1 2 |
| 104 | Start B | Start B | Start B | 2 1 1 2 1 4 |
| 105 | Start C | Start C | Start C | 2 1 1 2 3 2 |
| 106 | Stop | Stop | Stop | 2 3 3 1 1 1 2 |
4.参考文献
http://blog.csdn.net/jato333/article/details/3748375
http://blog.csdn.net/dengchonglin/article/details/7680722
Code 128 规则解析的更多相关文章
- apache伪静态规则解析
apache伪静态规则解析 最近有个客户有个要求,昨天折腾了一会,没解决,今天没啥就多学习学习 还是根据例子来学习比较快 1 简单的重定向规则 RewriteEngine On //启动规则 Rewr ...
- 一维码Code 128简介及其解码实现(zxing-cpp)
一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大. Cod ...
- (zxing.net)一维码Code 128的简介、实现与解码
一.简介 一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大 ...
- 常见条码类型介绍(Code 39、Code 128、EAN-8、EAN-13、EAN-128、ISSN、TIF、TIF-14、UPC(A)、UPC(E))
常见条码类型,如下: 1.Code 39 Code 39,又称为"Code 3 of 9",是非零售市场中最常用的格式,用于盘存和跟踪.Code 39码编码规则简单,误码率低.所能 ...
- C# 条形码 生成函数 (Code 128 标准
C# 条形码 生成函数 (Code 128 标准参考:GB/T 18347-2001) 最近在做单据打印,发现客户要求用到条形码,在网上找了,发现只有一些条形码的标准,但打出来发现根本不能扫,还要加某 ...
- GitHub上传不了的解决 ssh: connect to host github.com port 22: Bad file number git did not exit cleanly (exit code 128)
问题情况 本来一直用的是github的客户端,结果现在上传的时候出问题了,去网站上看,新项目已经创建,但是代码却怎么都上传不上去.于是只好用命令行的方式解决. Tortoisegit上是这样说的: g ...
- 二维码(QR Code)生成与解析
二维码(QR Code)生成与解析 写在前面 经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西.各种扫各种送,太泛滥了.项目中从没接触过二维码的东东,最近要使用,就 ...
- [Jenkins][git]构建时提示Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git reset --hard" returned status code 128:
--------------------- 如需转载,转载请注明出处. --------------------- 今日发现所有IOS构建相关的job全部失败,并提示如下错误: ERROR: Erro ...
- 解决git did not exit cleanly (exit code 128)
最近在用git提交代码到部门服务器上的时候,总是有 提示 git did not exit cleanly (exit code 128).网上有2种解决方式: 1.替换路径 1.鼠标右键 -> ...
随机推荐
- Python webpy微信公众号开发之 回复图文消息
新建图文回复模板reply_pictext.xml: $def with (toUser,fromUser,createTime,title1,description1,picurl1,url1)&l ...
- vsPhere安装虚拟sm
1.在机器上单击右键 2.选择“编辑设置” 设备状态,选择打开电源时链接,数据存储ISO文件,选择镜象. 3.重启,进入安装界面. 4.
- [Educational Codeforces Round 16]C. Magic Odd Square
[Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...
- Python获取目录、文件的注意事项
Python获取指定路径下的子目录和文件有两种方法: os.listdir(dir)和os.walk(dir),前者列出dir目录下的所有直接子目录和文件的名称(均不包含完整路径),如 >> ...
- 《ASP.NET1200例》C# WINFORM程序的三层架构如何建立的。
先添加-新建项目-windows应用程序,然后在右边的解决方案资源管理器上面,在当前的解决方案上面右击,点,添加-新建项目-类库,分别建立.DAL,BLL,Model三个项目,然后,在DAL项目上右击 ...
- 3.django笔记之form表单
作者:刘耀 瞎copy伸手党 我在诅咒你. Django的form的作用: 1.生成html标签 2.用来做用户提交的验证 3.可以和models一起使用(modelform) 一.form基础 工程 ...
- java获取本机IP地址
转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...
- August 1st, 2016, Week 32nd Monday
Laughing is the most touching mask. 笑容是最动人的面具. I used to be very weclome in those I had met. And the ...
- RocketMQ最佳实践
1.RocketMQ中的专业术语 Topic topic表示消息的第一级类型,比如一个电商系统的消息可以分为:交易消息.物流消息...... 一条消息必须有一个Topic. Tag Tag表示消息的第 ...
- 自定义view实现水波纹效果
水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...