web打印是困扰很多web开发人员的问题。有很多人提出了不同的web打印解决方案,还有很多的商业报表设计器来帮我们(需要付费的,我想很多人不想花这个钱),以前我也写过一篇关于web打印解决方案的文章:

本文不会讨论这个问题。如果大家对于web打印各种解决方案感兴趣,可以阅读上文,或者到互联网上搜索。这方面对文章很多。

  本文将提供给大家一个在普通ie打印的情况下,如何在打印的报表中省略掉我们不希望看到的东西,保留想要看到的东西,而对于用户来说又是透明的,这样的一个解决方案。

  方案如下:
  首先应该养成良好的写程序的习惯,就是将各部分都分别包装起来,一般用span或者div,比如: 

……
……

假如我们不想打印span2中的内容,在页面上添加这样一段javascript程序:

这样,当用户打印本页的,打印的纸张上,就看不到span2中的内容。而用户根本感觉不到。

  更具上面的一个小例子,我们可以有了一点入门了吧,我们只要合理的分割包装整个页面,我们就可以灵活的控制整个页面的打印输出。如果我们在页面上设计了打印按钮,只要这样写就可以了:

<a href="#" οnclick="beforePrint();window.print();afterPrint();">打印</a>

  另外如果我们想把查询的表格中的某列或某行省略掉可不可以呢?答案是肯定的,不过我们需要做更多的工作,假如我们要隐藏一列。例子代码如下:

      
        
 操作                
 车型                                                                                        
           
明细           
单据                   
           CCK231                               
           
明细           
单据                   
           CCK231                             
                            
合计:907,620.00                                              
         
打印       

这段代码中,我们在想要隐藏的那个列的td中都添加了 name="op_TD" ,把下面的javascript代码加入到本页面内,就可以控制name为 op_TD 的所有td在打印时都隐藏起来。代码如下:

看了我上面的讲解,我相信大家会有自己的心得了吧,还等什么?自己动手做做吧!