在WEB下打印条码的传统办法,一种是在客户端操作系统内安装专门的条码字体库;另外一种办法是在服务器端提前生成条码图,然后客户端用输出图片的方式来打印。两种办法的弊端是显而易见的,对于条码值更长更复杂的二维码,第一种方式甚至都无法实现了,只能靠第二种打印图片的方式,但假如条码的内容值是前端页面程序通过用户操作临时产生的(例如JS富客户端),那么这种方式也没辙了。
用免费打印控件Lodop输出条码,就克服了以上所有弊端,显然简单可行的多。这种方式不需要安装条码字库,也不需要服务器端预先生成图片,WEB页面用javascript语句调用控件函数直接输出,打印时无论一维条码还是二维码,仅需要一行语句就可以实现,语法格式如下:
LODOP.ADD_PRINT_BARCODE(Top,Left,Width,Height,BarCodeType,BarCodeValue);
函数的前四个参数用来控制条码在纸张中的输出位置和区域大小,最后俩参数指明条码的类型和内容值。条码类型的可选值很多,当其为"QRCode"时表示打印输出QRCODE型二维码,例如下面的真实语句:
LODOP.ADD_PRINT_BARCODE(10,20,300,300,"QRCode","1234567内容可以包含汉字");
这里两个300表示条码区域宽和高都是300px(1px=1/96英寸),控件会根据这个区域值来自动适配QRCODE的版本(QRCodeVersion),版本是QRCODE二维码的重要属性概念,它决定了内容值的长度,目前控件支持版本1、3、7、14等四个最常用的版本,对应的内容值长度如下:
版本1 => 最大内容长度是14个字符或7个汉字;
版本3 => 最大内容长度是42个字符或21个汉字;
版本7 => 最大内容长度是122个字符或61个汉字;
版本14=> 最大内容长度是362个字符或181个汉字;
最后的版本14都可以在这么小的区域内打印一篇短文了,可见二维码的科学性和信息优势有多大呀!但高版本由于条码密度大,扫描失败可能性增加,所以有时候你可能非常希望打印低版本的条码,如下这句指令就可以强制控件按版本3来打印:
LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",3);
正常情况下需要以上两行指令才达到目的,这样说是不是感觉我也是标题党呀,呵呵,当然,以上仅是我的粗浅认识,还请朋友们留言指正。
在线演示如下:http://mt.runon.cn/samples/PrintSample11.html
该文章在 2012/9/25 1:06:43 编辑过