js實現網頁打印分頁打印


web打印思路:html頁面本身帶有打印功能window.print() 但是在打印時又不能word模板的要求來打印不能滿足打印需求。同時我們打印的數據有時候是動態變化的需要按模板來打印
我的處理方式是:1、按照word模板設計一個html頁面模板,html頁面包含了你所要輸出的標簽 例如:{名字}{時間} 打印區域,不打印區域,分頁標簽等
2、編寫一個公用的打印類,傳入參數使按照模板生成相應的數據,生成一個html頁並顯示。
3、打印

第一種方法:指定不打印區域比如頁面的打印按鈕等 使用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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM