Reportes en JEE y JSF sin PrimeFaces

En un post anterior documentamos como llamar un reporte Jasper con PrimeFaces.
En este simplemente llamaremos al mismo en PDF sin librerías de terceros.

public void generarReporte() {
// DATASOURCE Y PARAMETERS AQUI
	JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
					MiDataSource);

			JasperReport jasperReport = (JasperReport) JRLoader
					.loadObject(getClass().getClassLoader()
							.getResourceAsStream("reporte.jasper"));
			JasperPrint print = JasperFillManager.fillReport(jasperReport,
					parameters, ds);

			byte[] bytes = JasperExportManager.exportReportToPdf(print);
			FacesContext context = FacesContext.getCurrentInstance();
			HttpServletResponse response = (HttpServletResponse) context
					.getExternalContext().getResponse();

			response.addHeader("Content-disposition",
					"attachment;filename=reporte.pdf");
			response.setContentLength(bytes.length);
			response.getOutputStream().write(bytes);
			response.setContentType("application/pdf");
			context.responseComplete();
}
Anuncios