【分享】水晶报表多打印空白页的解决方法

时间:2020-12-16 08:36:28

最近再次接触水晶报表打印,遇到个空白页和页脚内容无法打印的问题,折腾了很久,最终在早上解决了,写出来与同行们一起分享。

一个模板中放置主从报表,我是参考http://www.cnblogs.com/babyt/archive/2008/01/27/1055334.html 来设计的,感谢阿泰的分享。

我用的是水晶报表2005,报表设计上没问题,能实现预览和打印(WEB打印出来点问题),而且我实现的是3组分类。(其实解决也很简单,开销一个字段,将3组分类的信息都写入到一个字段中,然后对该字段分组)

在VS2005中预览报表,能打印,连续打印、页脚内容都能正常显示出来。

可是在WEB上利用ActiveX方式打印,就出现2个问题:

1.联系2个面单中间出现空白页。

2.页脚内容无法打印。

一般出现第1个问题,是报表设计打印的实际宽度,比纸张宽度要宽,所以调小纸张宽度,能解决这个问题。可是问题依然存在,后来才发现,是打印机进纸的位置问题,调正进纸的位置,问题也解决了。我测试用的是EPSON K680打印机,进纸槽那边有个刻度的,将纸张的右侧对其0刻度,这样设置纸张为正常的大小就没问题了。我是将所有的边度都调成0cm处理的。

出现第2种问题,我是在早上才解决的。不过还没测试。我想问题应该就出现在这里。之前在服务器上做的模板,直接连网络打印机。(服务器上没装OFFICE,所在在打印机上没有Microsoft Office Document Image Writer,也只能连接网络打印机),这样在打印带有主从报表的时候,在CrystalReportViewer上看到的内容是,页面变得很长,好像是A4纸张,页脚的内容放在页面的页面的最下面,中间有一打段空白内容。也就是说CrystalReportViewer上的纸张大小不是实际打印机面单的大小。但是模板文件因为是连接网络打印机,预览后纸张的大小是和实际大小一样。当时是想到这个问题,会不会问题就处在这?早上来到公司,在自己的电脑上调试下,报表文件因为无法检测到打印机,大小又变成默认的纸张了。我于是选择了Microsoft Office Document Image Writer打印机,添加了面单的大小,结果在CrystalReportViewer看到的纸张正常了,我想内容也应该正常了。

安装Microsoft Office Document Image Writer打印机,只需要安装OFFICE 2003(或者其让版本也可)。

忙碌了3天,终于解决了。真想对水晶报表说:“想说爱你,并不是件很容易的事”。