網絡打印概述
B/S結構導致了Web應用程序中打印的特殊性。
程序運行在浏覽器中,打印機在本地,而文件確可能在服務器上,導致了打印控制不是很靈活。
格式如何控制和定制等,是我們開發中可能會面對的問題。
打印文檔的生成
1、客戶端腳本方式
一般情況下,主要使用JS 可以分析源頁面的內容,將欲打印的頁面元素提取出來,實現打印。通過分析源文檔的內容,可以生成打印目標文檔。
優點:客戶端獨立完成打印目標文檔的生成,減輕服務器負荷;
缺點:源文檔的分析操作復雜,並且源文檔中的打印內容要有約定。
2、服務器端程序方式
利用後台代碼從數據庫中讀取打印源,生成打印目標文檔。當的頁面生成時,還應適當考慮使用CSS 來實現強制分頁控制。
優點:可以生成內容非常豐富的打印目標文檔,目標文檔的內容的可控性強。由於打印內容是從數據庫中獲取的,所以生成操作相對簡單;
缺點:服務器端負載比較大;
頁面設置
頁面設置主要是指設置打印文檔的頁邊距、頁眉、頁腳、紙張等內容。頁面設置將直接影響到打印文檔版面的生成效果,所以它和打印文檔的生成有著密切的關系。比如:表格的行數、大小、位置、字體的大小等。
現有的技術是利用IE6.0 內置的打印模板方式來控制頁面設置,其可以對打印目標文檔產生非常大的影響。打印模板可以控制頁邊距、頁眉、頁腳、奇偶頁等內容,並可以將用戶的設置取得,還可以將設置發送到服務器端。打印模板技術可以自定預覽窗口和打印格式,最大限度地影響目標文檔和打印效果。
IE直接打印
即直接調用window.print或者webrower控件的ExecWB方法來打印。
優點:方便快捷,客戶端無需任何設置即可。
缺點:打印控制不是很靈活。如果直接調用
window.print來打印頁面,頁面上別的元素也會被打印處理,頁頭頁尾的格式也不好控制。
常用方法:大部分情況會把查詢的結果綁定到DataGrid上來,然後打印DataGrid。這種情況的打印一般來說格式比較固定簡單,確定後基本不會再作更改。所以可以采用IE直接打印。