您的位置:首页 > 编程语言 > Java开发

iReport3.7.1 java打印报表(二)

2016-07-04 16:33 676 查看
上一篇总结了iReport的报表格式制作。接下来通过一个java实例来讲报表打印成pdf格式。然后我们就可以举一反三完成其他格式类型的报表了!

纠错

在设计报表时,需要将显示汉字的部分设置成汉字格式,否则在预览界面不会显示数据。具体的设置如下



1、界面效果

首先,上图看下报表打印的效果





2、导入所依赖的jar包



所需jar包http://download.csdn.net/detail/u011521890/9567022

据我所了解,iReport应该为不同的格式的报表提供了不同的jar包

例如(导出pdf需要依赖groovy-all-1.7.5.jar,导出Execle需要依赖poi-3.5-FINAL-20090928.jar )

3、Servlet的实现

package servlet;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.StudentDao;
import impl.StudentImpl;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.FileBufferedOutputStream;
import net.sf.jasperreports.engine.util.JRLoader;
import po.Student;

/**
* Servlet implementation class IReportSer
*/
@WebServlet("/IReportSer")
public class IReportSer extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("1、打印报表...");
ServletContext servletContext = this.getServletConfig().getServletContext();
File reportFile = new File(servletContext.getRealPath("/jasper/report1.jasper"));
Map<String, String> parameters = new HashMap<>();
StudentDao sd = new StudentImpl();
List<Student> stuList = null;
try {
stuList = sd.findAllStudent();
} catch (Exception e1) {
e1.printStackTrace();
}
try {
JasperReport stuJasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
//将集合对象数据,放入到JasperReport中
JasperPrint jasperPrint = JasperFillManager.fillReport(stuJasperReport,
parameters,new JRBeanCollectionDataSource(stuList,false));
if(jasperPrint!=null){
FileBufferedOutputStream fbos = new FileBufferedOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.exportReport();
fbos.close();
if(fbos.size()>0){
response.setContentType("application/pdf");
response.setContentLength(fbos.size());
ServletOutputStream outputStream = response.getOutputStream();
fbos.writeData(outputStream);
fbos.dispose();
outputStream.flush();
if(null!= outputStream){
outputStream.close();
}
}
}
} catch (JRException e) {
e.printStackTrace();
}
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 报表 pdf