ASP.NET页面打印

ASP.NET页面打印(20041117)

一个系统肯定会有报表或查询,那么也就意味着要用到打印,而ASP.NET页面的打印怎么实现呢?通过我的实践,归纳如下:
1.水晶报表
  优点:功能强大,可灵活定义报表.
  缺点:不容易部署(移植不方便,需要重新引用组件并输入Licenet等),实现烦琐
  实现:首先建立报表(.rpt文件)并在要打印的页面上放一个CrystalReportViewer控件,在打印前将报表源指定给页面控件.
2.打印页面
  优点:实现简单且使用方便.
  缺点:页面设置不灵活.
  实现:在打印时传递参数给打印页面(预先设置好报表样式),并显示所要打印数据,然后直接按工具栏中的"打印"即可.但默认情况下,打印时带有页眉与页脚,要想使其在打印时取掉(当然可以手工设置,如果客户愿意的话),程序实现也有两种方法,但必须是客户端代码实现,因为如果服务端代码实现的话将修改的是服务器的设置,分别如下:
a.修改注册表
  <script language="JavaScript"> 
     var HKEY_Root,HKEY_Path,HKEY_Key;
     HKEY_Root="HKEY_CURRENT_USER";
     HKEY_Path="//Software//Microsoft//Internet Explorer//PageSetup//";
     //设置网页打印的页眉页脚为空
     function PageSetup_Null()
     {
        try
        {
    var Wsh=new ActiveXObject("WScript.Shell");
    HKEY_Key="header";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
    HKEY_Key="footer";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
        }
        catch(e){}
     }
     //设置网页打印的页眉页脚为默认值
     function  PageSetup_Default()
     {
        try
        {
        var Wsh=new ActiveXObject("WScript.Shell");
    HKEY_Key="header";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P");
    HKEY_Key="footer";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
        }
        catch(e){}
     }
  </script>
  建立上面两个函数后,再点击打印时调用相应函数即可.

b.用ActiveX控件
  网上有一个ScriptX.cab控件,调用其内的函数可调出"页面设置"对话框进行设置,详细说明可从网上获得,没做测试.

但以上两种方法都将需要将IE安全级设置为最低. 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值