前段时间做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,对打印区域进行一些样式的精准控制,还有页面的设置,也可以实现套打。其实局部打印的原理是将你不想打印的部分隐藏,将你想打印的部分显示,来实现局部打印。
以上是自己总结的打印方法,如有不足的地方!请留言!一起互相讨论学习!