一杯清茶

          統計

          留言簿

          Oracle SQL/PLSQL

          PowerDesigner教程系列

          Struts2.0

          web開發

          三人行

          從事RCP開發的同行

          工作流和權限設置

          閱讀排行榜

          評論排行榜

          JS網頁打印設置技巧

          轉自:http://blog.sina.com.cn/s/blog_3eba8f1c0100emu4.html

          最近寫一些東西需要提供網頁打印功能,所以歸納總結了一下,本節主要講述使用IE6支持打印功能,不同瀏覽器安全設置與支持有差異,如果不支持,請使用您的瀏覽器自帶打印功能(或手動設置啟用ActiveX控件)。書寫有不足或描述不清的地方請大家指正。^-^

          利用CSS樣式打印是經常使用的一種打印方法,利用它可以非常方便的實現打印頁面中的指定內容和分頁打印,下面將通過具體實例介紹如何利用CSS樣式打印。

          [分析]:
          1.打印樣式區分:打印網頁帶頁面樣式,需指明一個media='print'的樣式,建議分開,如下創建軍一個bankprint.css打印樣式文件。
          <link rel="stylesheet" media="screen" type="text/css" href="/public/default/css/bank.css" />
          <!-- 打印樣式 -->
          <link rel="stylesheet" media="print" type="text/css" href="/public/default/css/bankprint.css" />
          例:
          <style media=‘print’>

          .Noprint {display:none;}

          .PageBreak {page-break-after: always;}

          </style>
          說明:
          media類型是CSS屬性媒體類型,用于直接引入媒體的屬性。其語法格式如下:
          @media screen | print | projection | braille | aural | tv | handheld | all
          參數說明
            screen:指計算機屏幕。
            print:指用于打印機的不透明介質。
            projection:指用于顯示的項目。
            braille:盲文系統,指有觸覺效果的印刷品。
            aural:指語音電子合成器。
            tv:電視類型的媒體。
            handheld:指手持式顯示設備。
            all:用于所有媒體。
          2.WebBrowser控件
          同其他控件一樣,首先我們需要在頁面中嵌入WebBrowser控件,不過由于該控件是IE瀏覽器自帶的,支持瀏覽器默認安全設置,因此避免了安全性設置的麻煩。對于IE7及以上安全性要求更高的瀏覽器,您或許還是需要自定義IE的安全性級別。
          <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="wb" width="0" height="0"></OBJECT>
          下面就是該控件涉及打印的功能調用,用戶可以在JavaScrip中調用:
          wb.execwb(6,1); //打印,打印當前頁面
          wb.execwb(7,1); //打印預覽
          wb.execwb(8,1); //打印設置,調出系統打印設置對話框

          3.頁眉、頁腳設置:打印時,有的需要去掉頁眉頁腳,或替換成自已想要的。
          <script language="JavaScript">
              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,"");
                      //&b 第&p頁/共&P頁 &b
                  }catch(e){}
              }
              //配置網頁打印的頁眉頁腳為默認值
              function pagesetup_default(){
                  try{
                      var RegWsh = new ActiveXObject("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");
                  }catch(e){}
              }
          ...
          </script>

          [源碼例子]:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>打印設置</title>
          <link rel="stylesheet" media="screen" type="text/css" />
          <!-- 打印樣式 -->
          <link rel="stylesheet" media="print" type="text/css" />
          <script language="JavaScript">
              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,"");
                      //&b 第&p頁/共&P頁 &b
                  }catch(e){}
              }
              //配置網頁打印的頁眉頁腳為默認值
              function pagesetup_default(){
                  try{
                      var RegWsh = new ActiveXObject("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");
                  }catch(e){}
               
               //打印選區內容
              function doPrint() {
                  pagesetup_null();
                  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(); 
              }
              //打印頁面預覽
              function printpreview(){
                  pagesetup_null();
                  //wb.printing.header = "居左顯示&b居中顯示&b居右顯示頁碼,第&p頁/共&P頁";
                  //wb.printing.footer = "居左顯示&b居中顯示&b居右顯示頁碼,第&p頁/共&P頁";
                  try{
                      wb.execwb(7,1);
                  }catch(e){
                      alert("您的瀏覽器不支持此功能,請選擇'文件'->'打印預覽'");
                  }
              }
              //打印
              function prints(){
                  pagesetup_null();
                  //wb.printing.header = "居左顯示&b居中顯示&b居右顯示頁碼,第&p頁/共&P頁";
                  //wb.printing.footer = "居左顯示&b居中顯示&b居右顯示頁碼,第&p頁/共&P頁";
                  try{
                      wb.execwb(6,1);
                  }catch(e){
                      alert("您的瀏覽器不支持此功能");
                  }
              }
          </script>
          </head>
          <body>
          <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="wb" width="0" height="0"></OBJECT>
          <div id="bankwrap">
            <div class="Noprint"><a style="cursor:pointer; color:#0000FF">返回首頁</a></div>
            <div style="text-align:right">
              <p class="Noprint">
                  <span style="cursor:pointer; color:#0000FF" onclick="javascript:window.open('http://www.chinasvf.com/Webs/Share/printhelp')" class="Noprint">打印幫助</span>
                  <span style="cursor:pointer; color:#0000FF" onclick="printpreview();">打印預覽</span>
                  <span style="cursor:pointer; color:#0000FF" onclick="prints();" class="Noprint">打印</span>
              </p>
            </div>
            <div class="banktitle">內容</div>
          </div>
          </body>
          </html>

          posted on 2009-07-22 20:12 一杯清茶 閱讀(3660) 評論(2)  編輯  收藏

          評論

          # re: JS網頁打印設置技巧 2010-07-08 16:44 犀山居士

          使用注冊表的那種方法好像沒有效果啊,是怎么回事?  回復  更多評論   

          # re: JS網頁打印設置技巧 2010-07-08 16:46 犀山居士

          有沒有辦法實現用代碼直接修改基本的打印設置參數?如修改打印紙張方向等,如注冊表那種方法,而不是要彈出設置界面讓用戶每次打印都要重新去設置,  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 苏州市| 苍溪县| 池州市| 革吉县| 揭阳市| 灯塔市| 抚顺县| 泸西县| 呼和浩特市| 石泉县| 扎赉特旗| 齐河县| 麻城市| 尼玛县| 永宁县| 八宿县| 上蔡县| 新邵县| 进贤县| 互助| 怀仁县| 磐安县| 南投县| 当雄县| 田林县| 阳谷县| 青河县| 乐昌市| 锦州市| 曲靖市| 调兵山市| 班玛县| 无为县| 五峰| 九台市| 余姚市| 永城市| 水城县| 尼勒克县| 福建省| 德阳市|