关于QuickReport控制打印走纸换页的问题(100分)

  • 主题发起人 主题发起人 progboy
  • 开始时间 开始时间
P

progboy

Unregistered / Unconfirmed
GUEST, unregistred user!
近一段时间维护一个旧的程序,其中的报表是使用QuickReport控件制作的。在使用过程中发现用QuickReport制作报表有几个突出的问题,始终不得其解:
1.这个程序是用Delphi6开发的,用的是自带的QuickReport版本制作报表。这个版本的QuickReport似乎不能使用自定义纸张,也就是我要在一页穿孔纸上打印多张单据,没法做到打印完一张后就停下来,而是每打印一次就自动走一页纸。我曾试过将报表纸张大小设成自定义,系统打印机的纸张也设成自定义的大小,但是不起作用,好像每次都是走A4大小的一页纸。此时用的是Win2000系统,LQ300K打印机。
2.后来将QuickReport升级到4.04版,可以按照自定义的纸张走纸了。但是又出现另一种情况,如果要打印的内容不足以将定义好大小的一页纸打满,在要打的内容打完后,打印机就会立刻停下来,而不是将这一页走完。而且即使换页了,也会在打印完前一页后向下多走一小段,这就造成下一页纸的打印位置向下延了一小段。如果是连续打印多页,每一页结束后都会多走一小段,越窜越多。这样一来,如果打印的是单据,那么就会出现单据内容打完了,可是一页纸没走全就停下来的情况;如果打印的是报表,并且需要连续打印多页时,那么每打印一页就会向下蹿一小段,随着打印页数的增多,用不了几页就会出现某一页的内容部分打在该页,另一部分打在下一页的情况。
[red]关于QuickReport的这个问题似乎可以这样定义:QuickReport并没有严格按照用户选用的或自定义的纸张大小打印,而是当要打印的内容不足一页时,打印完不换页;当要打印的内容多于一页后会换页,但在打印下一页之前会莫名其妙的多走纸,从而造成无法连续打印多页纸的问题。[/red]
因为程序比较大,用户也比较多,换用其他的报表软件重做报表几乎是不可能的。我非常想知道造成这些问题的是打印机型号、操作系统还是QuickReport自身的问题?在不要求用户更换打印机,也不需要更换报表软件的情况下有没有解决方法?
 
你可以使用喷墨打印机测试看看,或者激光打印机。
 
to zywcd
喷墨和激光没有这个问题,因为喷墨或激光能够保证每次至少打印一页,而在打印下一页时肯定是从头开始打,不会无故多走一段。但我不能要求用户更换打印机以适应我们的软件。只能自己找毛病解决。
 
To progboy
可以控制打印走纸换页的,Win2K 与 Win98 不同的
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3334567
 
设置打印机,在控制面板打印机中的文件菜单下的服务器属性中,添加自设的一种纸张,然后报表纸张类型设成定义的类型就可
 
感谢ligi2002,按照你的方法问题解决了。
现在看来是我认识上有一些误区。原以为只要报表的纸张设成什么,打印时就应该是什么样的,事实上是,报表要设纸张,操作系统也要设成相应的纸张。不过还有个问题,估计是QuickReport的问题。就是在打印预览页面的打印机设置不起作用,明明是调用的Windows打印机设置对话框,并且正常应用了新的这张,可就是不起作用,非得通过控制面板中的打印机设置调出对话框才能正确修改并应用新的纸张。
 
后退
顶部