解決Web打印問題的方案
在進行Web項目開發過程中,經常需要處理打印頁面內容的需求。通常情況下,我們會通過Javascript調用系統內置的打印方法來實現打印功能,例如使用PrintControl.ExecWB(?, ?)函
在進行Web項目開發過程中,經常需要處理打印頁面內容的需求。通常情況下,我們會通過Javascript調用系統內置的打印方法來實現打印功能,例如使用PrintControl.ExecWB(?, ?)函數來實現直接打印和打印預覽功能。盡管這種方法的打印效果和控制性有一定限制,但對于一般的打印需求而言,仍然能夠滿足基本要求。
// 調用PrintControl.ExecWB(?, ?)實現直接打印和打印預覽功能。
// preview:是否顯示預覽。null/false:不顯示,true:顯示
上述代碼可以放在一個獨立的JS文件中,并在頁面中引用該腳本文件,通過進一步封裝的函數來打印指定部分的內容:
lt;script language"javascript"gt;
function Print(preview) {
var text ("content").innerHTML;
printContent(preview, text);
}
lt;/scriptgt;
然而,很多時候我們在頁面中通過CSS來控制樣式以達到更好的美觀效果。因此,在打印部分HTML內容時,如果沒有考慮這些樣式設置,打印出來的表格格式和字體可能會發生變化,影響觀感。為了解決這個問題,我們需要進行HTML樣式的設置。
打印效果大致如下圖所示。如果打印的頁面在框架中,可能還需要選擇“僅打印選定框架”的選項。使用此方法不需要安裝任何控件,具有很好的兼容性。然而,在處理一些復雜內容的報表打印時,可能會遇到一些難以控制的問題,因此并非完美的選擇。
后來在需要進行證件套打方面的工作時,上述的打印控件無法滿足需求,因此需要尋找另一種能夠更好處理套打事務的方法或控件。偶然間,我發現了一個功能強大且使用簡單的打印控件,它支持各種格式的打印,并且提供了我關心的證件套打功能,非常值得推薦。
上述兩種打印方式其實原理類似,都是打印部分HTML內容。然而后者看起來更加精細,并且提供了完善的報表功能設置。