您的位置:首页 > 编程语言

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

2005-03-11 12:45 447 查看
今天在论坛中看到有人在讨论关于票据打印的问题

在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

在后面的文章中,我将讲解如何进行走纸张控制的一些注意事项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐