隨筆-1  評論-3  文章-13  trackbacks-0
          WEB打印大全
          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>
          補充:javasript的寫法:
          ?? <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,"")
          }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>
          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>
          4、用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>

          首先在網頁中添加:

          ???? <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
          ??????VIEWASTEXT>
          ???? </OBJECT>

          然后就可以依次加入功能按鈕了:

          <input onclick="document.all.WebBrowser.ExecWB(6,1)" type="button" value="打印"> <input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">
          ???? <input onclick="document.all.WebBrowser.ExecWB(8,1)" type="button" value="頁面設置">
          ???? <input onclick="document.all.WebBrowser.ExecWB(7,1)" type="button" value="打印預覽"> <INPUT type="button" value="關閉窗口" onclick="javascript:window.close()">

          將這兩塊東西放到<center class=noprint></center>就不會打印這些按鈕了。當然要定義noprint了:

          <style media="print">.Noprint { DISPLAY: none }</style>只要把不想打印的東西的css設置成noprint就可以了。

          現在就實現了基本的web打印,需要注意的情況如下:

          必須將ie的internet選項的安全設置中對于沒有標記為安全的ActiveX控件進行...設置成提示或者啟用,否則會報錯,導致不可用。
          如果在vs.net編輯環境下編輯該頁面,它經常自動的給object添加多余的參數,有了這些東西,打印就會出錯,所以要記得最后保存的時候刪除它們。
          為了簡便并且達到最好的效果,我們可以在一個頁面實現編輯和打印,這時候會需要很多的textbox,我們把它的css設置成.edittext
          {
          overflow-y:visible;
          width: 100%;
          border-top: none;
          border-right: none;
          border-bottom: none;
          border-left: none;
          }就可以實現在打印的時候不顯示邊框和multiline的textbox不顯示滾動條了。

          還有一些小經驗就是在設置標格寬度的時候,對于A4紙張,橫打用920,豎打用640,效果最好。








          <html>
          <style media="print">.Noprint { DISPLAY: none }</style>
          <head>
          </head>
          <body>
          第一行
          <p>
          第二行直接打印
          <center class=noprint>

          <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT>
          </OBJECT>
          <p>
          這行不打印
          <p>
          <input onclick="document.all.WebBrowser.ExecWB(6,1)" type="button" value="打印">
          <input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">
          <input onclick="document.all.WebBrowser.ExecWB(8,1)" type="button" value="頁面設置">
          <input onclick="document.all.WebBrowser.ExecWB(7,1)" type="button" value="打印預覽">
          <INPUT type="button" value="關閉窗口" onclick="javascript:window.close()">
          </center>
          </body>
          </html>

          posted on 2006-05-11 12:37 romance 閱讀(119) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 中阳县| 新余市| 郎溪县| 深圳市| 璧山县| 收藏| 临邑县| 金乡县| 阳西县| 临沂市| 阳曲县| 樟树市| 新和县| 金寨县| 华蓥市| 轮台县| 隆尧县| 肃南| 邢台县| 澄江县| 木里| 宜君县| 罗平县| 乌鲁木齐县| 楚雄市| 商南县| 富平县| 顺昌县| 高邑县| 宁河县| 加查县| 安溪县| 白银市| 综艺| 榆中县| 怀宁县| 阿坝县| 定兴县| 东兰县| 郧西县| 广东省|