.NET网页打印以及使用打印需要注意的事项(可能会引起VS崩溃的现象、打印预览后关闭功能不管用)...

这两天进行给网页添加打印、打印预览、页面设置的功能。遇到了以下几个问题

【1】在网上查找了一些打印方法,一开始还可以用,后来不知道动到了哪里,点击vs中拆分或者切换到另一个设计和源代码显示方式,就会引起VS崩溃并且提示VS遇到了问题,需要关闭

让我整了一个下午都没搞定,连1.48G的VS SP1包都重新安装了好长时间。后来回到宿舍又试了试,嘿,你还别说,还真让我找着是哪里出问题了,【我把打印对象给删掉】,切换设计视图时就不会有任何问题,就这一句代码

可是删掉它我就没法打印了

后来我找了一种方法,在js中动态插入该代码就不会有问题

动态插入代码其实还有些问题,这里就不再说了,还是刚才那一句代码,这里只需要将【style="display:none"】给删掉即可

就不会出现VS崩溃的现象了,想要实验的同学们,可以将这一句代码复制到你们的任意一个asp.net网页中,然后切换设计图显示方式试一下,看VS会不会崩溃

<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" style="display:none"></OBJECT>
<input type="button" value="打印" onclick="WebBrowser1.ExecWB(6, 1);"
style="width: 40px text-align: center" />
<input type="button" value="打印预览" id="btn" onclick="WebBrowser1.ExecWB(7, 1)"
style="width: 60px text-align:center" />
<input type="button" value="页面设置" onclick="WebBrowser1.ExecWB(8, 1);"
style="width: 60px text-align:center" />
<input type="button" value="关闭" onclick="WebBrowser1.ExecWB(45, 1);"
style="width: 40px text-align:center" />

【2】如果网页中出现了打印对象这句代码,当前网页的【无提示关闭】功能就不管用了

出现了这句:

<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>

这句就不管用了:

//退出
protected void Btn_Quit_Click(object sender, EventArgs e)
{
    Response.Write("<script>window.opener=null;window.open('','_self');window.close();</script>");
}

只能在网页中用

<input type="button" value="关闭" onclick="WebBrowser1.ExecWB(45, 1);"
style="width: 40px text-align:center" />

来关闭网页了

【3]打印和打印预览时去掉页眉页脚,打印完后或者预览完后恢复页眉页脚需要注意

//必须的变量,如没有,页眉页脚就无法控制
        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) { }
        }

可以在网页控件的onclick中添加打印之前调用【PageSetup_Null】设置页眉页脚为空,在打印之后调用PageSetup_Default()设置页眉页脚恢复为默认

<input type="button" value="打印" onclick="PageSetup_Null();WebBrowser1.ExecWB(6, 1);PageSetup_Default();" style="width: 40px text-align: center" /> 
<input type="button" value="打印预览" id="btn" onclick="PageSetup_Null();WebBrowser1.ExecWB(7, 1);PageSetup_Default();" style="width: 60px text-align:center" />

 

转载于:https://www.cnblogs.com/MingAndWoNiu/p/4750698.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值