Jasperreports技术
事先需要ireport制作模板
一,整合jasperreports所需jar包
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>2.1.7</version>
</dependency>
<!-- groovy -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.2</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.2.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-annotations</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
二,代码部分
//设置打开方式,和文件名称
response.setHeader("Content-Disposition", "attachment;filename=fd.pdf");
//获取模板
JasperReport compileReport = JasperCompileManager.compileReport(
new FileInputStream(new File("E:/project/shareProject1.0/src/main/webapp/report5.jrxml")));
Card card = new Card();
card.setId(9);
card.setStart(new Date(100, 1, 1));
card.setEnd(new Date(200, 1, 1));
PageBean<SelectParam> pages = shareCardService.find(card, card.getStart(), card.getEnd(), 0, 10, "df");
List<SelectParam> list = pages.getList();
//导入模板数据
JasperPrint fil = JasperFillManager.fillReport(
compileReport,new HashMap<String,Object>(),dataSource.getConnection());
//pdf输出端
JRPdfExporter d = new JRPdfExporter();
d.setParameter(JRExporterParameter.JASPER_PRINT, fil);
d.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
//导出
d.exportReport();