首页 > 其他分享 >js iframe 打印 打印预览 页眉页脚的设立

js iframe 打印 打印预览 页眉页脚的设立

时间:2023-09-12 10:36:14浏览次数:41  
标签:页脚 打印 WebBrowser iframe 页眉 document ExecWB


js iframe 打印 打印预览 页眉页脚的设置

1、window.print方式:

//jsp页面 打印按钮: <input type="button" value="打印" οnclick="print();"> //js 中: function print(){ window.print(); //style样式中,设置隐藏按钮打印: <style> @media print { .noprint{display:none} } </style>

  打印iframe:

<html xmlns="" > <head> <title>标题页</title> <body> <input οnclick='prn()' type=button value=print_Iframe$amp;>amp;$lt;br> <iframe id=myframe src=""$amp;>amp;$lt;/iframe> <script> function prn() { var win=window.open("about:blank") //打开一个空页面 win.moveTo(100,100) //移动到指定位置 win.location=document.all.myframe.src //指定页面的内容 win.print() //打印页面 } </script> </body> </html>

2,WebBrowser控件方式

  WebBrowser是IE内置的浏览器控件,无需用户 下载 .

  页面上加上代码

 

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

  js:函数中加入代码:

WebBrowser.ExecWB(6,1); //打印设置 WebBrowser.ExecWB(8,1); //打印预览 WebBrowser.ExecWB(7,1); 关于这个组件还有其他的用法,列举如下: 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) 关闭窗体无提示

  这种方式打印iframe:

window.parent.document.i1.window.WebBrowser.ExecWB(6, 1);

  选择你要的功能。

 
样式内容:

 

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

3,打印iframe 中的内容:

  主要语句:document.all.iframename.ExecWB(6,1); 便可以只打印iframe中的页面。

  document.all.iframename.ExecWB(7,1); 打印预览

  …………

 

使用这种方式打印不需要加:<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'$amp;>amp;$lt;/object>

  例如:

 

function printPage() { PageSetup_Null() ; document.all.iframename.ExecWB(6,1); } //打印预览 function printPreview() { document.all.iframename.ExecWB(7,1); }
  //设置网页打印的页眉页脚为空 function PageSetup_Null() { try{ var Wsh=new ActiveXObject("WScript.Shell"); Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header",""); //通过修改注册表的方式 页眉和页脚也可以改成你想要的内容 Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\footer",""); }catch(e){ alert(e.name+e.message); } }

  通过:document.all.iframe.***的方式打印 不仅可以只打印本页面中的iframe 还可以多层嵌套找到要打印的iframe

  例如:

  first.html

 

<body> firstpage <input type="button" οnclick="printPreview()" value="打印预览"> <input type="button" οnclick="printPage()" value="打印"> <br/> <iframe name="iframe" width="500" src="secend.html"$amp;>amp;$lt;/iframe> </body>

  secend.html

<body > secendpage <br/> <br/> <iframe name="i1" src="third.html"$amp;>amp;$lt;/iframe> <iframe name="i2" src="thirdd.html"$amp;>amp;$lt;/iframe> <br> </body>

  third.html: 随意吧

  js:

//打印 function printPage() { //页眉页脚空…… 这里没写了 iframe.document.all.i1.ExecWB(6, 1); " } //打印预览 function printPreview() { iframe.document.all.i1.ExecWB(7, 1); }

  于是 以此类推: 就可以实现任意的iframe嵌套打印和打印预览问题了

  例如从子页面找父页面打印也可:window.parent.document.all.i1.ExecWB(6, 1);

  至于页眉页脚的设置问题我想再细说说

  如果你按路径打开注册表 就一目了然

  

  你可以通过更改注册表里的信息改变页眉页脚的任何设置

 
&w  网页标题 
&u 网页地址 (URL) 
&d  短日期格式(由“控制面板”中的“区域设置”指定) 
&D  长日期格式(由“控制面板”中的“区域设置”指定) 
&t  由 “控制面板”中的“区域设置”指定的时间格式 
&T  24 小时时间格式 
&p  当前页码 
&P  总页数 
&b  文本右对齐(请把要右对齐的文字放在“&b”之后) 
&b&b 文字居中(请把要居中的文字放在“&b”和“&b” 之间) 
&&   单个 & 号 (&)

  Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header","&b页眉&b");   //设置页眉居中

  遗留问题:1,火狐的兼容问题 火狐里 至今没实现打印预览

  2,改变注册表设置页眉页脚 毕竟不友好 希望有更好的方式

  希望大虾们帮帮忙

  遗留问题已解决:

  1,火狐 我找了个插件 效果还挺漂亮的 我已经上传了 大家可以下载下来看看

  2,没有找到别的方式 最后还是选择了修改注册表

  不过document.all.Iframe.ExecWB(6,1,2);  第三个参数设为2 表示等待打印完成

  刚开始试的时候发现他并不能等待打印完成再执行我要的函数 后来发现加上setTimeout 就好使了

  所以我还是修改注册表 等打印完成后再将注册表改回来

  

//打印 function printPage() { //设置页眉页脚 PageSetup_Null() document.all.Iframe.ExecWB(6,1,2); //设置页眉页脚 setTimeout(" PageSetup_Default() ",200); }

  采用这种方式打印完成后注册表被修改被原来的值就可以了 最然没弄明白为什么要加setTimeout() 但 真的好使 确实实现了 打印后 再把注册表修改为原来值

标签:页脚,打印,WebBrowser,iframe,页眉,document,ExecWB
From: https://blog.51cto.com/u_16255870/7443175

相关文章

  • js实现页面打印功能实例代码(附去页眉页脚功能代码)
    <html><head></head><styletype="text/css"media="screen">@mediaprint{.print{display:block;}.notPrint{display:none;}}</style><scriptlanguage="javascript">functionprevi......
  • javascript:window.print() 打印
    1.JavaScript打印<inputid="btnPrint"type="button"value="button"οnclick="javascript:window.print();"style="color:#00f;font-weight:bold;text-decoration:none;cursor:pointer!important;cursor:hand"/>......
  • 病案自助打印终端产品有什么功能和优势
    病案自助打印终端是配合数字化或无纸化病案管理系统,赋予患者及家属更多主动权,可自助打印病案,减少医务工作者的工作压力,让病案打印服务更加便利。支持多种身份识别方式,内置大容量、高负荷、高速度的打印机及自动盖章机、自动装订设备等,有效节省患者排队等待时间。病案自助打印终端产......
  • [转载]生产追溯打印的二维码为什么选用 Data Matrix 编码格式(附QR码介绍)
    Datamatrix原名Datacode,由美国国际资料公司(InternationalDataMatrix,简称IDMatrix)于1989年发明。Datamatrix是一种矩阵式二维条码,其发展的构想是希望在较小的条码标签上存入更多的资料量。Datamatrix的最小尺寸是目前所有条码中最小的,尤其特别适用于小零件的标识,以及直接印刷......
  • VBA*CommandBars控制菜单栏上的菜单(如页面设置、打印)
    Subtest()'视图工具栏中,各种工具对应的英文名称'worksheetmenubar表示工作表菜单栏Application.CommandBars("worksheetmenubar").Enabled=false'formatting表示格式工具栏Application.CommandBars("Formatting").Visible=False'standard表示常用工具栏Appl......
  • C++多线程编程:包括多线程打印ABC、线程池实现等等
    #include<iostream>#include<thread>#include<mutex>#include<condition_variable>std::condition_variablecond;std::mutexprint_mutex;intflag=0;voidprint_thread(intnum){for(inti=0;i<10;i++)//循环{......
  • (J-Link)HC32F460JETA SEGGER RTT打印输入输出调试信息
    完美解决https://blog.csdn.net/qq_40675506/article/details/127005532起初最后输出部分费了好大劲在填(setRTTAddr)的时候,找地址很不容易。 不过之后很长一段时间了,直接勾选的auto就直接可以了。很神奇 ......
  • 请大家一定不要像我们公司这样打印log日志
    前言最近接手了公司另一个项目,熟悉业务和代码苦不堪言。我接手一个新项目,有个习惯,就是看结构,看数据库,搜代码。其中搜代码是我个人这些年不知不觉形成的癖好,我下面给大家展示下这个小癖好。正文我面对一个到手的新项目,会主动去搜索一些关键词,让我对这个项目有个整体健......
  • 如何在博客页脚添加一个好看的蓝色波浪呢?
    前言:这个是一个美化页脚的代码,我相信很多博友都知道是怎么弄的,本文是为专为新手们准备的教程教程开始:在你的主题目录找到footer.php文件,打开编辑在</footer>下或者在footer.php文件里的末尾添加以下代码即可。<!--底部波浪开始--><divclass="wiiuii_layout"><svg......
  • python-pycharm打印 不换行,清空
    一、参考代码foriinrange(100):time.sleep(0.4)#print(i)print('\r','count:'+str(i),end='---')#这种方式可以避免输出内容刷屏......