Lodop在WEB页面中打印二维条码并设置固定宽高大小
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在WEB下打印条码的传统办法,一种是在客户端操作系统内安装专门的条码字体库;另外一种办法是在服务器端提前生成条码图,然后客户端用输出图片的方式来打印。两种办法的弊端是显而易见的,对于条码值更长更复杂的二维码,第一种方式甚至都无法实现了,只能靠第二种打印图片的方式,但假如条码的内容值是前端页面程序通过用户操作临时产生的(例如JS富客户端),那么这种方式也没辙了。 用免费打印控件Lodop输出条码,就克服了以上所有弊端,显然简单可行的多。这种方式不需要安装条码字库,也不需要服务器端预先生成图片,WEB页面用javascript语句调用控件函数直接输出,打印时无论一维条码还是二维码,仅需要一行语句就可以实现,语法格式如下: LODOP.ADD_PRINT_BARCODE(Top,Left,Width,Height,BarCodeType,BarCodeValue); 函数的前四个参数用来控制条码在纸张中的输出位置和区域大小,最后俩参数指明条码的类型和内容值。条码类型的可选值很多,当其为"QRCode"时表示打印输出QRCODE型二维码,例如下面的真实语句: LODOP.ADD_PRINT_BARCODE(10,20,100,100,"QRCode","1234567内容可以包含汉字"); 这里两个100表示条码区域宽和高都是100px(1px=1/96英寸),控件会根据这个区域值来自动适配QRCODE的版本(QRCodeVersion),版本是QRCODE二维码的重要属性概念,它决定了内容值的长度,QR码分为 version 1 到version 40 共40种类型,目前Lodop控件只支持版本1、2、3、5、7、10、14这7个常用版本。另外容错率影响QRCode版本的最大输出值,设置容错率的语句: LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M"); //L为低容错率7%,默认是M级容错率15%,最高级H级容错率是30% 在容错率为M时,对应的内容值长度如下: 版本1 => 最大内容长度是14个字符或7个汉字; 版本3 => 最大内容长度是42个字符或21个汉字; 版本7 => 最大内容长度是122个字符或61个汉字; 版本14=> 最大内容长度是362个字符或181个汉字; 最后的版本14都可以在这么小的区域内打印一篇短文了,可见二维码的科学性和信息优势有多大呀!但高版本由于条码密度大,扫描失败可能性增加,所以有时候你可能非常希望打印低版本的条码,如下这句指令就可以强制控件按版本3来打印: LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",3); 正常情况下需要以上两行指令才达到目的,这样说是不是感觉我也是标题党呀,呵呵,当然,以上仅是我的粗浅认识,还请朋友们留言指正。 完整代码如下: LODOP.ADD_PRINT_BARCODE(10,20,100,100,"QRCode","1234567"); //第一个二维码 效果: 在线演示如下: http://www.mtsoftware.cn/demolist/PrintSample2.html 更多详细介绍: 一、条码语句默认是Auto类型自适应宽度或高度,默认Auto属性,如下图。
图(一) 二维码或条码是由竖条和横条组成,设定宽度后,自动计算每条应占用的宽度,计算后的合计宽度一般是小于等于设定宽度,所以条码或二维码的增大或缩小是受每个竖条或横条的宽度合计值影响,比如40个竖条,每一个增加1px,总宽度就增加了40px,所以宽度和高度跳跃式放大或缩小,是非线性。默认Auto属性,QRCode二维码根据内容多少自动调整显示级别,也就是宽度和高度的自适应。 二、去掉默认auto自适应属性,保证输出的二维码宽高不变 用类似这个语句设置条码属性到具体版本号就可以了: LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",5); //其中参数5是版本号 C-Lodop和Lodop主要支持二维码类型:QRCode和PDF417,常用的是QRCode,QR码分为 version 1 到version 40 共40种类型,目前C-Lodop和Lodop支持7种版本:1、2、3、5、7、10、14。 另外容错率影响QRCode版本的最大输出值,设置容错率的语句: LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","L"); //L为低容错率7%,默认是M级容错率15%,最高级H级容错率是30% 相对于低容错L 7% 所能输出的最大字符数值如下: 版本1:最大值17个字符 版本2:最大值32个字符 版本3:最大值53个字符 版本5:最大值106个字符 版本7: 最大值154个字符 版本10:最大值135个汉字 271个字符 版本14:最大值229个汉字,458个字符 超出了会有内容溢出提示“QRCode data overflow”,如果条码内容为空提示“QRCode data null” 该文章在 2023/10/21 14:49:31 编辑过 |
关键字查询
相关文章
正在查询... |