[票据打印]使用扫描仪加快可视化编程工具下票据套打的开发

原创 2004年09月11日 00:55:00

今天在论坛中看到有人在讨论关于票据打印的问题
在DOS年代,我们是直接用控制打印机对象的方法进行单字打印。
在现在图形界面开发的程序中,仍有很多人在使用这种方法。
当然这种方法的好处是显而易见的,打印位置准确,容易控制走纸,
而且比其他的打印方式相对能延长打印机寿命,节约打印成本。

使用printer对象控制打印的唯一问题是开发时调整位置需要相当长的时间。

在现在的很多项目中,我们使用的是可视化的编程工具,相应的打印方法又增加了很多。
有人采用的是使用Excel模板的方法,将输入写入到Excel模板来控制打印。
这个方法固然有好处,但是其问题是在打印时需要启动一个Excel应用。
在进行大量快速打印的时候,这个问题就更为突出。

现在我们来切入正题,票据类的套打一般就是打印细目,金额等信息
打印前可能需要进行预览,然后进行打印,打印时不需要打印发票上已经有的内容
如文字,边线。
部分单位可能需要在打印内容的基础上需要打印一个公章类的印记。

在实际的操作中,我们用扫描仪扫描该发票,
使用图形处理工具处理成灰度,注意扫描的时候可能会导致大小有些变形,需要调整大小。
然后打印出来与实际票据对比,直到大小一致。
这个过程很快的,大概只要几分钟的时间,如果开发时使用15寸显示器(1024*768),
那么票据大小与屏幕上显示的比例基本就是1:1
如果是17寸显示器(1024*768),屏幕上的显示就比实际打印出来的大。

在开发时,选定一个Form,将Form的底色设置成白色,把处理好后的图设置为底图。
将Form调整为与图片一样大小。
然后将Label控件拖到对应的位置(或者用),在程序中只要更改这些Label的值就可以了。
这样根本就不用在去在界面上画线,还要一遍一遍地去对应位置,基本是一次成功
设置完毕后就可以直接打印,打印前将Form的底图取消掉即可。

这样的好处是在打印前可以直接预览而不用再进行特别处理。

代码大致如下:

'---------------------------------
'假设我们打印2004年9月的固话帐单
'基本信息
lblYear.caption="2004"
lblMonth.caption="09"
lblUserName.caption="Babyt(阿泰)"
lblUserID.caption="12345678"
'话费条目
lblItem(0).caption="市话月租费"?'项目
lblTimes(0).caption=""???'次数
lblFee(0).caption="25.00元"??'费用
lblItem(1).caption="区间通话费"?'项目
lblTimes(1).caption="800次"???'次数
lblFee(1).caption="80.00元"??'费用

.....

lblMoneyCN.caption="壹佰贰拾元整"
lblMoneyEN.caption="¥120.00"
'设置完毕
'---------------------------------

'界面上不要出现按钮之类的
'Form上增加KeyDown事件,如果按下回车键,进行提示打印
'如果确定打印,使用以下语句取消掉背景图片
frm.Picture=LoadPicture("")
'然后进行窗体打印即可
Me.PrintForm

在后面的文章中,我将讲解如何进行走纸张控制和条形码打印的一些注意事项

web应用票据打印实现(四)

上一篇中,我们已经通过iText生成了共打印的pdf文档,如果没有特别的要求,利用浏览器的pdf插件来预览和打印已经能供满足我们Web应用在浏览器端实现票据套打的要求了。但在我们的项目中,客户要求一次...
  • ape_goku
  • ape_goku
  • 2015年03月16日 12:54
  • 1225

web应用票据打印实现(一)

web应用浏览器端票据打印实现 许多web应用的开发中都会涉及到票据打印的功能。常用的Web打印实现的方式有: 1.浏览器打印接口 调用window.print()方法,调用打印机功能打印当前窗...
  • ape_goku
  • ape_goku
  • 2015年03月06日 10:11
  • 1834

票据扫描识别现状分析

一、从冰山一角窥视整个行业   最近去了一个业内比较牛气的单位,主要是聊了聊发票扫描录入的问题。   具体的单位不便透露,咱们就事论事,说说发票扫描识别录入的现状。   堂堂几百人的...
  • nber727xw
  • nber727xw
  • 2016年04月10日 10:15
  • 910

C#开发可以可视化操作的windows服务

使用C#开发自定义windows服务是一件十分简单的事。那么什么时候,我们需要自己开发windows服务呢,就是当我们需要计算机定期或者一直执行我们开发的某些程序的时候。这里我以一个WCF的监听服务为...
  • zouyujie1127
  • zouyujie1127
  • 2014年07月13日 17:39
  • 12485

Java调用热敏票据打印机打印小票

package com.yc.printer; /**  * 源辰信息  * 商品信息   * @author navy  * 2017年5月23日  */ public cla...
  • qfxsxhfy
  • qfxsxhfy
  • 2017年05月23日 21:52
  • 2673

初识基于 Web 的可视化编程工具Google Blockly

Google开发发布的完全可视化的编程语言Google Blockly
  • langyuzhi
  • langyuzhi
  • 2016年08月31日 19:11
  • 6001

LODOP票据套打

LODOP票据套打 1.目的: 打印票据单时: 票据图片相同,字段位置固定。 遍历数据记录即可。 2.LODOP的使用 Web打印控件,简单方便,JS中给定数据直接用。 LODOP...
  • wf1154439
  • wf1154439
  • 2015年03月23日 13:00
  • 1224

【Qt 5.3.2】Qt局域网收银软件(Qt+MySQL+小票打印机(58mm)+普通打印机)

局域网收银软件 打印小票
  • gnibuoz
  • gnibuoz
  • 2015年03月13日 12:31
  • 1308

jquery PrintArea 实现票据的套打

套打就是指不打印表单上的表结构和固定的文言,只把会变化的数据打印出来,下面的例子就是不把name和name2打印出来,只把aaa和bbb打印出来。 1.代码 ...
  • kouwoo
  • kouwoo
  • 2016年02月26日 14:48
  • 3973

Magic c++ 一个好的可视化Linux开发工具

 2007-09-15 16:09 2794人阅读         最近刚搞Linux的编程,发现调试是一个头痛的问题,那个GDB实在不好用(习惯了VC,没办法!!),今天就想找个像VC...
  • dj0379
  • dj0379
  • 2016年08月05日 00:32
  • 1387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[票据打印]使用扫描仪加快可视化编程工具下票据套打的开发
举报原因:
原因补充:

(最多只允许输入30个字)