直接上代碼:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>打印</title> 6 <style type="text/css"> 7 body{ 8 background-color: #fff; 9 width: 100%; 10 height: 100%; 11 } 12 * { 13 padding: 0; 14 margin: 0; 15 } 16 .main{ 17 padding: 2%; 18 font-family: Simsun; 19 } 20 @media print { 21 @page { 22 size: A4; 23 } 24 } 25 @media screen { 26 .main{ 27 display: none; 28 } 29 } 30 </style> 31 </head> 32 <body> 33 <!--startprint--> 34 <div class="main"> 35 <h1 align="center">要打印的文件標題</h1> 36 <!-- 在這里畫要打印的內容 你需要什么標簽什么樣式自己畫就可以 --> 37 </div> 38 <!--endprint--> 39 </body> 40 <script type="text/javascript" src="/wro/jquery1.8.3.js"></script> 41 <script type="text/javascript"> 42 $(function(){ 43 print_page(); 44 }); 45 46 function print_page() { 47 if (!!window.ActiveXObject || "ActiveXObject" in window) { 48 remove_ie_header_and_footer(); 49 } 50 bdhtml=window.document.body.innerHTML; //獲取當前頁的html代碼 51 sprnstr="<!--startprint-->"; //設置打印開始區域 52 eprnstr="<!--endprint-->";//設置打印結束區域 53 prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);//從開始代碼向后取html 54 prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結束代碼向前取html 55 window.document.body.innerHTML=prnhtml; 56 window.print(); 57 // 這里延遲關閉是因為在加載的東西比較多的時候,可能dom需要的數據還沒加載完就關閉了。這樣會導致數據顯示不全,所以采用延遲關閉的方法防止數據不全。具體延遲多長時間自己控制。 58 setTimeout(cancle,5000); 59 }; 60 61 function remove_ie_header_and_footer() { 62 var hkey_root, hkey_path, hkey_key; 63 hkey_path = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; 64 try { 65 var RegWsh = new ActiveXObject("WScript.Shell"); 66 RegWsh.RegWrite(hkey_path + "header", ""); 67 RegWsh.RegWrite(hkey_path + "footer", ""); 68 } catch (e) {} 69 } 70 71 function cancle(){ 72 window.close(); 73 } 74 </script> 75 </html>
微信公眾號:敲代碼的小浪漫
歡迎大家關注~