web打印

 

<style media="print" type="text/css">
.NoPrint { display:none }
.PageNext { page-break-after: always }
</style>

<script language=javascript>
//利用注测表进行面页设置
var hkey = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
var RegWsh; //注册表
function pSetup(s1,s2,b1,b2,b3,b4){ //打印页面设置
//本函数无法选择打印机、设置默认纸张大小,请在window的打印设置中处理
if(!RegWsh) RegWsh = new ActiveXObject('WScript.Shell');
try{
  RegWsh.RegWrite(hkey+'header', s1); //页眉,默认为:&w&b页码,&p/&P
  RegWsh.RegWrite(hkey+'footer', s2); //页脚,默认为:&u&b&d
  RegWsh.RegWrite(hkey+'margin_left', b1); //左边距,默认为:0.75
  RegWsh.RegWrite(hkey+'margin_right', b2); //右边距,默认为:0.75
  RegWsh.RegWrite(hkey+'margin_top', b3); //上边距,默认为:0.75
  RegWsh.RegWrite(hkey+'margin_bottom', b4); //下边距,默认为:0.75
}catch(e){alert('页面设置失败。');}
}

//打印、打印预览、页面设置对话框
document.write('<object id="WebBrowser" width=0 height=0 classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>');
function printSetup() { document.all.WebBrowser.execwb(8,1); } //打印页面设置(对话框方式)
function printPreview(){ document.all.WebBrowser.execwb(7,1); } //打印页面预览
function printIt() { document.all.WebBrowser.execwb(6,6); } //打印
</script>

说明:

(1)、先在网页的head标签中加入以上代码,这段代码由两部分组成:样式表、javascript代码。

(2)、要打印的网页内容全部写在body标签中。

(3)、如果网页中的某些内容不想被打印出来,可以使用NoPrint样式。如:

<body>
<div class=NoPrint>不想被打印的内容</div>
欲打印的网页内容....
</body>

(4)、分页使用PageNext样式,比如在网页中插入 <div class=PageNext></div>

(5)、函数说明

·调用printSetup()函数,显示页面设置窗口

·调用printPreview()函数,打印预览

·调用printIt()函数,打印

·调用pSetup(s1,s2,b1,b2,b3,b4)函数,页面设置。s1页眉,s2页脚,b1、b2、b3、b4分别为左右上下边距。

一、原理

·程序中使用了IE内置的WebBrowser控件,无需用户下载和安装。WebBrowser有很多功能,其中包含了打印功能。
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示

·有时候我们希能够让javascript直接进行“页面设置”,而不是让用户通过对话框进行“页面设置”,这时候可以考虑调用pSetup()实现,此函数通过操作“注册表”实现基本的页面设置功能。不过该函数无法选择打印机、设置默认纸张大小,请在手动在window的打印设置中完成。

·在样式表中,style标签的media属性设置为print,那么这里面的所有样式只在打印时生效。我们称之为“打印样式表”。程序中,在打印样式表中定义一个NoPrint样式,用于隐藏指定部分的网页。PageNext样式则用于分页。

二、页眉页脚问题:

·默认页眉 &w&b页码,&p/&P
·默认页脚 &u&b&d
·各种控制符含义:
&w 网页标题
&u 显示URL
&d 以短格式打印当前日期
&D 以长格式打印当前日期
&t 打印当前时间
&T 以 24 小时制的格式打印当前时间
&p 打印当前页码
&P 打印总页数
&b 右对齐文本(向右推移文本)
&& 打印单个与号 (&) 字符
&b中国&b “中国”二字居中
&b&b中国&b “中国”二字靠右2/3处对齐

三、其它问题

·默认IE设置下,网页背景是不能打印出来的,需要手动设置才行。所以为了保证您获得最佳的打印效果,请调整您的浏览器设置,以IE5.5为例:工具菜单=》Internet选项》高级=》打印背景颜色和图像,打钩起来。

·必须将IE的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行设置成提示或者启用,否则会报错,导致不可用。可以在受信站点中处理。

·浏览器窗口大小与打印页面大小对页面影响的区别:在浏览器窗口中,页面以窗口大小为界,文字在窗口指定的范围内排版,版面溢出部分通过移动滚动条显示出来。打印时,则在“纸张大小”的范围(去除页边距)内排版,横向溢出部分不打印,纵向溢出部分则换页。

四、打印一个表格

(使用背景色制作表格线,应在IE的Internet高级选项中钩上“打印背景颜色和图像”)

文字1文字2
文字3文字4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值