您的位置:首页 > 编程语言 > ASP

JasperReport报表技术导出PDF报表(使用IReport设计工具 )

2017-08-01 22:54 731 查看
首先用户使用Ireport工具设计 jasperReport报表模板,在程序通过动态数据,结合模板生成报表 !JasperReport生成PDF依赖IText,生成图表依赖Jfreechart :(注意:在用工具画图时不要太大,否则导出的PDF文件将不完整)

//如果是maven工程要引入相应的jar包
<!-- groovy -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.0</version>
</dependency>

<!-- jasperreport -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.2.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>


Java代码

注意:region.jrxml 为 JasperReport工具链接数据库生成的文件(所需要导出的资源)

@Autowired
private DataSource dataSource;

@Action(value="regionAction_exportJaspar")
public String exportJaspar(){
try {
// 1: 加载设计文件 report2.jrxml
String path = ServletActionContext.getServletContext().getRealPath("/jr/region.jrxml");
// 2: 报表 parameter 赋值 需要Map集合     parameters为 region.jrxml里面设置的
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("company", "杰瑾工作室");
// 3: 编译该文件 JasperCompilerManager
JasperReport report = JasperCompileManager.compileReport(path);
// 4: JapserPrint = JasperFillManager.fillReport(report,map,connection)
JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, dataSource.getConnection());
// 5: 下载 准备一个流 两个头
HttpServletResponse response = ServletActionContext.getResponse();
ServletOutputStream outputStream = response.getOutputStream();
String filename = "工作单报表.pdf";
response.setContentType(ServletActionContext.getServletContext().getMimeType(filename));
response.setHeader("Content-Disposition", "attachment;filename=" + DownLoadUtils.getAttachmentFileName(filename, ServletActionContext.getRequest().getHeader("user-agent")));
// 6: JapdfExport   定义报表输出源
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
// 7: 导出
exporter.exportReport();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return NONE;
}


如果启动Tomcat报错:找不到相应的类的话,多数原因是Jar包冲突! 查看web模块的依赖树,找到冲突的包,采用高版本的排除低版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: