没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
CODE 128 国家标准
1. code 128码格式:
从左起: 空白区域,起始字符,数据区域,校验码,结束字符,空白区域。
所有字符条纹图像都是以黑色开始,白色结束,只有结束字符例外。
2. 起始字符:
由于128码有三个字符集。所以有三个起始字符。
Start A : 表示后面的码值代码是从字符集A中值。 全部大写字母和标点符号和特殊符号。
用六个黑白粗细不一表示为:{2,1,1,4,1,2}
Start B: 表示字符集B,全部大小写字符和标点符号。数据为:{2,1,1,2,1,4}
Start C: 表示字符集C,数字00-99. 数据为:{2,1,1,2,3,2}
3. 数据字符的表示
在128码中所有数据都是有1-4的六位数组表示,总共绘制成11条黑白条纹。
校验码算法:
校验码=(起始字符值 +第一位数据值*1 +第二位数据值*2+ …. + 第 n 位数据*n )%103;
4. 结束字符:
128码结束字符只有一个在编码表中以Stop 来表示,数据为:{2,3,3,1,1,1,2};
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
图形方式输出Code128C条形码
最近的项目牵涉到一维条码打印的问题。条码的选型上倒没什么,因为要求短且仅包含数字,所以决定选用Code128C。在国外的网站上找了点资料研究了下,终于大致搞懂了Code128C的原理和实现方法。
Code128C只能编码长度是偶数的数字串,这是它的前提之一。说起来编码规则很简单,00 - 99 这100个数字每个数字都预先规定好一个条码,然后把原始的待编码字符串两位两位的读取,每个两位都从上面提到的码表中找到对应的条码,追加。
举个例子,我们要打印12345678的Code128c条码。首先打印Code128c的条码头,bbsbssbbbss。(b代表1个单位宽度的竖线,s代表1个单位宽度的空白)
1. code 128码格式:
从左起: 空白区域,起始字符,数据区域,校验码,结束字符,空白区域。
所有字符条纹图像都是以黑色开始,白色结束,只有结束字符例外。
2. 起始字符:
由于128码有三个字符集。所以有三个起始字符。
Start A : 表示后面的码值代码是从字符集A中值。 全部大写字母和标点符号和特殊符号。
用六个黑白粗细不一表示为:{2,1,1,4,1,2}
Start B: 表示字符集B,全部大小写字符和标点符号。数据为:{2,1,1,2,1,4}
Start C: 表示字符集C,数字00-99. 数据为:{2,1,1,2,3,2}
3. 数据字符的表示
在128码中所有数据都是有1-4的六位数组表示,总共绘制成11条黑白条纹。
校验码算法:
校验码=(起始字符值 +第一位数据值*1 +第二位数据值*2+ …. + 第 n 位数据*n )%103;
4. 结束字符:
128码结束字符只有一个在编码表中以Stop 来表示,数据为:{2,3,3,1,1,1,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 (实际上没空格)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
128码有A\B\C三种方式
A B C A B C
00 SP SP 00 11011001100
01 ! ! 01 11001101100
02 " " 02 11001100110
03 # # 03 10010011000
04 $ $ 04 10010001100
05 % % 05 10001001100
06 & & 06 10011001000
07 \' \' 07 10011000100
08 ( ( 08 10001100100
09 ) ) 09 11001001000
现在应该很好理解为什么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 (实际上没空格)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
128码有A\B\C三种方式
A B C A B C
00 SP SP 00 11011001100
01 ! ! 01 11001101100
02 " " 02 11001100110
03 # # 03 10010011000
04 $ $ 04 10010001100
05 % % 05 10001001100
06 & & 06 10011001000
07 \' \' 07 10011000100
08 ( ( 08 10001100100
09 ) ) 09 11001001000
剩余5页未读,继续阅读
资源评论
- 医友智能网络2013-08-22挺实用 其实百度一下也有挺详细的说明
手里没有王
- 粉丝: 114
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功