没有合适的资源?快使用搜索试试~ 我知道了~
通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介
资源推荐
资源详情
资源评论
在信息系统开发时通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介绍一下条码的实现方式及其优缺点。本文主要讨论code39和code128的实现方法。
code39总共可表示的字符范围:0~9,A~Z以及 +、-、*、/、%、$、.等特殊字符,在加上空格符‘ ’,共计44组编码,条码没有长度限制。但code39码能表示的字符的范围挺小的,而且表示出来的条码也比较长。然而,这种条码这pb中实现起来很简单。
Code128相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用。它具有A、B、C三种不同的编码类型,可表示的范围也很广,具体特性大家可以到网上查找相关资料。它能表示高密度数据,条码不会太长。
一、使用条形码字体实现code39、code128
需要在本机上安装code39或code128字体,需要注意的是由于CODE128码字符串包含不可正常显示的字符,你必须使用支持Unicode码的PB版本,如PB10以上。
对于code39来说,通常用“*”号作为起始、终止符,校验码不用。如‘6921168509256’的值为:*6921168509256* 。在数据窗口中可以加一列计算列,表示为:'*'+yourcode+'*' ,然后在将计算列的字体选为:3 of 9 Barcode ,设置一下大小就可以了。需要注意的是code39条码一般都会很长,最好不要用它来表示太长的条码。在pb9和pb10中测试没有问题,用激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
对于code128来说实现起来没那么容易,Code128编码规则:开始位 + [FNC1(为EAN128码时加)] + 数据位 + 检验位 + 结束位。所以这要求我们先要计算出编码结果,然后用128字体表示出来。笔者在网上找了一个实现code128B版本的转换函数,使用它可以将字符串轻松转换。当然,如果大家有时间可以到网上好好查查code128的编码规则,然后自己写个函数。
附CODE128码在PB中的实现源代码。
/*******************************************************************/
//CODE128条码基础知识
//CODE128有三个版本
//CODE128A: 标准数字和字母, 控制符, 特殊字符
//CODE128B: 标准数字和字母, 小写字母, 特殊字符
//CODE128C: [00]-[99]的数字对集合, 共100个
//本函数采用CODE128B版本
//条码由开始位、数据位、校验位、停止位组成
//计算过程:
//1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
//2.计算校验码
//3.组合条码:开始位+数据位+校验位+停止位
int li_asc_total = 104
int li_asc_tmp,i
char lc_start=char(204)//采用CODE128B版本
char lc_stop=char(206)
int li_check_digit
string ls_check_digit
//1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
For i = 1 To len(as_sourcetext)
code39总共可表示的字符范围:0~9,A~Z以及 +、-、*、/、%、$、.等特殊字符,在加上空格符‘ ’,共计44组编码,条码没有长度限制。但code39码能表示的字符的范围挺小的,而且表示出来的条码也比较长。然而,这种条码这pb中实现起来很简单。
Code128相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用。它具有A、B、C三种不同的编码类型,可表示的范围也很广,具体特性大家可以到网上查找相关资料。它能表示高密度数据,条码不会太长。
一、使用条形码字体实现code39、code128
需要在本机上安装code39或code128字体,需要注意的是由于CODE128码字符串包含不可正常显示的字符,你必须使用支持Unicode码的PB版本,如PB10以上。
对于code39来说,通常用“*”号作为起始、终止符,校验码不用。如‘6921168509256’的值为:*6921168509256* 。在数据窗口中可以加一列计算列,表示为:'*'+yourcode+'*' ,然后在将计算列的字体选为:3 of 9 Barcode ,设置一下大小就可以了。需要注意的是code39条码一般都会很长,最好不要用它来表示太长的条码。在pb9和pb10中测试没有问题,用激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
对于code128来说实现起来没那么容易,Code128编码规则:开始位 + [FNC1(为EAN128码时加)] + 数据位 + 检验位 + 结束位。所以这要求我们先要计算出编码结果,然后用128字体表示出来。笔者在网上找了一个实现code128B版本的转换函数,使用它可以将字符串轻松转换。当然,如果大家有时间可以到网上好好查查code128的编码规则,然后自己写个函数。
附CODE128码在PB中的实现源代码。
/*******************************************************************/
//CODE128条码基础知识
//CODE128有三个版本
//CODE128A: 标准数字和字母, 控制符, 特殊字符
//CODE128B: 标准数字和字母, 小写字母, 特殊字符
//CODE128C: [00]-[99]的数字对集合, 共100个
//本函数采用CODE128B版本
//条码由开始位、数据位、校验位、停止位组成
//计算过程:
//1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
//2.计算校验码
//3.组合条码:开始位+数据位+校验位+停止位
int li_asc_total = 104
int li_asc_tmp,i
char lc_start=char(204)//采用CODE128B版本
char lc_stop=char(206)
int li_check_digit
string ls_check_digit
//1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
For i = 1 To len(as_sourcetext)
资源评论
cqf13604082827
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功