注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 网工人才缺口大 传统网管..
 帮助

条码生成与打印的技术实现


2007-08-31 11:17:57
 标签:条码   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://foresun.blog.51cto.com/221037/40487
条码打印不是什么新技术,实现方式也是多种多样,最简单方式就是购买条码打印字体,这样指定条码文本为相应的条码打印字体就可以实现了(当前产品线比较丰富的商业化条码打印字体我推荐采用BarcodeSoft的条码打印字体,其网站地址为http://www.barcode-soft.com,BarcodeSoft提供的字体不光有一维的,还有二维的,甚至签名字体等)。
一个项目中需要使用条码打印技术,开始准备使用条码打印字体,但是同甲方原来采用的条码打印方案无法实现平滑过渡,于是采用条码控件来实现。
条码生成控件最知名的应该是Ms barcode control 9.0了(即MSBCODE9.OCX,这个控件包含在Ms Office2000之后,随MsOffice免费提供)。不过这次我们使用的是FathSoft公司(网址http://www.fathsoft.com/)的条码控件BarcodeX.OCX。这个控件显然比MsBCode9要好用一些,能够在高级语言如VC、C#、Delphi、VB、PB中非常容易地实现条码生成。BarCodeX控件采用的是同打印字体不同的另一种条码实现方式,将指定文本的条码实现为BMP图片(还支持EMF或者PNG格式),然后再将图片显示在指定的显示区域(如果仅仅只是显示,根据不同的编程环境还有其它不同的处理方法)或者打印区域。
BarCodeX 5.3产品介绍说它能支持的条型码包括EAN-13, EAN-8, EAN-2, EAN-5, UPC-A, UPC-E, Code39, Code39 Ext., Code93, Code 128, EAN-128, ISSN, ISBN, Plessey, Code11, Code25, Code25 Int., Codebar以及PDF417二维条形码,可以用于Windows的应用软件中,如MS Word、MS Access,也可以集成在Visual Basic, VisualStudio .NET编写的应用程序以及ASP页面中。
使用BarCodeX.OCX实现条码生产与打印的步骤如下:
  1. 在指定的容器中加入条码控件BarCodeX.OCX。
  2. 设置条码打印控件的代码类型(barcodeType,比如为8:Code128)、条码对齐方式(BarcodeAlign,0:左对齐,1:中间对齐,2:右对齐)、条码显示方向(Orientation,0:正向,1:旋转90度,2:旋转180度,3:旋转270度)、是否根据显示区域自动调整条码大小的比例(Scaling,0:不按照比例显示,1:按照比例显示)、字体(条码文字显示的字体)等参数。
  3. 根据需要赋予条码打印控件的条码值(Caption,如Caption="C2705004010507112ABCED")。
  4. 调用控件方法CreateBMP( strFile, nWidth, nHeight )生成条码打印图片,其中strFile是需要保存的条码图片的文件,当然既然要保存为BMP图片,文件的后缀名理当为BMP,nWidth和nHeight分别指定图片的宽度和高度。
  5. 在显示和打印中调用上述形成的BMP文件即可。

本文出自 “富盛软件工作室” 博客,请务必保留此出处http://foresun.blog.51cto.com/221037/40487





    文章评论
 
2007-08-31 21:09:41
一个项目中需要使用条码打印技术,开始准备使用条码打印字体,但是同甲方原来采用的条码打印方案无法实现平滑过渡,于是采用条码控件来实现。
方案记下啦,呵呵

2008-01-31 18:39:45
多谢楼主分享。
受益匪浅。

2008-08-18 15:34:34
用barcodex.ocx 打印UPC_A条码时,barcodeType的值应该是多少?

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: