VB条形码编程

上传人:鲁** 文档编号:507380949 上传时间:2022-08-10 格式:DOC 页数:21 大小:104.50KB
返回 下载 相关 举报
VB条形码编程_第1页
第1页 / 共21页
VB条形码编程_第2页
第2页 / 共21页
VB条形码编程_第3页
第3页 / 共21页
VB条形码编程_第4页
第4页 / 共21页
VB条形码编程_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《VB条形码编程》由会员分享,可在线阅读,更多相关《VB条形码编程(21页珍藏版)》请在金锄头文库上搜索。

1、用 VB 设计条形码轻印刷系统条形码技术简介条形码作为一种识别输入技术, 由于其显而易见的快速、 准确、 低廉等优点, 被广泛应 用于商品流通、图书馆管理等众多的自动化管理系统中。条形码是利用条(着色部份) 、空(非着色部份)及其宽、窄的交替变换来表达信息。 每一种编码, 都制定有字符与条空、 宽窄表达的对应关系, 只要遵循这一标准打印出来的条、 空交替排列的 “图形符号” ,这一“图形符号” 中就包含了字符信息; 当识读器划过这一 “图 形符号”时,这一条、空交替排列的信息通过光线反射,在识读器内,这种光信号被转换成 数字信号,再经过相应的解码软件,就能将“图形符号”还原成字符信息。三九码是

2、一种应用比较普遍的条形码, 它长度可变、 可校验,容纳的字符多达 43 个(包 括数字 09、字母 AZ 及其它七个特殊字符) 。由于在表示每一字符时,使用 9 个元素,其 中 3 个宽元素、 6 个窄元素,故名 39 码,这 3 个宽元素中必须有两个是条(有四个特殊用 途的字符除外)。如字母“ J”的编码规则为:“ NNNNWWW/N其中N表示窄元素, W表示宽 元素,奇数位为条元素,偶数位为空元素,宽窄元素的宽度尺寸比为23,且在同一个条码中必须是固定的。 在打印制作条形码时, 条是需要打印 (着色) 的,而空元素内不必打印的, 不过要将其宽度计算在内。 对于某一要打印的字符串, 按其先后

3、顺序打印, 串前串后各加一 个“ *”符号做为起始符与终止符,相邻的字符间在打印时由“位空”分隔,“位空”类似空元素,即不着色部分,其宽度应小于1.35mm,为编程方便,通常取为一个窄元素的宽度。条形码的制作有制版印刷、 轻印刷两种方式, 轻印刷是指使用普通打印机, 在计算机控 制下制作条形码。 这种制作方法灵活, 成本较低, 即适宜于同一号码的单条制作, 也可用于 同一号码的大量制作, 这一特点是制版印刷无可替代的。使用计算机软件打印条形码, 其原理是将条形码作为图形来看待,用编程语言中的绘图语句- 画矩形框,在相应的坐标上画出各种宽度不同的条元素,这样即可实现条形码的计算机软件打印。VB

4、中几种打印功能在条码打印时的比较VisualBasic 是近年来比较流行的编程语言,功能强大,易学易用。VisualBasic 对打印功能提供了两种输出方式: 一是首先将条码输出到某一对象, 再使用该对象中 Print 方法, 将其输出到打印机;二是使用打印机对像 Printer 绘图。下面对这种方法做个比较:一、将条形码图在窗体上绘出,再使用 PrintForm 方法打印窗体。窄条打印: Line(x,y)-step(i,h),bf 宽条打印: Line(x,y)-step(3*i,h),bf或Line(x,y)-step(2*i,h),bf再使用 formname.PrintForm 将条

5、形码输出到打印机。在这种方式下,窗体的量度单位可以有: twip,point,picel 三种其中以 twip 为单位为 最小。以 twip 为单位, 对条形码来说, 打印精度可达 30 ,即当窄元素宽度必须等于或大于30时,打印出来的条形码可以阅读,若窄元素的宽度小于30 ,条形码中相邻的条会粘连在一起,无法识读。当窄元素宽度为30时,“ J10059”六位字符条码尺寸为:67mm以Picel为单位,打印精度可达2,当窄元素宽度为 2时,“J10059”六位字符条形码尺寸为80mm以上。以 Point 为单位, 打印精度可达 2,当窄元素宽度为 2 时, J10059 六位字符条形码尺寸 为

6、 110MM。二、直接使用 Printer.Line ,在打印机上绘画 - 画矩形框窄条打印: Printer.Line(x,y)-Step(i,h),bf宽条打印: Printer.Line(x,y)-Step(3*i,h),bf或Printer.Line(x,y)-Step(2*i,h),bf用 Printer.Line 打印, 量度单位为点, 最小精度为达 10,当窄元素宽为 10时, J10059 六位字符之条码尺寸为:21MM。根据以上的比较, 使用第二种方法打印输入的条形码精度最高 (同样的字符数, 尺寸最 短)。很显然,不同的打印方式,分别有不同的适用范围,对尺寸宽度要求不高的情

7、况下, 可以使用第一种打印方式,若对条形码尺寸要求较严格,则使用第二种打印方式更合适。软件设计一、菜单设计: 由于条形码轻印刷软件相对说来是一个很小的系统,需要选择的项目不多,可以不设置菜单, 而将全部的操作由窗体控件来完成。 如果使用上述的第一种打印方式, 则必须建立另一窗体,用于第一步的输出条形码图形。二、设计窗体控件:窗体中的控件包括两大类,即:参数设置框、打印操作按钮。本列 设计的窗体见图示。 本列给出的是一个对参数没有设置功能的窗体, 有兴趣的读者可以在此 基础上自行补充它。对于打印参数,对条形码的打印来说,需要指定的参数大致有:条码宽窄比:3: 12:1 ;条码高;窄元素宽度;打印

8、机类型及端口;打印份数;打印纸尺寸规格;每行条形码数; 每个条码的字符数;是否自动增值打印;增值步长;每一页行计数起止数;终止码等。本列设计了八个按钮,其作用分别是:Begin- 单号条形码打印开始Auto- 自动增值打印开始Page- 将打印机内存中的条码(不足一页)打印出来Cancel- 中止自动增值打印Delete- 清除打印机内存中的未打印条码Help- 帮助信息About- 版本及设计信息Exit- 关闭系统三、程序流程:在本例中, 条形码的打印分为单号打印; 自动增值打印两种。单号打印, 是用户输入一 个或几个需要打印的号码的打印方式; 而自动增值打印是用户指定起始号、 终止号及增

9、加步 长,由机器自动生成被打印号码来打印。 其实这两种方式在打印时的操作是完全一样的, 不 同之处在于被打号码的获取,需要注意的是由于 39 码字符集中包括字符,在自动增值时要 与纯数字码区别。下面以单号打印为例,介绍条形码打印的程序流程。1 检查各项参数设置是否完全正确,若正确,则继续,否则退出;2 获取各项参数设置;3 为 X 坐标取初值(纸的左边打印边界) ;4 (循环A)是否打印完一行(I条条码)?是则转 14;5 本条条码是否为空?是则将横坐标加上一条条码之宽度;6 打印起始符;7 .(循环B)是否打印完本条条码(J个字符)?是则转10;8 打印一个字符的条码;9 .(循环B)下一个

10、字符;10 打印终止符;11 修改 X 坐标;12 (循环A)下一条条码13 修改 Y 坐标;14 打印本行每一条码的人工识别字符;15 本页是否已打满?是则打印,并对新页坐标初始化;16. 退出四、程序代码:用于检查参数设置正确性的程序主要从各项参数间的关系去检查。如根据使用的宽度、 高度、每行条码数,判断是否超出了纸的打印范围;输入的号码是否合法等。可以为每字符设计一段各自的打印程序, 这种方式编程简单。 也可以将打印程序与条形 码的编码规则分离, 通过参数传递某一字符的编码规则, 不同的字符共享同一打印程序。 本 列采用前一种方式。如字母“J ”的编码规则为:“ NNNNWWW,打印程序

11、代码如下:PrivateSubprn_J()Printer.Line(x,y)-Step(widt,high),BF注释:打印窄条x=x+widt 注释:改变 X 坐标 x=x+widt 注释:打印窄空 Printer.Line(x,y)-Step(widt,high),BF x=x+widt x=x+widtPrinter.Line(x,y)-Step(w_n*widt,high),BF注释:打印宽条x=x+w_n*widt 注释:改变 X 坐标 x=x+w_n*widt 注释:打印宽空Printer.Line(x,y)-Step(w_n*widt,high),BFx=x+w_n*widtx

12、=x+widtPrinter.Line(x,y)-Step(widt,high),BF x=x+widtx=x+widt 注释:打印位空EndSub其中x,y分别为坐标值,w_n为宽窄元素宽度比,widt为窄元素的宽度值(点),high为条形码高度,每打印一个条元素,应立即改变X坐标,以便打印下一个元素;打印空元素时,由于是不着色,只需改变X坐标即可;每一个字符打印结束时,应打印一个位空(本列中位空宽度等于窄空) 。其它的 42 个字符的编码规则, 读者可以在有关条形码技术的文献中 查到。VB条形码编程实例条形码技术广泛应用于各行各业, 你随便拿起一本书、 一包薯片都可以在外包装上找到, 利

13、用条码读取机便可将这一条条黑白相间、 粗细不同的垂直线条识别而转换为具体的数值, 并 将这个数值返回到计算机中进行处理。 正是这样, 有了条形码技术, 人们很方便就能取得该 商品的有关信息如商品名称、 规格、 价格等, 因为每种商品都有其对应的条形码, 这个条形 码计算机(终端、服务器)中就可以迅速返回用户,从数据库中读取约定的商品,信息使得 销售、进货、存货等等管理更有效率,也对防止假冒伪劣又一定的抑制作用。 条码的编码方式有多种, 不同行业, 不同国家标准也不尽相同。 条形码通过线条的粗细来表 达其数值。 至于接口方式一般也有多种, 如键盘口的、 串行口的。 一般传感装置是光罩式的, 也有

14、笔式的。上面笼笼统统地谈了一些关于条形码的知识, 可帮助你更好地阅读以下更深入的内容。 条形 码有关概念先说到这里,接着是详细具体的编程实现方法。一、条形码的读取 用过键盘口式的扫条码工具的朋友就知道, 它就如同在鍵盘上按下数字鍵一样, 基本不需任 何编程和处理。 但如果你使用的是其它接口的话, 可能你就要为该设备编写通讯代码了。 以 下有一段简单的 25 针串口的条码读取器通讯代码。OptionExplicit DimsDataAsStringPrivateSubForm_Load()WithMSComm1.CommPort=3设为COM3试运行的系统而定,你可提供一个Combox让用户选择

15、。.PortOpen=True 打开通讯端口 EndWithEndSubPrivateSubMSComm1_OnComm()DimEndPosAsIntegerSelectCaseMSComm1.CommEventCasecomEvReceive 当有数据传送过来时 sData=sData&Trim(MSComm1.Input) 检索回车 , 通常读卡机每组数据結尾都返回一个回车作为结束符 EndPos=InStr(1,sData,Chr(13)IfEndPos=0Then 如果未结束就继续努力Else 读完一组。 lblBarCode.Caption=sData 显示一组条形码 WithlstBarCode.AddItemMid(sData,1,EndPos-1) 添加一组条形码到列表 EndWithsData= 清空 EndIf EndSelect EndSubPrivateSubcmdEnd_Click()MSComm1.PortOpen=False 关闭端口EndEndSub二、条形码的生成 看完以上关于条码读取的代码是否觉得很容易呢?对,在 VB 上编程本来就不难。以下关于 条形码生成的代码也是很容易理解,只需使用一个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号