javascript实现jsp页面的打印预览
1、加载WebBrowser打印预览控件
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="3"></OBJECT>
<input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>
--------------------------------------WebBrowser控件 ---------------------------------------------
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT></OBJECT>
<input type=button value=打开 onclick=document.all.WebBrowser.ExecWB(1,1)>
<input type=button value=另存为 onclick=document.all.WebBrowser.ExecWB(4,1)>
<input type=button value=全选 onclick=document.all.WebBrowser.ExecWB(17,1)>
<input type=button value=属性 onclick=document.all.WebBrowser.ExecWB(10,1)>
<input type=button value=关闭窗口 onclick=document.all.WebBrowser.ExecWB(45,1)>
<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)>
或者用超链接添加自定义函数
<a href="javaScript:printpreview();" >◆ 打印预览 </a>
自定义函数主要实现打印预览去掉页眉页脚
<script type="text/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 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){}
}
function printpreview(){
PageSetup_Null();
// 打印页面预览
wb.execwb(7,1);
};
</script>
2.设置不打印的元素:设置样式,并添加到不需要展示的元素(class="noprint")
<style media="print" type="text/css">
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>
3.【遇到问题】当前网页是通过window.parent.openWindowCanClose(url,title,width,height) ;方式打开的窗口,打印的区域则包括了父窗口,而并不是我们当前设置的子窗口。
我猜想web打印预览方法是基于window对象的,因此想要只是打印子窗口那么必须是另打开一个新网页。
window.open(url,title,width,height,"_blank");
4.【遇到问题】当在本地测试该功能时可以正常预览,但是换在服务器上测试该功能时发现提示【 Internet Explorer 已经阻止此站点用不安全方式使用 ActiveX 控件】
这个是由于浏览器的安全级别设置引发的,最直接的方法就是【添加信任站点】
设置方式:【工具】-【Internet选项】-【受信任的站点】-【站点】-填入网址(若这个网站不是以https:开头,将【对该区域中所有站点要求服务器验证】选项勾选去掉)
javascript实现jsp页面的打印预览的更多相关文章
- 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这个Bootstrap框架的各个主要方面的内容,总体来说基本达到了一个稳定的状态,随着时间的推移可 ...
- JavaScript 实现打印,打印预览,打印设置
WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CL ...
- (转)基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
http://www.cnblogs.com/wuhuacong/p/5147368.html 在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这 ...
- JS页面打印预览功能
点击按钮后就可以直接打印预览,并且隐藏了按钮,如果你不希望按钮显示,可以把那部分代码删除就可以了. <html><head><meta http-equiv=" ...
- JS 打印功能代码可实现打印预览、打印设置等
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- CVE-2013-3908 Internet Explorer打印预览功能可导致信息泄露
原文:http://masatokinugawa.l0.cm/2014/11/ie-printpreview-infoleak.html 问题1: 在IE9和以前的版本当中进行打印预览操作时,IE会取 ...
- Js或 Activex 控件调用打印预览等操作
<input value="打印" type="button" onclick="javascript:window.print()" ...
- JS实现IE下打印和打印预览
http://blog.csdn.net/rongyongfeikai2/article/details/8460598 ——————————————————————————————————————— ...
- JS实现浏览器打印、打印预览
1.JS实现打印的方式方式一:window.print()window.print();会弹出打印对话框,打印的是window.document.body.innerHTML中的内容,下面是从网上摘到 ...
随机推荐
- 【JAVASCRIPT】json 与 string
1. 互相转换 JSON.stringify(jsonobj) json对象转化为string JSON.parse(string) string转化为json,注意{“name”:"hxy ...
- 网关(Gatesvr) 设计(1)
Gate解决的问题: 1.用户在服务端的实例可以在不同的进程中,也可以移动到同一个进程中.2.用户只需要与服务端建立有限条连接,即可以访问到任意服务进程.这个连接的数量不会随服务进程的数量增长而线性增 ...
- 一.CPU,Mem过高怎么办 --这是个开始
本身是名Java开发,在做了一段大数据的工作后,猛然间想对Java做个总结. 从未写过技术博客,一时不知如何开始,思虑后,暂且以自己喜爱的方式来开篇. 工作中遇到过CPU或内存过高的问题,解决步骤: ...
- AD7928
实验室板子soc-de1自带的7928芯片,下面记录一下它的参数 吞吐速率 : 1MSPS 吞吐速率 : 是指ADC器件单位时间内能处理的任务数或输出结果的数量.单位:SPS(Samples per ...
- Java基础之集合框架类及泛型简介
Collection接口 Collection 通用的常见方法 add()添加一个元素,可以指定脚标 addAll()将一个collection放入 clear()清除 remove()删除元素,返回 ...
- TASKCTL敏捷调度理念的诠释
功能完整是基本,简单易用才是王道,这就是TASKCTL对敏捷的朴素定义.功能少,怎么复杂也会简单:而功能体系完整,怎么简单也会复杂.因此,简单与复杂是相对的,而TASKCTL正是追求那种在功能完整不可 ...
- 使用Hibernate模板调用存储过程
前提是该Dao类已经已经继承了org.springframework.orm.hibernate5.support.HibernateDaoSupport,并且在整个项目中已经配置好了事务,或者是手动 ...
- java_弹球小游戏
弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...
- nodejs 文件读取一行
作者QQ:1095737364 QQ群:123300273 欢迎加入! 废话没有,直接上代码: app.get('/company', function (req, res, nex ...
- Core 2.0 的dll实时更新、https、依赖包变更问题及解决
今天所有开发环境已经迁移到mac OS下的Visual Studio Code + 命令行编译发布,而运行服务器是CentOS7,和windows没什么关联了. 只要你Relese编译并在本地有一个与 ...