.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" />
.NET网页打印以及使用打印需要注意的事项(可能会引起VS崩溃的现象、打印预览后关闭功能不管用)的更多相关文章
- 关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出”
问题:关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出” 办法:在容纳ReportViewer的窗体后台代码中,添加如下代码即可 protected override ...
- Lodop如何设置预览后导出带背景的图,打印不带背景图
Lodop中的ADD_PRINT_SETUP_BKIMG,可以加载上背景图,该背景图在预览的时候可以显示也可以不显示,打印可以打印出来也可以不打印出来.一般套打,都是不打印背景图的,比如一些快递的快递 ...
- QNDataSet打印预览自动关闭问题
问题:打印预览后,数据集自动关闭 解决: TQNDataSet = class(TFDMemTable) private protected procedure PSReset; override; ...
- JS页面打印,预览,设置,分页
一)在HTML页中加载打印对象 <object id="WebBrowser" width="0" height="0" classi ...
- Lodop打印设计、维护、预览、直接打印简单介绍
四者的区别和联系:(其中PRINT_DESIGN打印设计是提供给开发人员的,另外三个可开放给用户)PRINT_DESIGN打印设计:辅助开发人员设计,图形化拖动插入修改等,设计完成后,生成代码拷贝到程 ...
- Lodop打印设计矩形重合预览线条变粗
LODOP中的打印设计是辅助进行开发的,实际打印效果应以预览为准,很多效果都是在设计界面显示不出来,或设计和预览界面有差异.例如add_print_text文本的字间距.行间距,旋转,还有允许标点溢出 ...
- JS微信网页使用图片预览(放大缩小)
前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...
- jqprint的网页打印,打印预览可以包含图片
自己负责的模块需要有个试卷打印的功能,需要将网页特定范围内的内容打印出来,所以选择了jquery.jqprint脚本 用起来也非常简单. //打印 $("#printPage" ...
- ie 8在打印网页的时候打印预览是空白的
win 7专业版系统中的ie 8在打印网页的时候打印预览是空白的,打印出来也是空白的,但是用别的浏览器打印没有问题 根据您的描述,该问题主要是由于保护模式下%Temp%\Low不正常工作引起的. 建议 ...
随机推荐
- Session的使用过程中应注意的一个小问题
在学习AllEmpty大神的从零开始编写自己的C#框架系列文章中,发现的问题:在验证码的缓存Session["vcode"]的赋值时,发现Session["vcode&q ...
- linux centos yum安装LAMP环境
centos 6.5 1.yum安装和源代码编译在使用的时候没啥区别,但是安装的过程就大相径庭了,yum只需要3个命令就可以完成,源代码需要13个包,还得加压编译,步骤很麻烦,而且当做有时候会出错,源 ...
- 命令查看DB restore进度
SELECT DB_NAME(er.[database_id]) [DatabaseName],er.[session_id] AS [SessionID],er.[command] AS [Comm ...
- welcome-file-list设置问题之css,js文件无法加载
web.xml里的welcome-file-list里设置默认访问页面为/html/index.html 但是在访问时,页面CSS都没加载. 正常输入网址却没问题.用/html/index.jsp也没 ...
- Table 'performance_schema.session_variables' doesn't exist
出现标题所示错误时设置如下参数可以解决!set @@global.show_compatibility_56=ON;
- Java_I/O输入输出_使用输入输出流读取文件,将一段文字加密后存入文件,然后读取,将加密前与后的文件输出
import java.io.*; public class Example { public static void main(String[] args) { char a[] = "今 ...
- 通过图片对比带给你不一样的KMP算法体验
KMP 算法,俗称“看毛片”算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不易. 笔者认为,KMP 算法之所以难懂,很大一部分原因是很多实现的方法在一些细节的差异.体现在几 ...
- 关于DYNPRO程序的系统迁移与版本不匹配问题之一
前段时间公司做的一个项目,这两天在将项目程序导入公司,出问题了,搞了半天才发现是系统版本问题,但是还是不知道怎么解决,纠结ING... DYNRPO程序在创建(或是首次运行)的时候会自动生成一个DYN ...
- java List 排序
List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String&g ...
- PHP 常用函数的解释
1.trim() 去掉字符序列左边和右边的空格 2.stripslashes() 去掉反斜线字符 3.htmlspecialchars() 把预定义的字符 "<" (小于)和 ...