Liny_@NotePad

沉迷ACG中

JavaScript 页面打印和预览

1. 页面打印

window.print()

2. 页面局部打印
在之前的基础上,加上

<style type="text/css" media=print>
.noprint{display : none }
</style>

定义,表示class为noprint的代码在打印将不被显示。
之后将不需要打印的内容放入class为print的容器中即可。

3. 通过IE组件 WebBrowser 实现打印
首先获得控件

<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>

之后调用相应功能:

WebBrowser1.ExecWB(6,1);  // 打印
WebBrowser1.ExecWB(7,1);  // 打印预览
WebBrowser1.ExecWB(8,1);  // 打印设置

其他百度来的

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) 关闭窗体无提示

 不打印的方法同2。

4. 还是JS,这次是选中部分打印。
百度来的:

function preview(oper) {
      if (oper < 10){
          bdhtml=window.document.body.innerHTML;//获取当前页的html代码
            sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域
            eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域
            prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html

            prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
            window.document.body.innerHTML=prnhtml;
            window.print();
            window.document.body.innerHTML=bdhtml;
      } else {
            window.print();
      }
}

而要打印的内容放在<!--startprint1-->和<!--endprint1-->之间即可。调用preview(1),
这样可以设定多个部分打印不同内容,oper值自己根据需要指定。