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

【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" />

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

  1. 关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出”

    问题:关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出” 办法:在容纳ReportViewer的窗体后台代码中,添加如下代码即可 protected override ...

  2. Lodop如何设置预览后导出带背景的图,打印不带背景图

    Lodop中的ADD_PRINT_SETUP_BKIMG,可以加载上背景图,该背景图在预览的时候可以显示也可以不显示,打印可以打印出来也可以不打印出来.一般套打,都是不打印背景图的,比如一些快递的快递 ...

  3. QNDataSet打印预览自动关闭问题

    问题:打印预览后,数据集自动关闭 解决: TQNDataSet = class(TFDMemTable) private protected procedure PSReset; override; ...

  4. JS页面打印,预览,设置,分页

    一)在HTML页中加载打印对象 <object id="WebBrowser" width="0" height="0" classi ...

  5. Lodop打印设计、维护、预览、直接打印简单介绍

    四者的区别和联系:(其中PRINT_DESIGN打印设计是提供给开发人员的,另外三个可开放给用户)PRINT_DESIGN打印设计:辅助开发人员设计,图形化拖动插入修改等,设计完成后,生成代码拷贝到程 ...

  6. Lodop打印设计矩形重合预览线条变粗

    LODOP中的打印设计是辅助进行开发的,实际打印效果应以预览为准,很多效果都是在设计界面显示不出来,或设计和预览界面有差异.例如add_print_text文本的字间距.行间距,旋转,还有允许标点溢出 ...

  7. JS微信网页使用图片预览(放大缩小)

    前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...

  8. jqprint的网页打印,打印预览可以包含图片

    自己负责的模块需要有个试卷打印的功能,需要将网页特定范围内的内容打印出来,所以选择了jquery.jqprint脚本 用起来也非常简单. //打印    $("#printPage" ...

  9. ie 8在打印网页的时候打印预览是空白的

    win 7专业版系统中的ie 8在打印网页的时候打印预览是空白的,打印出来也是空白的,但是用别的浏览器打印没有问题 根据您的描述,该问题主要是由于保护模式下%Temp%\Low不正常工作引起的. 建议 ...

随机推荐

  1. ROS学习笔记(二)——ubantu 14.04 安装

    0.采用双系统安装(U盘安装) 1.安装文件在ubantu官网下载: ubantu官网 :https://www.ubuntu.com/ ubuntu的server版和desktop版有什么区? (来 ...

  2. svn 版本控制

    首先来下载和搭建SVN服务器. Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html windows操作 ...

  3. 2016年12月31日 学习java 第一天

    6个月没写代码了 现在从头开是学 又遇到了很基础的问题 以前配环境变量的时候  配过classpath  其实不要配classpath  因为运行的时候会优先去classpath去找 class文件  ...

  4. Libpci库的调用

    这几天发现在Redhat AS6.5 X86_64下用outl(index, 0xcf8)和inl(0xcfc)下读取PCIe配置空间是系统有时性的会hang, 于是去寻找解决方案,首先想到的是用/d ...

  5. 鼠标hover某个元素时其属性表现Css transition 过渡效果(以宽高属性居中放大为例)

    <!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...

  6. 不在折腾---hbase-0.96.2-hadoop2

    首先安装好zookeeper集群 上传hbase安装包 解压 配置hbase集群,要修改3个文件 * 修改hbase-env.sh 设置JAVA_HOME: export JAVA_HOME=... ...

  7. 如何在MySql中记录SQL日志记录

    My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:   1  配置my.ini文件(在安装目录,linux下文件名为my.cnf     查找到[mysql ...

  8. Luogu 魔法学院杯-第二弹(萌新的第一法blog)

    虽然有点久远  还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题  沉迷游戏,伤感情 #include <queue> ...

  9. 深入剖析tomcat 笔记——第8章 载入器

    深入剖析tomcat 笔记 目录:

  10. CALayer 2 详解 -----转自李明杰

    CALayer2-创建新的层   本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UICol ...