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 在生活中有一种东西几乎已经快要成为我们的另一个电子"身份证",那就是二维码.无论是在软件开发的过程中,还是在普通用 ...
随机推荐
- OpenCV——轮廓填充drawContours函数解析
函数的调用形式 void drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const ...
- PAT A1117 Eddington Number (25 分)——数学题
British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, h ...
- 编程实现类似Linux下cp功能
MyCP的代码实现 一.题目要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...
- Python package和module
package,即包,可以把功能相近的module(模块)组织在一起,以便更好地管理.Java中也有包的概念,作用类似,是为了更好地管理类和接口.package,说白了就是个目录,不过这个目录下一定要 ...
- Android学习之触点事件的处理
知识点: 1. Android开发中的运动事件:触摸屏(TouchScreen)和滚动球(TrackBall) 2.对运动事件的处理:MotionEvent 3.触摸时必发的三个MotionEvent ...
- Linux命令——df/du/time
一.df(disk free) df命令可以用来检查 linux服务器的文件系统的磁盘空间占用情况,可以知道硬盘被占用了多少空间,目前还剩下多少空间等信息. 1)命令格式 df [参数] 文件名 2) ...
- android 权限动态申请
名字其实有点让人感觉高大上"权限动态申请",其实也没有什么, 以前做Android程序的时候,比如需要打开摄像头 那么需要在 然后就可以了, 但是Android6.0之后呢,有些权 ...
- highcharts中数据列点击事件
Highcharts.chart('container', { xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul ...
- mysql中Error : Invalid default value for 'timestamp'问题
在执行mysql数据库时报错 timestamp给默认值出问题. 原因是:mysql的配置参数中sql_node中NO_ZERO_IN_DATE, NO_ZERO_DATE控制了times ...
- 大话设计模式之模板模式 C#
学无止境,精益求精 十年河东,十年河西,莫欺少年穷 今天一起探讨模板模式,如下: 一.概念 上一篇文章讲了大话设计模式:原型模式,原型模式主要是通过Clone()方法<深浅复制>,创建新的 ...