菜单

js打印研究整理

2020年3月1日 - 澳门太阳娱乐手机登录

正文实例陈说了JavaScript调用顾客端Java程序的方法。分享给大家供大家参考。具体如下:

JS达成打字与印刷的秘技

平凡,JavaScript是未有权力调用客商端可执路程序的。但一时有一点点独具特色必要,又不能不调用。比方临时涉及客商端文件的操作那个时候,当然我们能够用
FileSystemObject对象来达成。又举例我们前些时做的体系中,须求是点击页面多个链接不弹出IE的不行文件下载的对话框
,间接把文件下载到钦点目录
。当时就只可以绕过浏览器的这么些对话框,自个儿写多个客商端的java程序来贯彻下载。本代码在IE第88中学测量检验通过,要将你的站点设为受信赖的站点,再将浏览器的中受信赖的站点安全选项中的“带头化未标识为平安的ActiveX控件”项设为Enable。

方式一:window.print()

function callJava(){ try{ var strPath="C:\AJava.jar";\客户端java程序路径 var objShell=new ActiveXObject; window.status="操作正在进行,请稍候......"; objShell.Run; \程序会阻塞在此直到客户客户端程序返回 objShell=null; window.status="操作结束。"; }catch{ alert("操作失败!原因可能是浏览器安全选项设置不对或找不到客户端处理程序."); }}

措施二:使用html
标签<object>引入Webbrowser控件这种措施是其只宽容IE,别的浏览器不得选用,相同的时候IE10以下的浏览器才方可选取,调用形式如下:

期望本文所述对大家的javascript程序设计具备助于。

<body>

  <object id="WebBrowser"  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0"  width="0"> </object>

</body>

<script>

  WebBrowser.ExecWB(1,1) //打开 

  WebBrowser.ExecWB(2,1) //关闭现在所有的IE窗口,并打开一个新窗口 

  WebBrowser.ExecWB(4,1) //保存网页

  //--------------- 常用 ---------------  

  WebBrowser.ExecWB(6,1) //打印 

  WebBrowser.ExecWB(7,1) //打印预览 

  WebBrowser.ExecWB(8,1) //打印页面设置 

  //------------------------------------- 

  WebBrowser.ExecWB(10,1) //查看页面属性 

  WebBrowser.ExecWB(15,1) //撤销 

  WebBrowser.ExecWB(17,1) //全选 

  WebBrowser.ExecWB(22,1) //刷新 

  WebBrowser.ExecWB(45,1) //关闭窗体无提示

</script>

方式三:采用document.execCommand(”print”)

该办法也相称各类版本的浏览器,同window.print(卡塔尔(قطر‎相似,其运转的是打字与印刷对话框,chrome的打字与印刷对话框自带预览效率,不过IE、火狐仅仅只弹出打字与印刷设置对话框,没有预览功用。

方式四:采用JQuery插件

动用jQuery浏览插件能够很方便的扩充局地打字与印刷,常用的插件有:

js打印研究整理。1State of Qatarjquery.print.js
下载地址:https://github.com/DoersGuild/jQuery.print

2State of Qatarjquery.print-preview.js
下载地址:https://github.com/etimbo/jquery-print-preview-plugin

那三种办法利用都很简短,1)通过$(“#id”).print(/options/);调用;2)通过$(‘#澳门太阳娱乐手机登录,id’).printArea(/options/卡塔尔国;
在那之中的option可筛选能够在下载地址下载下来后看示例代码,平时options不用传就可以

艺术五:采取浏览器打字与印刷第三方插件
比方Lodop插件

比如Lodop插件,那些蛮好用,套打,局地打字与印刷都杠杠的,可是是收取金钱的,免费的饱含水印,比较蛋疼。

window.print(卡塔尔(قطر‎方法打字与印刷,全体首要浏览器都帮忙 print(State of Qatar 方法。

想要局地打字与印刷,通过jQuery插件就足以完结,现在互联网有无尽如此的插件,比方jqprint插件等等。也得以由此三个打字与印刷前和打字与印刷后的平地风波onbeforeprint、onafterprint。可以在打字与印刷前的时候重新编写一些格式,特地送去打字与印刷,打字与印刷后又管理回来。

    function window.onbeforeprint()

    { //将一些不需要打印的隐藏 }

    function window.onafterprint()

    { //放开隐藏的元素 }

则足以用数码嵌套在 三个 div 里,取得 div

var printData = document.getElementById("dvData").innerHTML;

取得 div 里的持有 html 数据

window.document.body.innerHTML = printData;  

//把 html 里的数目 复制给 body 的 html 数据 ,相当于重新载入参数了 整个页面的内容

window.print(卡塔尔国; // 开始打字与印刷

调用window.print(State of Qatar时,能够动用css来支配页面中的东西是不是出示

1.  <style>  
2.  @media print{  
3.  .noprint{  
4.  display:none  
5.  }  
6.  }  
7.  </style>  

HTML如下:

1.  <table width="757" height="174" border="0" align="center" cellpadding="0" cellspacing="0">  
2.  <tr class="noprint">  
3.  <td height="133" align="center" valign="top">  
4.  <img src="Images/top.jpg" width="757" height="133"></td>  
5.  </tr>  
6.  </table>  

应用打字与印刷分页css,也正是分页符,总是在这里div后分页

1.  <div style="page-break-after:always"></div>  

ps:关于page-break-after的使用:http://www.w3school.com.cn/cssref/pr_print_page-break-after.asp
要求特别注意的是它使用于:position 值为 relative 或 static
的非浮动块级元素。那时候absolute的时候是不起效能的。

2.将分界面分为七个div,三个div中用于进行分界面显得,另一个div实行打字与印刷填充,五个div

一个为分界面展现时的体裁,另贰个为打字与印刷时的样式,单击打字与印刷时页面div隐蔽,对别的一个div进行填充,打字与印刷形式实践到位后,页面div突显,另一个div隐蔽。

用法:

1,点打字与印刷按钮弹出新窗口,把须求打印的剧情彰显到新窗口中,在新窗口中调用window.print(卡塔尔(قطر‎方法,然后自动关闭新窗口。假若要打字与印刷的页面拼版和原web页面迥然分化,采取此种方法。

1.  <!DOCTYPE html>  
2.  <html>  
3.  <head>  
4.  <meta charset="utf-8">  
5.  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  
6.  <title>打印测完</title>  
7.  <meta name="description" content="">  
8.  <meta name="keywords" content="">  
9.  <link href="" rel="stylesheet">  
10.  <style>  
11.  #oDiv2 div{width: 100px;height: 100px;border:1px solid #c50000;}  
12.  </style>  
13.  </head>  
14.  <body>  
15.  <div>aaa</div>  
16.  <div id='oDiv2'><div>bbb</div></div>  
17.  <div>ccc</div>  
18.  <input type="button" value="打印" id="js_print" />  

20.  <script>  

22.  var oPrintBtn = document.getElementById("js_print");  
23.  var oDiv2 = document.getElementById("oDiv2");  
24.  oPrintBtn.onclick=function(){  
25.  var oPop = window.open('','oPop');  
26.  var str = '<!DOCTYPE html>'  
27.  str +='<html>'  
28.  str +='<head>'  
29.  str +='<meta charset="utf-8">'  
30.  str +='<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">'  
31.  str+='<style>';  
32.  str+='#oDiv2 div{width: 100px;height: 100px;border:1px solid #c50000;}';  
33.  str+='</style>';  
34.  str +='</head>'  
35.  str +='<body>'  
36.  str +="<div id='oDiv2'><div>bbb</div></div>";  
37.  str +='</body>'  
38.  str +='</html>'  

40.  oPop.document.write(str);  
41.  oPop.print();  
42.  oPop.close();  
43.  }  

45.  </script>  
46.  </body>  
47.  </html>  

2.打印第三放页面不用张开该页面

<!doctype html>  <html>  
<head>  <meta http-equiv="Content-Type"  content="text/html; charset=UTF-8"  />  <title>MDN Example</title> 
 <script type="text/javascript">  
function closePrint ()  { 
document.body.removeChild(this.__container__); 
 }  
function setPrint ()  { 
 this.contentWindow.__container__ =  this;  
this.contentWindow.onbeforeunload = closePrint;
  this.contentWindow.onafterprint = closePrint;
  this.contentWindow.focus();  // Required for IE  this.contentWindow.print();
  } 

 function printPage (sURL)  {
  var oHiddFrame = document.createElement("iframe");
 oHiddFrame.onload = setPrint; oHiddFrame.style.visibility =  "hidden"; oHiddFrame.style.position =  "fixed"; oHiddFrame.style.right =  "0"; oHiddFrame.style.bottom =  "0";
 oHiddFrame.src = sURL; 
document.body.appendChild(oHiddFrame);  }  
</script>  
</head> 
 <body>  
<p>Print external page!</p> 
 </body>  </html>

3,展开一个弹窗用于打印页面,打印完成后自动关闭窗口

<!doctype html>  <html> 
 <head>  <meta http-equiv="Content-Type"  content="text/html; charset=UTF-8"  />  <title>JavaScript Window Close Example </title> 
 <script type="text/javascript"> 
 function  popuponclick()  { 
my_window = window.open('',  'mywindow',  'status=1,width=350,height=150'); my_window.document.write('<html><head><title>Print Me</title></head>'); my_window.document.write('<body onafterprint="self.close()">'); my_window.document.write('<p>When you print this window, it will close afterward.</p>'); 
my_window.document.write('</body></html>');  }  
</script>  
</head>  
<body>  <p>To try out the <code>afterprint</code> event, click the link below to open the window to print. You can also try changing the code to use <code>beforeprint</code> to see the difference.</p>
  <p><a href="javascript:%20popuponclick()">Open Popup Window</a></p> 
 </body>  
</html>

4.window.print(卡塔尔国直接打字与印刷,不弹出设置打字与印刷参数的对话框

现今有三种缓慢解决方案,

(1State of Qatar.第一种是亟需设置插件,英特网下载ScriptX.cab文件

下载成功后将文件放在项目有些目录下,然后在页面body中写上:

<object id=”factory” name=”factory” style=”display: none”
classid=”clsid:1663ed61-23eb-11d2-b92f-008048fdd814″
codebase=”ScriptX.cab”
viewastext></object>(记得codebase属性为ScriptX.cab文件的放置路线,是相对路线卡塔尔(قطر‎

把window.print()改成:factory.printing.Print(false)即可;

远程访谈时索要在IE浏览器设置:

1.安然无恙 -> 受信赖的站点 -> 站点 ->
加多受信任访谈站点(假诺是探望远程那么是对方IP地址,比如)

(2卡塔尔(قطر‎.第二种是无须求设置插件

首先要求在页面body中写上:

<OBJECT ID=’WebBrowser’ NAME=”WebBrowser” WIDTH=0 HEIGHT=0
CLASSID=’CLSID:8856F961-340A-11D0-A96B-00C04FD705A2′></OBJECT>

把window.print()改成:document.getElementById(“WebBrowser”).ExecWB(6,2)即可;

末尾记住一定须要在IE浏览器设置:

1.康宁 -> 本地Intranet -> 自定义品级 –
找到ActiveX控件和插件项,采取对未标志为可无恙实行的ActiveX控件发轫化并实践脚本,再选用启用

2.安全 -> 受信赖的站点 -> 自定义等第 –
找到ActiveX控件和插件项,选取对未标识为可优游卒岁实行的ActiveX控件伊始化并施行脚本,再选取启用

3.安然无恙 -> 受信赖的站点 -> 站点 ->
加多受信赖访谈站点(借使是访谈远程那么是对方IP地址,如若是本地则是本机IP.举个例子http://192.168.172.1))

http://blog.csdn.net/hdchangchang/article/details/46504417

http://blog.csdn.net/ww130929/article/details/71977187

http://blog.csdn.net/baohuan_love/article/details/49744363

https://bbs.csdn.net/topics/390978377

https://www.cnblogs.com/pijiaxiang/p/4475378.html

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图