[票据打印]使用扫描仪加快可视化编程工具下票据套打的开发
2004-09-11 00:55
495 查看
今天在论坛中看到有人在讨论关于票据打印的问题
在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
在后面的文章中,我将讲解如何进行走纸张控制和条形码打印的一些注意事项
在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
在后面的文章中,我将讲解如何进行走纸张控制和条形码打印的一些注意事项
相关文章推荐
- [票据打印]使用扫描仪加快可视化编程工具下票据套打的开发
- android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度
- java桌面应用开发可视化工具windowbuilder详细使用方法
- (转)【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度
- java桌面应用开发可视化工具windowbuilder详细使用方法
- 【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素
- Java下的可视化开发工具使用 WindowBuilder Pro
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境 - gnuhpc - 博客园
- ApkToolPlus 是一个可视化的跨平台 apk 分析工具,使用 java 语言开发的一个桌面应用。
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- c语言循环打印问题之A-F及VC6++断点开发工具的使用
- VC下如何实现套打的工具(如打印票据中的空白项)?
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- Android游戏引擎libgdx使用教程16:使用TexturePacker工具加快开发速度
- 使用mybatis-generator工具加快开发速度
- keytool 可视化工具 Portecle 使用教程 图文教程 微信认证开发教程
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- 简化闷棍开发工具的使用方法对于ABAP编程
- android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度