ReportMachine打印条形码的问题

  最近用RM报表来打印条形码,调试过程非常顺利,扫描枪识别也很正常,唯独斑马打印机的走纸不准确是个问题,正好客户不想用这种纸型,并定制了新纸型,心想等新纸型到后再调试报表的走纸问题不迟。
  几天后,新纸型到,于是在新纸型下进行调试,却发现新纸型的走纸非常正确,一想便明白是传感器的问题,原来的纸型宽,不适用这种斑马打印机,现在好了,走纸问题没有了,可以交付程序了。一个同事说别扫描枪不识别,我心里不以为然,另外一个同事顺手把打出来的条码往扫描枪一靠,我靠,还真没识别出来,又连续打了好几张,都不能识别,这下晕了。换原来的宽纸打印,能识别了。但是客户订的是窄纸型且窄纸无走纸不准确问题,只能用窄纸打印,便琢磨着问题出在哪儿,打印驱动、扫描枪、电脑都换了一遍,还是不行。细心的客户比较了一下两种纸,发现窄纸质量不如宽纸好,但是这也不能解决问题。再仔细看看,总感觉RM打印的条码不是很锐利,感觉模模糊糊的,尤其是细线几乎就没打印出来,放大一看,原本应该是直线的,但是实际上是圆角直线,觉得这就是问题所在。那就换控件吧,从网上找了N多条码控件,并研究了几种条形码的绘制方法与验证码的生成,但是不能嵌入到RM中,就没法用。

  已经夜里十二点了,突然想起RM的条形码也是抄别人的代码,如果找到该代码的升级版,也许可以解决问题,说找就找,经过一番搜索并对比,还真找到了原版代码,再仔细一看,靠,居然版本比RM用的还低,没招,还是研究一下RM的代码,看看能否找出问题所在,仔细看了RM的RM_AsBarCode单元,觉得没有什么问题,无意中发现了还有个RM_AsBarView单元,打开一看,原来RM是在这里通过调用RM_AsBarCode的DrawBarCode方法来绘制自己的画布的,估计应该是这里出问题了,经过研究,RM是采用了TMetafile类来进行绘制并放大的,这个类的好处是放大的失真度比较小,对于处理文字和图形应该是比较好的方案,但是处理条形码估计就不行了,于是换成TBitmap进行绘制,打印出来的条码放大后锯齿状明显,在正常情况下却是非常锐利的,心想这下问题应该解决了。连接打印机,一下打了十几张条形码,十几张条码扫描都非常顺利。

最新文章

  1. Java (JVM) Memory Model – Memory Management in Java
  2. Vim指令备忘
  3. Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法【转载】
  4. HeartBeat的一些介绍和功能上的一些总结
  5. Spring框架及IOC容器
  6. zabbix短信网关调用问题总结
  7. 最大类间方差法(Otsu)
  8. javascript学习代码--点击按钮显示内容
  9. 实战weblogic集群之创建domain,AdminServer
  10. linux中vsftpd配置文件详解
  11. 具体说明 Flume介绍、安装和配置
  12. 常见六大Web安全攻防解析
  13. Java访问级别修饰符
  14. 03.Django的MTV开发模式详解和模型关系构建
  15. 测试思想 QA的价值体现
  16. Web处理方式
  17. windows上dubbo-admin的安装
  18. Promise 学习
  19. Revit Family API 创建参考平面
  20. oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)

热门文章

  1. Python socket & socket server
  2. 【day05】php
  3. ES6中有关数组的一些新操作
  4. SQLyog 图形化数据库的操作教程
  5. COMP222 - 2019
  6. DAX 第九篇:文本函数
  7. WPF ControlTemplate,DataTemplate
  8. C#动态创建单例类的对象
  9. 对象数组自定义排序--System.Collections.ArrayList.Sort()
  10. DLT645 1997 协议解析