js打印

 由于是要套打,所以套打的页面不可能给用户看,需要单独制作一个套打的页面,只有要打印的内容,位置用 <DIV  style="LEFT: 35mm; FONT: 9pt 宋体; POSITION: absolute; TOP:  75mm">打印内容 </DIV>其中,left 是你打印纸从最左边到内容的距离,top 是从纸最上边到打印内容的距离,这个距离要用尺量好,并且减去 19.05,这个数是IE页面设置中页距的上下左右的默认值,不减就对不准了。

  1. window.print = printFrame;
  2. // main stuff
  3. function printFrame(frame, onfinish) {
  4.   if ( !frame ) frame = window;
  5.   function execOnFinish() {
  6.         switch ( typeof(onfinish) ) {
  7.         case "string": alert('print... '); break;//execScript(onfinish)
  8.         case "function": onfinish();
  9.         }
  10.     if ( focused && !focused.disabled ) focused.focus();
  11.   }
  12.   if (( frame.document.readyState !== "complete") &&( !frame.document.confirm("The 
  13. document to print is not downloaded yet! Continue with printing?") ))
  14.   {
  15.     execOnFinish();
  16.     return;
  17.   }
  18.     var eventScope = printGetEventScope(frame);
  19.     var focused = document.activeElement;
  20.      
  21.     window.printHelper = function() {
  22.         execScript("on error resume next: printWB.ExecWB 6, 1""VBScript");
  23.         printFireEvent(frame, eventScope, "onafterprint");
  24.         printWB.outerHTML = "";
  25.         execOnFinish();
  26.         window.printHelper = null;
  27.     }
  28.     document.body.insertAdjacentHTML("beforeEnd",
  29.         " <object id=/"printWB/" width=0 height=0 /
  30.         classid=/"clsid:8856F961-340A-11D0-A96B-00C04FD705A2/">");
  31.      
  32.     printFireEvent(frame, eventScope, "onbeforeprint");
  33.     frame.focus();
  34.     window.printHelper = printHelper;
  35.     setTimeout("window.printHelper()", 0);
  36. }
  37. function hideButton()
  38. {
  39.       document.getElementById("btn_Back").style.display = "none";
  40. }
  41. function printFixedApp()
  42. {
  43.    if(confirm('确定要打印吗?'))//这些是我自己加的,业务需要隐藏点过的按钮
  44.     {           
  45.         document.getElementById("btn_Back").style.display = "none";
  46.         document.getElementById("btn_print").style.display = "none";      
  47.         document.getElementById("btn_modify").style.display = "none";
  48.        
  49.         printHidden("printPage_fixed.aspx");//里面是套打的页面
  50.       
  51.     }
  52. }
  53. function printHidden(url) {
  54.   document.body.insertAdjacentHTML("beforeEnd",
  55.     " <iframe name=printHiddenFrame width=0 height=0> </iframe>");
  56.   var doc = printHiddenFrame.document;
  57.   doc.open();
  58.   doc.write(" <body οnlοad=/"parent.onprintHiddenFrame()/">");
  59.   doc.write(" <iframe name=printMe width=0 height=0 src=/"" +
  60.       url + "/"> </iframe>");
  61.   doc.write(" </body>");
  62.   doc.close();
  63. }
  64. function onprintHiddenFrame() {
  65.   function onfinish() {
  66.     printHiddenFrame.outerHTML = "";
  67.     if ( window.onprintcomplete )
  68.     {
  69.         window.onprintcomplete();
  70.         alert("print completed!");
  71.     }
  72.      window.location.href = "ApplicationBillView_fixed.aspx";//打印完成后转到其它页   
  73.   }
  74.   printFrame(printHiddenFrame.printMe, onfinish);
  75. }
  76. // helpers
  77. function printIsNativeSupport() {
  78.   var agent = window.navigator.userAgent;
  79.   var i = agent.indexOf("MSIE ")+5;
  80.   return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1")  < 0;
  81. }
  82. function printFireEvent(frame, obj, name) {
  83.   var handler = obj[name];
  84.   switch ( typeof(handler) ) {
  85.     case "string": frame.execScript(handler); break;
  86.     case "function": handler();
  87.   }
  88. }
  89. function printGetEventScope(frame) {
  90.   var frameset = frame.document.all.tags("FRAMESET");
  91.   if ( frameset.length ) return frameset[0];
  92.   return frame.document.body;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值