|
B/S結(jié)構(gòu)導(dǎo)致了Web應(yīng)用程序中打印的特殊性。
• 程序運行在瀏覽器中,打印機在本地,而文件確可能在服務(wù)器上,導(dǎo)致了打印控制不是很靈活。
• 格式如何控制和定制等,是我們開發(fā)中可能會面對的問題。
打印文檔的生成
• 1、客戶端腳本方式
一般情況下,主要使用JS 可以分析源頁面的內(nèi)容,將欲打印的頁面元素提取出來,實現(xiàn)打印。通過分析源文檔的內(nèi)容,可以生成打印目標(biāo)文檔。
優(yōu)點:客戶端獨立完成打印目標(biāo)文檔的生成,減輕服務(wù)器負荷;
缺點:源文檔的分析操作復(fù)雜,并且源文檔中的打印內(nèi)容要有約定。
• 2、服務(wù)器端程序方式
利用后臺代碼從數(shù)據(jù)庫中讀取打印源,生成打印目標(biāo)文檔。當(dāng)?shù)捻撁嫔蓵r,還應(yīng)適當(dāng)考慮使用CSS 來實現(xiàn)強制分頁控制。
優(yōu)點:可以生成內(nèi)容非常豐富的打印目標(biāo)文檔,目標(biāo)文檔的內(nèi)容的可控性強。由于打印內(nèi)容是從數(shù)據(jù)庫中獲取的,所以生成操作相對簡單;
缺點:服務(wù)器端負載比較大;
頁面設(shè)置
• 頁面設(shè)置主要是指設(shè)置打印文檔的頁邊距、頁眉、頁腳、紙張等內(nèi)容。頁面設(shè)置將直接影響到打印文檔版面的生成效果,所以它和打印文檔的生成有著密切的關(guān)系。比如:表格的行數(shù)、大小、位置、字體的大小等。
現(xiàn)有的技術(shù)是利用IE6.0 內(nèi)置的打印模板方式來控制頁面設(shè)置,其可以對打印目標(biāo)文檔產(chǎn)生非常大的影響。打印模板可以控制頁邊距、頁眉、頁腳、奇偶頁等內(nèi)容,并可以將用戶的設(shè)置取得,還可以將設(shè)置發(fā)送到服務(wù)器端。打印模板技術(shù)可以自定預(yù)覽窗口和打印格式,最大限度地影響目標(biāo)文檔和打印效果。
IE直接打印
• 即直接調(diào)用window.print或者webrower控件的ExecWB方法來打印。
• 優(yōu)點:方便快捷,客戶端無需任何設(shè)置即可。
• 缺點:打印控制不是很靈活。如果直接調(diào)用
window.print來打印頁面,頁面上別的元素也會被打印處理,頁頭頁尾的格式也不好控制。
• 常用方法:大部分情況會把查詢的結(jié)果綁定到DataGrid上來,然后打印DataGrid。這種情況的打印一般來說格式比較固定簡單,確定后基本不會再作更改。所以可以采用IE直接打印。
【實例代碼】
注:①這是客戶端通過window.print打印指定內(nèi)容。這里定義sprnstr和eprnstr來指定內(nèi)容
執(zhí)行代碼:
<input type="button" name="print" value="預(yù)覽并打印" onclick="preview()">NET技術(shù):關(guān)于ASP.NET頁面打印技術(shù)的總結(jié),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。