• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 關于ASP.NET頁面打印技術的總結

    發表于:2008-04-07來源:作者:點擊數: 標簽:
    網絡 打印概述 B/S結構導致了Web應用程序 中打印的特殊性。 程序運行在瀏覽器中,打印機在本地,而文件確可能在 服務器 上,導致了打印控制不是很靈活。 格式如何控制和定制等,是我們 開發 中可能會面對的問題。 打印文檔的生成 1、客戶端腳本方式 一般情況
    網絡打印概述

      • B/S結構導致了Web應用程序中打印的特殊性。

      • 程序運行在瀏覽器中,打印機在本地,而文件確可能在服務器上,導致了打印控制不是很靈活。

      • 格式如何控制和定制等,是我們開發中可能會面對的問題。

      打印文檔的生成

      • 1、客戶端腳本方式

      一般情況下,主要使用JS 可以分析源頁面的內容,將欲打印的頁面元素提取出來,實現打印。通過分析源文檔的內容,可以生成打印目標文檔。

      優點:客戶端獨立完成打印目標文檔的生成,減輕服務器負荷;

      缺點:源文檔的分析操作復雜,并且源文檔中的打印內容要有約定。

      • 2、服務器端程序方式

      利用后臺代碼從數據庫中讀取打印源,生成打印目標文檔。當的頁面生成時,還應適當考慮使用CSS 來實現強制分頁控制。

      優點:可以生成內容非常豐富的打印目標文檔,目標文檔的內容的可控性強。由于打印內容是從數據庫中獲取的,所以生成操作相對簡單;

      缺點:服務器端負載比較大;

      頁面設置

      • 頁面設置主要是指設置打印文檔的頁邊距、頁眉、頁腳、紙張等內容。頁面設置將直接影響到打印文檔版面的生成效果,所以它和打印文檔的生成有著密切的關系。比如:表格的行數、大小、位置、字體的大小等。

      現有的技術是利用IE6.0 內置的打印模板方式來控制頁面設置,其可以對打印目標文檔產生非常大的影響。打印模板可以控制頁邊距、頁眉、頁腳、奇偶頁等內容,并可以將用戶的設置取得,還可以將設置發送到服務器端。打印模板技術可以自定預覽窗口和打印格式,最大限度地影響目標文檔和打印效果。

      IE直接打印

      • 即直接調用window.print或者webrower控件的ExecWB方法來打印。

      • 優點:方便快捷,客戶端無需任何設置即可。

      • 缺點:打印控制不是很靈活。如果直接調用

      window.print來打印頁面,頁面上別的元素也會被打印處理,頁頭頁尾的格式也不好控制。

      • 常用方法:大部分情況會把查詢的結果綁定到DataGrid上來,然后打印DataGrid。這種情況的打印一般來說格式比較固定簡單,確定后基本不會再作更改。所以可以采用IE直接打印。

      【實例代碼】

      注:①這是客戶端通過window.print打印指定內容。這里定義sprnstr和eprnstr來指定內容

      執行代碼:

    以下是引用片段:
    <input type="button" name="print" value="預覽并打印" onclick="preview()">

     ?、谌绻苯邮褂脀indow.print將打印頁面上的所有內容,但是我們可以使用

    以下是引用片段:
    st<<style> @media Print { .Noprn { DISPLAY: none }}
    是用來指定不打印的內容。
     
    script language="Javascript">
    function preview()
    {
        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();
    }
    </script>
    <!--省略部分代碼-->
    <form id="WebForm1" method="post" runat="server">
         <center>本部分以上不被打印</center>
         <!--startprint-->
         <div align="center">
             <asp:DataGrid id="dgShow" runat="server">
                  <!--省略部分代碼-->
             </asp:DataGrid>
         </div>
         <!--endprint-->
         <center>本部分以下不被打印</center>
         <div align="center">
             <input type="button" name="print" value="預覽并打印" onclick="preview()">
         </div>
         <style> @media Print { .Noprn { DISPLAY: none }}
         </style>
         <p class="Noprn">不打印</p>
         <table id="datagrid">
             <tr>
                  <td>打印</td>
             </tr>
         </table>
         <input class="Noprn" type="button" onclick="window.print()" value="print">
    </form>

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>