首页 > 其他分享 >js实现网页打印分页打印

js实现网页打印分页打印

时间:2024-06-18 17:55:57浏览次数:22  
标签:function 网页 hkey 打印 factory js printing key

web打印思路:html页面本身带有打印功能window.print() 但是在打印时又不能word模板的要求来打印不能满足打印需求。同时我们打印的数据有时候是动态变化的需要按模板来打印<br>我的处理方式是:1、按照word模板设计一个html页面模板,html页面包含了你所要输出的标签 例如:{名字}{时间} 打印区域,不打印区域,分页标签等<br>             2、编写一个公用的打印类,传入参数使按照模板生成相应的数据,生成一个html页并显示。<br>             3、打印<br><br>第一种方法:指定不打印区域比如页面的打印按钮等   使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内。   详细如下:   <style media=print type="text/css">   .noprint{visibility:hidden}   </style>   <p class="noprint">将不打印的代码放在这里。</p> <a href="javascrīpt:window.print()" target="_self">打印</a>   第二种方法:指定打印区域   把要打印的内容放入一个 span或div,然后通过一个函数打印。   <span id='div1'>把要打印的内容放这里</span> <p>所有内容</p> <div id="div2">div2的内容</div> <a href="javascrīpt:printme()" target="_self">打印</a> <scrīpt language="javascrīpt"> function printme() { document.body.innerHTML=document.getElementById('div1').innerHTML+'<br/>'+document.getElementById('div2').innerHTML; window.print(); } </scrīpt>   如果要打印的只是整个页面中的一小部分,就最好采用第二种方法。   第三种方法:如果要打印的页面排版和原web页面相差很大,采用此种方法。   点打印按钮弹出新窗口,把需要打印的内容显示到新窗口中,在新窗口中调用window.print()方法,然后自动关闭新窗口。    1、控制"纵打"、 横打”和“页面的边距。   (1) <script defer> function SetPrintSettings() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 factory.printing.printer = "HP DeskJet 870C" factory.printing.copies = 2 factory.printing.collate = true factory.printing.paperSize = "A4" factory.printing.paperSource = "Manual feed"   // -- basic features factory.printing.header = "This is MeadCo" factory.printing.footer = "Advanced Printing by ScriptX" factory.printing.portrait = false factory.printing.leftMargin = 1.0 factory.printing.topMargin = 1.0 factory.printing.rightMargin = 1.0 factory.printing.bottomMargin = 1.0 } </script>   (2) <script language="javascript"> function printsetup(){ // 打印页面设置 wb.execwb(8,1); } function printpreview(){ // 打印页面预览 wb.execwb(7,1); }   function printit() { if (confirm('确定打印吗?')) { wb.execwb(6,6) } } </script> </head> <body> <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT> <input type=button name=button_print value="打印" onclick="javascript:printit()"> <input type=button name=button_setup value="打印页面设置" onclick="javascript:printsetup();"> <input type=button name=button_show value="打印预览" onclick="javascript:printpreview();"> <input type=button name=button_fh value="关闭" onclick="javascript:window.close();">   ------------------------------------------------ 关于这个组件还有其他的用法,列举如下: 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、分页打印   <HTML> <HEAD> <STYLE>   P {page-break-after: always} </STYLE> </HEAD> <BODY> <%while not rs.eof%> <P><%=rs(0)%></P> <%rs.movenext%> <%wend%> </BODY> </HTML>   3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号   (1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。 (2)<HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT="YC"> <script language="VBScript"> dim hkey_root,hkey_path,hkey_key hkey_root="HKEY_CURRENT_USER" hkey_path="\Software\Microsoft\Internet Explorer\PageSetup" '//设置网页打印的页眉页脚为空 function pagesetup_null() on error resume next Set RegWsh = CreateObject("WScript.Shell") hkey_key="\header"   RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" hkey_key="\footer" RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" end function '//设置网页打印的页眉页脚为默认值 function pagesetup_default() on error resume next Set RegWsh = CreateObject("WScript.Shell") hkey_key="\header"   RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P" hkey_key="\footer" RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d" end function </script> </HEAD>   <BODY> <br/> <br/> <br/> <br/> <br/> <br/><p align=center> <input type="button" value="清空页码" onclick=pagesetup_null()> <input type="button" value="恢复页吗"   onclick=pagesetup_default()><br/> </p> </BODY> </HTML>   4、浮动帧打印   <SCRIPT LANGUAGE=javascript> function button1_onclick() { var odoc=window.iframe1.document; var r=odoc.body.createTextRange(); var stxt=r.htmlText; alert(stxt) var pwin=window.open("","print"); pwin.document.write(stxt); pwin.print(); } </SCRIPT>   5、用FileSystem组件实现WEB应用中的本地特定打印   <script Language=VBScript> function print_onclick //打印函数 dim label label=document.printinfo.label.value //获得HTML页面的数据 set objfs=CreateObject("Scripting.FileSystemObject"//创建FileSystem组件对象的实例 set objprinter=objfs.CreateTextFile ("LPT1:",true//建立与打印机的连接 objprinter.Writeline("__________________________________"//输出打印的内容 objprinter.Writeline("| |") objprinter.Writeline("| 您打印的数据是:"&label& " |”) objprinter.Writeline("| |") objprinter.Writeline("|_________________________________|") objprinter.close //断开与打印机的连接 set objprinter=nothing set objfs=nothing // 关闭FileSystem组件对象 end function </script> 服务器端脚本: <%……… set conn=server.CreateObject ("adodb.connection") conn.Open "DSN=name;UID=XXXX;PWD=XXXX;" set rs=server.CreateObject("adodb.recordset") rs.Open(“select ……”),conn,1,1 ……….%> //与数据库进行交互 HTML页面编码: <HTML> ……… <FORM ID=printinfo NAME="printinfo" > <INPUT type="button" value="打印>>" id=print name=print > //调用打印函数 <INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据 ……… </HTML>   第四种方法:去除页眉页脚   <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PcyearSeo</title> <head> <!--关键代码部分--> <script language="javascript" type="text/javascript">   function doPrint() {    bdhtml=window.document.body.innerHTML;    sprnstr="<!--startprint-->";    eprnstr="<!--endprint-->";    prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);    prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));    window.document.body.innerHTML=prnhtml;    window.print(); }   var hkey_root,hkey_path,hkey_key   hkey_root="HKEY_CURRENT_USER"   hkey_path="\Software\Microsoft\Internet Explorer\PageSetup\ "  function pagesetup_null(){   try{   var RegWsh=new ActiveXObject("WScript.Shell")   hkey_key="header"     RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")   hkey_key="footer"   RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")   }catch(e){}   }   </script>   <!--关键代码部分--> </HEAD> <BODY> <DIV align=center> <p>     <!--关键代码部分-->     <OBJECT   id="WebBrowser"   classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"   height="0"   width="0"   VIEWASTEXT></OBJECT>     <!--关键代码部分-->     您打印内容开始: </p> <p>     <!--startprint-->     <div style="border:1px solid #999999; width:auto;"><img src="2010723115926746.jpg"/></div>     <!--endprint--> </p> <p>打印的内容结束</p> <p class="noprint">     <!--class="noprint"的作用是标示不需要打印的地方,任何一个标签的class属性都可以设置,用于去除不需要打印的地方-->     <INPUT onclick=javascript:doPrint() type=button value=打印 name=button_print />  </p> </DIV> </body> </html>

标签:function,网页,hkey,打印,factory,js,printing,key
From: https://www.cnblogs.com/jiangyuhu/p/18254830

相关文章