生活随笔
收集整理的這篇文章主要介紹了
网页打印和ActiveX控件打印
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
瀏覽器網(wǎng)頁打印
1. 前言
客戶對于一些插件比較敏感,如金融、銀行等出于安全的考慮和產(chǎn)品的把控,可能不愿意頁面打印的時候,客戶端瀏覽器安裝插件。(當然,用戶有各種各樣的需求和打印格式要求,愿意使用打印控件的,開發(fā)的打印功能當然很好。)
所以直接使用瀏覽器自帶的打印功能,就成為一個選擇。
2. 打印功能介紹
2.1 普通打印
如果要將當前網(wǎng)頁的內(nèi)容直接打印到白紙上,很簡單,使用如下js代碼即可實現(xiàn)。
window.print();
2.2 打印指定區(qū)域
2.2.1 簡單打印某一區(qū)域
如果只需要簡單打印當前網(wǎng)頁的某一塊內(nèi)容,不難實現(xiàn)。先使要打印的那一塊獲得焦點,然后打印即可,代碼如下:
document.getElementById('要打印的區(qū)域id').focus();window.print();
2.2.2使用css控制某一部分不打印
當然,使用css來控制某一區(qū)域不打印,也是很方便的。
代碼如下(紅色部分是關(guān)鍵)。該樣式,在瀏覽的時候可以正常顯示,只是打印的時候不打印class為noprint的元素。
<style type="text/css" media="print">.noprint{ display : none }</style>
2.3套打
如果用戶已經(jīng)有打印表格,只需要你打印數(shù)據(jù)內(nèi)容上去,就是所謂的套打。
你當然可以設(shè)計一個只有要打印的數(shù)據(jù)項的表格,然后通過css來控制元素的位置和字體等格式。也可以結(jié)合 2.2.2 的描述將不需要打印的部分隱藏,這樣更便于你的打印預(yù)覽調(diào)試。
2.4 iframe打印
如果你的打印格式比較復(fù)雜,在現(xiàn)有頁面通過上邊介紹的方式實現(xiàn)起來比較麻煩,那就干脆使用iframe打印吧。那樣你只需要提前畫好一個頁面,在要打印的時候使用js將內(nèi)容或者模板頁面路徑傳給iframe即可。
代碼如下:
window.frames[‘printFrm’].location.href = “頁面路徑”;
setTimeout(“printAction()”,“1000”);//為防止頁面未加載完就打印,延遲一秒
function printAction(){
window.frames[‘printFrm’].focus();
window.frames[‘printFrm’].print();
}
如果不希望iframe被看到,就像下邊這樣,將高度設(shè)置為0吧
當然,如果需要自己來控制頁邊距、頁眉、頁腳等,可以先按 1.6 中描述方式進行設(shè)置。
WEB打印如何設(shè)置默認為"僅選定打印框架"?
function printAction(){
window.frames[‘printFrm’].focus();
window.frames[‘printFrm’].print();
}
2.5 修改瀏覽器打印設(shè)置
在打印的時候,你可能希望由自己來控制頁邊距、頁眉、頁腳等。可以按如下方式,在打印前進行相應(yīng)的設(shè)置(注:由于使用了ActiveXObject,需要進行相應(yīng)的瀏覽器安全設(shè)置,將瀏覽器安全設(shè)置中有關(guān)“ActiveX控件和插件”下的相關(guān)限制放開,當然,這樣做不是很安全。可以將系統(tǒng)訪問地址設(shè)置為“受信任的站點”,在“受信任的站點”的自定義級別中放開相應(yīng)限制,這就比較妥當了。)。
function setPrint(){
var hkey_root,hkey_path,hkey_key;
hkey_root=“HKEY_CURRENT_USER”;
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup\";
//設(shè)置網(wǎng)頁打印的頁眉頁腳為空
try{
var RegWsh = new ActiveXObject(“WScript.Shell”);
//設(shè)置頁眉為空
hkey_key=“header” ;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");
//設(shè)置頁腳為空
hkey_key=“footer”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");//設(shè)置下頁邊距(0)
hkey_key=“margin_bottom”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”); //設(shè)置左頁邊距(0)
hkey_key=“margin_left”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
//設(shè)置右頁邊距(0)
hkey_key=“margin_right”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
//設(shè)置上頁邊距(0)
hkey_key=“margin_top”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
}catch(e){
alert(‘請將本系統(tǒng)地址加入"受信任的站點",否則打印格式可能會不正確!’);
}
}
2.6 需要分頁的地方加上一行代碼:
Activex 控件件打印
如果控件無法彈出生效,可能是IE的安全策略的問題。
可以修改IE的ActiveX 的安全項
或者如下代碼寫到程序中。
try{
var WshShell=new ActiveXObject(“WScript.Shell”);
//添加信任站點(http://127.0.0.1) WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\",""); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range","127.0.0.1"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD"); //修改IE ActiveX安全設(shè)置: 1本地Intranet區(qū)域 WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1001","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1004","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1200","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1201","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1405","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\2201","0","REG_DWORD"); //修改IE ActiveX安全設(shè)置:2受信任的站點區(qū)域 WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1001","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1004","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1200","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1201","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1405","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\2201","0","REG_DWORD"); //修改IE ActiveX安全設(shè)置:3Internet區(qū)域 WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1001","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1004","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1200","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1201","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1405","0","REG_DWORD"); WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\2201","0","REG_DWORD"); //禁用Winxp彈出窗口阻止程序 WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr","no"); }catch(e){ //alert("不允許ActiveX控件"); }
總結(jié)
以上是生活随笔為你收集整理的网页打印和ActiveX控件打印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。