今天做项目中,需要用到打印功能,开始的时候用js来调用打印机,之后样式,还有什么的都没有了,之后ie有时候还运行不了,后来就在网上找,之后发现jquery有打印插件,所以就用了,并且发现jquery打印还可以打印局部,真的太棒了,一般的调用方式为:
实现步骤
1)引用2个js文件
2)定义打印区域的div,打印按钮
3)为打印按钮绑定打印事件
代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.*"%> <html> <head> <title></title> </head> <script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript" src="jquery.PrintArea.js"></script> <body> <input id="btnPrint" type="button" value="打印"/> <div id="myPrintArea"> ====打印区域==== </div> </body> <script type="text/javascript"> $(function(){ //打印 $("#btnPrint").bind("click",function(event){ $("#myPrintArea").printArea(); }); }); </script> </html>
如果不一般的调用,到这里基本上没有什么问题了,但是我的那个是用table,之后而且进行了表格的合并,这个时候出现了一个奇怪的问题,就是打印的开始行没有线条,后面的都是非常的正常,开始我很郁闷,之后用一个普通的表格进行试(没有任何样式什么的设置),非常的正常,这个时候我就慢慢的查找,最后发现原来table中的td设置的rowspan属性,这个时候就有问题了,还有一个就是当<tr>标签体为空的时候,线条会加粗,之后时候我把rowspan和空的tr去掉就好了,一切都正常了,所以希望大家注意这些问题。
还有一个问题就是在打印的时候,会出现url和页眉,这个非常容易去掉,在浏览器点击“页面设置”,把url和页眉那些你不需要的去掉就可以了。