Javascript网页打印大全

一、普通打印(整页打)

这个不用多说,直接用


引用:window.print();


二、打印网页内部分内容(自定义)


分三种方法实现:


1、用css控制


引用:@media print

.a {display:block}

.b {display:hidden}

把你不想打印的部分class设为b

首先在网页中添加:


引用:<OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"

VIEWASTEXT>

</OBJECT>

然后就可以依次加入功能按钮了:


引用:<input  type="button" value="打印"> <input  type="button" value="直接打印">

<input  type="button" value="页面设置">

<input  type="button" value="打印预览"> <INPUT type="button" value="关闭窗口" >

将这两块东西放到<center class=noprint></center>就不会打印这些按钮了。当然要定义noprint了:

<style media="print">.Noprint { DISPLAY: none }</style>只要把不想打印的东西的css设置成noprint就可以了。

现在就实现了基本的web打印,需要注意的情况如下:

a. 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。 

b. 如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。


2、用javascript打印固定标签内的内容


a、在页面的代码头部处加入JavaScript:


引用:<script language=javascript>

function doPrint() { 

bdhtml=window.document.body.innerHTML; 

sprnstr="<!--startprint-->"; 

eprnstr="<!--endprint-->"; 

prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); 

window.document.body.innerHTML=prnhtml; 

window.print(); 

}

</script>



b、在页面正文处加上<!--startprint-->与<!--endprint-->标识。


也就是在需要用户打印保存的正文所对应的html处附加上。同时,如果采用小偷程序获得远程数据并需打印,可将此等数据置于该定义标签之内即可。


3、截取内容部分已完成,现在加个“打印”的链接:


XML/HTML代码 

<a href="javascript:;" onClick="doPrint()">打印</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 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){}

}

</script>

<input type="button" value="清空页码" onclick=pagesetup_null()>

<input type="button" value="恢复页码" onclick=pagesetup_default()>



复制出去,看下效果就可以了


修改时间 2015-10-23

真诚赞赏,手留余香
赞赏
随机推荐
PHP文件上传进度:文件切片上传
Node.js 图片处理模块 Jimp
PHP OpenSSL扩展 - 对称加密
MySQL 删除多余重复的记录,只保留一条
网络协议入门
javascript 为什么判断是否相等用===,而不是==
NETFLIX纪录片: 设计的艺术 - 平面设计
macOS中禁止Adobe CC的无用启动项
Node.js 文件系统
Windows下Apache开启rewrite