我参与的一个会计系统在打印时发生的现象让我很摸不着头脑,伤透了脑筋,可还是没能解决问题,在这里我把问题及已经采取的措施列举处理,希望各位高手能指点迷津,先谢谢了!
系统对于打印的处理方法:
(1)对数据进行分页打印,打印前先把每页数据的内容以文件的形式保存在WEB服务器的某个目录下,然后在客户端通过ActiveX报表控件加载WEB服务器上的数据文件,并发送打印命令,通过网络打印机打印出数据文件的内容;
(2)向网络打印机发送数据文件打印命令后,在服务器端生成下一页的数据文件,下一页的数据文件的名称和上一页数据文件的名称相同,存储路径也相同,相当于覆盖了上一页的数据文件。然后和上一页数据文件的处理一样,在客户端通过ActiveX报表控件加载WEB服务器上的数据文件,并发送打印命令,通过网络打印机打印出数据文件的内容;
(3)数据文件的名称采用SessionId的值,长度为24位。
(4)开发环境:打印控件ActiveReport V3.31,.net FrameWork 1.1.4,浏览器 IE6 +SP1以上
故障现象:
(1)一次打印页数不多时,打印的结果正确;
(2)一次打印页数很多时,如打印凭证或者打印账簿数据一次最多可以发送打印800页的命令,这时打印出来的数据页码是随即混乱的,如打印结果可能为 1,2,3,4,5,6,7,9,8,10,11,12,18,13,14,15,16,17。。。。。。但是所有的数据页都在。
曾经采取但是失败的措施:
(1)调低发送打印命令的速度。原来发送打印命令的速度可达每分钟500次以上,但打印机每秒打印的速度约每分钟50页。调整方法:固定每秒发送一次打印命令。
这个的原因有两种
1. 打印机本身的设置 有没有问题。 因为不管你是使用API,还是自己写调用打印机程序,其实都是使用操作系统的API,如果手动操作,打印多份不出问题,再排除这个原因。
2..Net 2.0 引入的 GDI加 里面的 打印控件可以完美解决你的问题。 2.0很好很强大了。别老报着1.0不放吗.....
我也遇到差不多的问题,有解决的办法了么?