ASP.NET实现打印和打印预览

我现在一个页面上from中的table里的代码全部是在后台文件生成的求打印设置,打印预览之法。。要有翻页功能,如果有实例给我的话更好,问题解决的话追加50分。... 我现在一个页面上from中的table里的代码全部是在后台文件生成的
求打印设置,打印预览之法。。
要有翻页功能,如果有实例给我的话更好,问题解决的话追加50分。
展开
 我来答
bcbgrand
推荐于2016-01-20
知道答主
回答量:20
采纳率:0%
帮助的人:23.8万
展开全部
直接打印

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>打印预览</title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script>
var hkey_root, hkey_path, hkey_key
hkey_root = "HKEY_CURRENT_USER"
hkey_path = "file://software//Microsoft//Internet Explorer\\PageSetup\\"
//设置网页打印的页眉页脚为空
function pagesetup_null() {
try {
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key = "header"
RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
hkey_key = "footer"
RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
} catch (e) { }
}
//设置网页打印的页眉页脚为默认值
function pagesetup_default() {
try {
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key = "header"
RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&w&b页码,&p/&P")
hkey_key = "footer"
RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&u&b&d")
} catch (e) { }
}
function setdivhidden(id) {//把指定id以外的层统统隐藏
var divs = document.getElementsByTagName("DIV");
for (var i = 0; i < divs.length; i++) {
if (divs.item(i).id != id)
divs.item(i).style.display = "none";
}
}
function setdivvisible(id) {//把指定id以外的层统统显示
var divs = document.getElementsByTagName("DIV");
for (var i = 0; i < divs.length; i++) {
if (divs.item(i).id != id)
divs.item(i).style.display = "block";
}
}
function printpr() //预览函数
{
pagesetup_null(); //预览之前去掉页眉,页脚
setdivhidden("div1"); //打印之前先隐藏不想打印输出的元素
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser); //在body标签内加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(7, 1); //打印预览
WebBrowser1.outerHTML = ""; //从代码中清除插入的html代码
pagesetup_default(); //预览结束后页眉页脚恢复默认值
setdivvisible("div1"); //预览结束后显示按钮
}
function print() //打印函数
{
pagesetup_null(); //打印之前去掉页眉,页脚
setdivhidden("div1"); //打印之前先隐藏不想打印输出的元素
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser); //在body标签内加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(6, 1); //打印
WebBrowser1.outerHTML = ""; //从代码中清除插入的html代码
pagesetup_default(); //打印结束后页眉页脚恢复默认值
setdivvisible("div1"); //打印结束后显示按钮
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="div0">
<input id="btnClose" type="button" onclick="Javascript:window.opener=null;window.close()"
value="关 闭" />
<input type="button" value="打印预览" onclick="printpr()">
<input type="button" onclick="print()" value="打印">
</div>
<div id="div1">
<img alt="" src='<%=this.rooDir+this.Request.QueryString["URL"] %>' /></div>
</form>
</body>
</html>
大神神风
2011-04-12 · TA获得超过227个赞
知道小有建树答主
回答量:333
采纳率:0%
帮助的人:259万
展开全部
其实很简单:
只需要在前台body内加上以下代码:
<object id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0"
width="0">
</object>
<input type="button" value="打印" onclick="document.all.WebBrowser.ExecWB(6,1)" />
<input type="button" value="直接打印" onclick="document.all.WebBrowser.ExecWB(6,6)" />
<input type="button" value="页面设置" onclick="document.all.WebBrowser.ExecWB(8,1)" />
<input type="button" value="打印预览" onclick="document.all.WebBrowser.ExecWB(7,1)" />
<hr align="center" width="90%" size="1" />
然后再放一个Label控件,你后台不是把数据已经放到一个table里面的嘛,最后一步就是把你的那个后台字符串赋给Label的Text属性即可!
追问
你的方法在IE上能实现,但是在火狐上悲剧了(火狐不认识document.all)。。前久我在就在网上找到了这样的代码,可惜不行。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhoudianzhang
推荐于2018-04-12
知道答主
回答量:17
采纳率:0%
帮助的人:10万
展开全部
var RegWsh = new ActiveXObject("WScript.Shell");好像是可以的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式