六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 61|回复: 0

Jasperreport 客户端打印例子

[复制链接]

升级  2.67%

12

主题

12

主题

12

主题

秀才

Rank: 2

积分
54
 楼主| 发表于 2013-1-28 18:36:17 | 显示全部楼层 |阅读模式
   目的:用java实现数据的批量打印。
 
   需求:例如,满足用户一个查询操作结果出来50条记录,要求每一条记录的信息打印在一页上面,这就需要打印50页。
 
   原理:把每一条记录(用户对象吧)依次添加到List对象里,把List对象作为一个数据源对象传递给Jasperreport对象,Jasperreport在根据用户的ID来作分组,即设置Jasperreport每一组信息在一个新的页面打印,这样就依次批量打印了。
 
   不足:客户端需要安装jre(java运行时环境)来支持打印操作。
   为了解除打印时频繁的打印提示,所以修改了客户端jre下的java.policy文件,该文件位置%jre_home%\jre6\lib\security\java.policy ,这样打印的时候就不在有烦人的提示了。
 
文件内容如下,其中红色字体为新增内容。

// Standard extensions get all permissions by default
grant codeBase "file:${{java.ext.dirs}}/*" {
 permission java.security.AllPermission;
};
// default permissions granted to all domains
grant {
 // Allows any thread to stop itself using the java.lang.Thread.stop()
 // method that takes no argument.
 // Note that this permission is granted by default only to remain
 // backwards compatible.
 // It is strongly recommended that you either remove this permission
 // from this policy file or further restrict it to code sources
 // that you specify, because Thread.stop() is potentially unsafe.
 // See "http://java.sun.com/notes" for more information.
 permission java.lang.RuntimePermission "stopThread";
 // allows anyone to listen on un-privileged ports
 permission java.net.SocketPermission "localhost:1024-", "listen";
 // "standard" properies that can be read by anyone
 permission java.security.AllPermission;
 permission java.util.PropertyPermission "java.version", "read";
 permission java.util.PropertyPermission "java.vendor", "read";
 permission java.util.PropertyPermission "java.vendor.url", "read";
 permission java.util.PropertyPermission "java.class.version", "read";
 permission java.util.PropertyPermission "os.name", "read";
 permission java.util.PropertyPermission "os.version", "read";
 permission java.util.PropertyPermission "os.arch", "read";
 permission java.util.PropertyPermission "file.separator", "read";
 permission java.util.PropertyPermission "path.separator", "read";
 permission java.util.PropertyPermission "line.separator", "read";
 permission java.util.PropertyPermission "java.specification.version", "read";
 permission java.util.PropertyPermission "java.specification.vendor", "read";
 permission java.util.PropertyPermission "java.specification.name", "read";
 permission java.util.PropertyPermission "java.vm.specification.version", "read";
 permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
 permission java.util.PropertyPermission "java.vm.specification.name", "read";
 permission java.util.PropertyPermission "java.vm.version", "read";
 permission java.util.PropertyPermission "java.vm.vendor", "read";
 permission java.util.PropertyPermission "java.vm.name", "read";
};
 
说明:
附件中是例子源码,可以放在Tomcat里面编译并运行。
1、由于JasperReport\WebRoot\print\applets\jre-6u20-windows-i586.exe过于大,所以没有上传,可到java官方网站自行下载。
2、index.jap中提到的PrintApplet.class已经在JasperReport\WebRoot\print\applets\mytest.jar里面。
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表