web项目中可能会经常用到javascript打印,我首先尝试用JavaScript调用WebBrower进行打印,具体实现方法网上有很多,这里简单介绍一下:
首先在页面body中加入:
显示代码打印1 <object id=wb
height=0
width=0
classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2
name=wb>
</object>
2、下面就是通过JavaScript调用上面Object的方法进行打印了:
显示代码打印01 <mce:script language="javascript"><!--
function printsetup()
{
// 打印页面设置
wb.execwb(8,1);
}
function printpreview()
{
// 打印页面预览
wb.execwb(7,1);
}
function printit()
{
if (confirm(’确定打印吗?’))
{
wb.execwb(6,6)
}
}
// --></mce:script>
3、去除打印时的页眉和页脚
显示代码打印01 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){}
}
但此处会出于问题,由于浏览器本身有安全限制,上面的操作需要浏览做很多安全方面的设置,这但使用该功能的用户来说存在安全隐患,所以该种打印解决方案非最佳方案。我曾实验过,对于安全限制稍低的IE6来说不会出现什么问题,但对于安全限制性更高的IE7来说,需要对浏览器做几项设置后才能打印。所以这个方案不推荐。
那么另外的打印方案就是最简单的,那么最简单意味着很多功能也受限,比如说打印预览就很难做到尽善尽美了。简单介绍一下吧:
这种方案就不需要在body中加入Object了,只需在调用下面的JS方法即可:
显示代码打印1 function printPage(){
if(confirm(’确定打印吗?’)) {
window.print();
}
}
怎样去掉页眉页脚呢?
方法一:在<head>中加入:
显示代码打印01 <style>
@media print
{
.Noprint{DISPLAY:none;}
.PageNext{PAGE-BREAK-AFTER:always}
}
</style>
在不需要打印的地方:如<table class="Noprint">不打印的部分</table>
方法二:在<head>中加入:
//指定img类型元素不打印
@media print{
img {display:none}
}