WinForm+VS2005下ReportViewer的打印问题

本文介绍了在WinForm+VS2005环境下使用ReportViewer遇到的打印问题,包括打印延迟、页面设置和直接打印的问题,并提供了相应的解决办法。通过设置定时器解决打印延迟,调整页面单位解决页面方向问题,以及利用微软官方提供的方法实现无预览直接打印。
摘要由CSDN通过智能技术生成

        前几天,在做的一个项目中,用VS2005+ReportViewer进行报表套打,原来想的很简单,结果在试用过程中出现了很多问题。

        刚开始,非常顺利,经测试打印正常,但一试用问题就出现了。

        我开发用的机器的系统是win2003,客户的系统是xp,客户在打印时,打印出来的字都是竖的。我就奇怪了,难道这个操作系统还有关系,我又找了一个xp机器,试了试,结果证实确实和操作系统有关,不知道什么原因!

 

 

        第一个问题就是ReportViewer自带的打印按钮,第一次单击打印后,打印机没反应,第二次打印,打印机才有反应。这个问题非常令人奇怪,我觉得自己的程序没问题,就到网上搜了搜,结果发现我不是第一个,很多人都碰到了这个问题,而且这个问题ReportViewer的一个bug,是不治之症,我心里凉了半截,不过过了一会,又发现了一个外国人的一个狡猾的方法,代码如下,希望对你有用!

 

        private void reportViewer1_Print(object sender, CancelEventArgs e)
        {
            e.Cancel = true;

            timer1.Start();

            

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();

            this.reportViewer1.PrintDialog();
            

        }

      这个方法就是用了一个定时器,触发第二次打印。我试了,确实起作用!

    

     第二个问题就是ReportViewer的页面设置问题。我套打的票据的宽度大于高度,所以ReportViewer的页面设置就自动地把打印的方向设置为“横向”,这样最终打印机打印出来的字在票据上是竖的。解决这个问题的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值