Lodop打印条码二维码的一些设置
Lodop绘制条码图功能让条码打印变得很简单,客户端不用安装专门的条码字库,该函数格式如下:
ADD_PRINT_BARCODE(Top,Left,Width,Height,BarCodeType,BarCodeValue);
关键参数含义:
Width 条码的总宽度,计量单位px(1px=1/96英寸)
Height 条码的总高度(一维条码时包括文字高度)
BarCodeType 条码的类型(规制)名称
BarCodeValue 条码值
目前LODOP支持24种一维码和2种二维码,具体支持哪些可查看官网的样例和Lodop技术手册。
关于条码二维码宽度:
Lodop打印条码二维码设置多宽不一定是多宽
一些常见的样式设置
LODOP.ADD_PRINT_BARCODE(88,32,206,78,"128B","123456789012");//设置条码位置、宽高、字体、值
LODOP.SET_PRINT_STYLEA(0,"FontSize",18);//设置上面这个条码下方的文字字体大小
LODOP.SET_PRINT_STYLEA(0,"Color","#FF0000");//设置当前条码以及条码下方字体的颜色
LODOP.SET_PRINT_STYLEA(0,"Angle",180);//设置旋转角度
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);//设置是否显示下方的文字
LODOP.SET_PRINT_STYLEA(0,"AlignJustify",2);//设置条码下方的文字相对于条码本身居中
LODOP.SET_PRINT_STYLEA(0,"AlignJustify",1);//设置条码下方的文字相对于条码本身居左
LODOP.SET_PRINT_STYLEA(0,"AlignJustify",3);//设置条码下方的文字相对于条码本身居右
LODOP.SET_PRINT_STYLEA(0,"GroundColor","#0080FF");//设置条码的背景色
官网一些问题的详细介绍:
一、条码语句默认是Auto类型自适应宽度或高度,默认Auto属性
二维码或条码是由竖条和横条组成,设定宽度后,自动计算每条应占用的宽度,计算后的合计宽度一般是小于等于设定宽度,所以条码或二维码的增大或缩小是受每个竖条或横条的宽度合计值影响,比如40个竖条,每一个增加1px,总宽度就增加了40px,所以宽度和高度跳跃式放大或缩小,是非线性。默认Auto属性,QRCord二维码根据内容多少自动调整显示级别,也就是宽度和高度的自适应。
最小宽度小于1px时就无法再小了,就要调整条码纸的宽度以适应内容输出的宽度,或调整内容输出量达到调整输出宽度效果。
二、去掉默认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。另外容错率影响QRCord版本的最大输出值,设置容错率的语句: 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个字符
超出了会有内容溢出提示“QRCord data overflow”,如果条码内容为空提示“QRCord data null”
几个条码类型简单描述
128A: 标准数字和字母, 控制符, 特殊字符
128B: 标准数字和字母, 小写字母, 特殊字符
128C: [00]-[99]的数字对集合, 共100个(只能包含数字,一个条码字符代表两位数字)
128AUTO:会自动在几个代码集中切换。
128C 只能打数字,可以打到超窄 ,有客户可以打到12毫米
影响条码识别率
首先尽量要用Lodop、C-Lodop最新版本,新版本对条码输出有很多改进;
其次,如果测试Lodop一维码,要打印到纸张上之后扫描,不能从屏幕扫描,原因是Lodop一维码输出按打印分辨率控制精度的,而二维码可以从屏幕扫描测试;影响扫描识别率的另外一个关键原因是条码总宽度,特别是打印设备的输出精度不高时。也就是说总宽度越窄,对打印设备精度要求越高;
再有,同样的内容,要选择识别更容易的码制类型,例如当内容全部是数字时,要选择128C而不用128A,后者可以用字母,但识别率相对较低;
我们在实际测试中还发现,扫描枪的使用手法也很有影响,例如有时扫描枪离条码不能太近(当然不能极远),尽量调整好扫描距离,这是对比扫描率的基础,有时这个失误会让测试结果大相径庭;一维条码的总宽越大,扫描枪的距离则越远才行,扫描手法失误有时会严重影响扫描识别率,比打印设备的精度和浓度的影响还大。我认为调整条码宽度最重要的使命就是让总宽合适,从而让扫描距离适中。如果是二维码,要注意扫描软件的字符集局限,要多试试其它字符集,如UTF-8,GB2312等等;
最后,打印时注意调整一下打印浓度,很可能让识别率大大提高;
总之,条码打印不是一簇而就的工作。
Lodop打印条码二维码的一些设置的更多相关文章
- Lodop打印条码二维码设置多宽不一定是多宽
Lodop输出二维码和条码,可用如下语句,其中下面的width和height参数,设置了条码或二维码多宽,会发现可能不是设置的宽度或高度.ADD_PRINT_BARCODE(Top,Left,Widt ...
- LODOP条码二维码简短问答及相关博文
LODOP如何输出条码 条码输出 参考样例11 http://www.c-lodop.com/demolist/PrintSample11.html超文本表格中的条码参考样例47 http://www ...
- Lodop打印二维码内容长度不同如何大小相同
利用Loodop打印控件打印二维码的时候,往往传入的数值是变量,有的只有一个数字,有的却一大堆数字和字母,根据内容长度不同,二维码大小也不同,这样如果批量打印二维码标签,传入的数据是不同的,会造成有的 ...
- 提高zxing生成二维码的容错率及zxing生成二维码的边框设置
最近做了一个项目要生成二维码,跟几年前不同,最近大家都喜欢在二维码中间加logo. 加logo倒是不难,两个图片叠一起就是了,但是遇到一个新问题,logo加得太大的话,会导致二维码扫描不出来;加的太小 ...
- C# 通过Bartender模板打印条码,二维码, 文字, 及操作RFID标签等。
1.在之前写的一篇文章中, 有讲到如何利用ZPL命令去操作打印里, 后面发现通过模板的方式会更加方便快捷, 既不用去掌握ZPL的实现细节, 就可以轻松的调用实现打印的功能. 解决方案: 1.网络下载 ...
- 免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
在生活中有一种东西几乎已经快要成为我们的另一个电子”身份证“,那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) , ...
- PHP二维码生成的方法(google APi,PHP类库,libqrencode等)
原文地址: http://blog.csdn.net/liuxinmingcode/article/details/7910975 ================================== ...
- java代码生成二维码以及解析二维码
package com.test; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedI ...
- DotNet二维码操作组件ThoughtWorks.QRCode
DotNet二维码操作组件ThoughtWorks.QRCode 在生活中有一种东西几乎已经快要成为我们的另一个电子"身份证",那就是二维码.无论是在软件开发的过程中,还是在普通用 ...
随机推荐
- Jquery弹窗组件
下面是写的简单的Jquery弹窗组件 暂不支持animate,只能满足一般的弹窗显示隐藏需求,更多功能后续会完善!网上及jquery组件很多这样的弹窗,但是用别人的感觉心里过不去,所以就随便写写,当做 ...
- Python脱产8期 Day02
一 语言分类 机器语言,汇编语言,高级语言(编译和解释) 二 环境变量 1.配置环境变量不是必须的2.配置环境变量的目的:为终端提供执行环境 三Python代码执行的方式 1交互式:.控制台直接编写运 ...
- Omi框架学习之旅 - 组件通讯(data通讯) 及原理说明
接着上一篇的data-*通讯,这篇写data通讯. data通讯主要为了复杂的数据通讯. 老规矩:先上demo代码, 然后提出问题, 之后解答问题, 最后源码说明. class Hello exten ...
- 汇编指令:ldr和str,ldm和stm的区别
(1)LDR:L表示LOAD,LOAD的含义应该理解为:Load from memory into register.下面这条语句就说明的很清楚: LDR R1, [R2] R1<— ...
- Redis详解(八)------ 主从复制
前面介绍Redis,我们都在一台服务器上进行操作的,也就是说读和写以及备份操作都是在一台Redis服务器上进行的,那么随着项目访问量的增加,对Redis服务器的操作也越加频繁,虽然Redis读写速度都 ...
- vba 弹框
'第三个按钮,上传数据到数据库 Private Sub CommandButton1_Click() str1 = "abcde" str2 = InputBox("请输 ...
- linux ssh修改 默认22端口
修改ssh 配置 /etc/ssh/sshd_config service sshd restart
- odoo订餐系统之订单设计
订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...
- PCB之PASTE助焊层和SOLDER阻焊层
1.PASTE为焊接层,用于SMT贴片元件的焊接,对应的图形为钢网(钢网上的小孔): 2.SOLDER为阻焊层,它代表的是绿油的涂抹区域,且为负片输出(负片输出指的是图形以外的区域为有效区域): PA ...
- Centos下Nodejs+npm环境-部署记录
公司的一个项目上线,需要用到Nodejs和npm环境,这里记录下安装过程,方便回看同时供大家参考. 1)yum安装方式(版本比较老点,v5.12.0 + 3.8.6) 需要在centos中添加epel ...