前段時間做web項目用到了頁面打印,在網上找了些資料,自己也試了很多方法,將這些方案列出下:
1.window.print()方法打印,所有主要瀏覽器都支持 print() 方法
這個方法很實用,只需要調用方法就可以打印,但是這是打印整個html,要想打印局部的話,要另做。
2.想要局部打印,通過jQuery插件就可以實現,現在網上有很多這樣的插件,比如jqprint插件等等,可以非常方便的打印一個div,而且不會影響其他的。ie和谷歌是沒問題的,其他沒仔細測過。
3.想要局部打印,也可以通過一個打印前和打印后的事件onbeforeprint、onafterprint。可以在打印前的時候重新編輯一些格式,專門送去打印,打印后又處理回來。這個是支持ie和Firefox
function window.onbeforeprint()
{ //將一些不需要打印的隱藏 }
function window.onafterprint()
{ //放開隱藏的元素 }
4.給瀏覽器安裝一個打印插件,比如Lodop插件,這個挺好用,套打,局部打印都杠杠的,不過是收費的,免費的含有水印,比較蛋疼。
5.如果只是需要ie下打印的話,可以直接通過js調用ie內置WebBrowser打印組件完成web打印,支持直接打印,打印預覽,頁面設置等
總結:如果想實現套打的話,建議用瀏覽器插件,如果不嫌麻煩,可以自己通過方案5,對打印區域進行一些樣式的精准控制,還有頁面的設置,也可以實現套打。其實局部打印的原理是將你不想打印的部分隱藏,將你想打印的部分顯示,來實現局部打印。
以上是自己總結的打印方法,如有不足的地方!請留言!一起互相討論學習!