Jasperreport5.6.9-----1
Jasperreport5.6.0生成PDF
最近项目中需要生成报表,先是看了下itext,觉得还可以,但是如果数据字段多的话,不太灵活。所以后来看了下ireport,觉得还可以,下面简单说一下它们:
jasperreport
JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。它是开源的,但文档收费。
ierport
iReport 是生成JasperReport所使用的报表格式文件.jasper,因为JasperReport本身并未提供很好的可视化报表设计工具,iReport的出现正好弥补了这个缺陷。
两者配合使用:irpeort负责生成编译后的.jasper格式文件,生成.jasper格式后再用 jasperreport在程序中生成需要的报表格式,这里主要说说jasperreport中如何生成pdf.
注意: jasperReport与ireport版本要一致。我这里的版本是最新的版本5.6.0。
如下例所示:
//ireport生成项目立项PDF格式
public String getIreportPDFAction()
{
Connection conn =null;//连接
try {
String projectapproid =request.getParameter("projectapproid");
//报表生成之后编译生成的.jasper文件位置
//1.绝对路径
File jasperFile=new File("D:/jasper/report1.jasper");
//得到数据URL
String url ="jdbc:oracle:thin:@192.168.1.104:1521:orcl";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url,"zwjx","zwjx");
//设置参数
Map parmerters = new HashMap();
parmerters.put("projectapproid", projectapproid);
//生成pdf
byte[] bytes = JasperRunManager.runReportToPdf(jasperFile.getPath(),parmerters,conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
//指定位置保存pdf位置
FileOutputStream outs =new FileOutputStream("D:/jasper/report1.pdf");
outs.write(bytes,0,bytes.length);
outs.flush();
outs.close();
}catch (Exceptione) {
e.printStackTrace();
System.out.println("ireport生成报表出错!");
}finally
{
try {
conn.close();
}catch(SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
returnnull;
}
运行后我们去D盘下的jasper文件夹中可以看到生成的 pdf.打开效果如下:
//上面的读取位置和保存位置都是根据自己所放位置设定的。
通过report转换工具类生成一个文件流,然后可以将文件流用于传输,也可以直接使用该文件流用于生成PDF格式文件。
/**
* report转换工具类
*
*/
public class IspReportUtil {
public static String exportReportToByte(CommonReportHandler handler)
throws AppException {
JRDataSource dataSource = null;
if (handler.getDataList() != null && handler.getDataList().size()>0) {
dataSource = new JRBeanCollectionDataSource(handler.getDataList());// 获取数据集
} else {
dataSource = new JREmptyDataSource();
}
try {
InputStream inputStream = new FileInputStream(handler.getReportFile());
byte[] data = JasperRunManager.runReportToPdf(inputStream, handler.getParamMap(), dataSource);
return new BASE64Encoder().encode(data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
Jasperreport5.6.9-----1的更多相关文章
- Jasperreport5.6.9-----2
Jasperreport5.6.0生成PDF 上一篇讲的是jasperreport5.6.0生成pdf,运行后可以生成pdf,可是和我们的需求有点差距,我们是要求生成后,可以直接打开或保存,这就需 ...
- 使用jasperreports-5.6.0.jar导致的问题
使用jasperreports-5.6.0.jar导致的问题 Struts2+jasperReport5.6如下设置: <!-- 社员档案 --> <package name=&qu ...
- ireport导出中英文pdf
准备: 报表开发工具:ireport 5.6.0 报表框架: jasperreport5.6.0 1.中文格式设置pdf fontname.isembedded.pdfencoding pdf fon ...
随机推荐
- <基础> PHP 数据类型
PHP三大数据类型 标量 字符串 单引号:不能解析变量 效率高 双引号 :可以解析变量 效率稍微低一些 heredoc : 大文本 整形 浮点 不能用于比较运算 布尔 复合 数组 超全局数组 ...
- 小柒2012 / spring-boot-quartz
spring-boot-quartz 基于spring-boot+quartz的CRUD动态任务管理系统,适用于中小项目. 基于spring-boot 2.x +quartz 的CRUD任务管理系统: ...
- PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法
使用unserialize函数将数据储存到数据库的时候遇到了这个报错,后来发现是将gb2312转换成utf-8格式之后,每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题, ...
- day18-列表生成式、迭代器
1.列表生成式,也叫列表推导式 即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.优点:构造简单,一行完成缺点:不能排错,不能构建复杂的数据结 ...
- cookies_ajax
views def test_user(request): print('start') if request.method=='POST': print('goon_test_user') user ...
- English-旅游英语及情景对话
1.旅游英语:预订机票情景对话及常用句型 目前,越来越多的人都选择以飞机为出行方式.但是如何用一口流利的英语订机票呢?这里我们替你总结了一些情景对话,还有一些常用的句型.大家都来学一学吧~A:Good ...
- apache-php
1.安装apache https://www.cnblogs.com/lxlb/p/9159056.html 2.安装php https://www.cnblogs.com/37yan/p/68794 ...
- Linux 完整卸载oracle和grid软件
本文主要描述如何在Linux下完全卸载oracle和grid软件. 操作环境 SuSE11 oracle用户完整删除操作步骤 1.登录oracle用户,停止Oracle数据库监听和数据库实例 orac ...
- KVM虚拟化技术(一)虚拟化简介
一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个 ...
- hibernate criteria Restrictions工具类用法
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid); // 查询条件组装器 org.jeecgframework.core.ext ...