/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package reports;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
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.util.JRLoader;
public class GeraRelatorioEmPDF extends HttpServlet
{
private final static long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String nomeDoRelatorio = (String)request.getAttribute("nomeDoRelatorio");
List lista = (List)request.getAttribute("lista");
HashMap<String, String> parametros = (HashMap<String, String>)request.getAttribute("parametros");
ServletContext context = this.getServletConfig().getServletContext();
String nomeDoArquivoCompilado = context.getRealPath(nomeDoRelatorio);
File arquivo = new File(nomeDoArquivoCompilado);
try
{ JasperReport relatorioCompilado = (JasperReport) JRLoader.loadObject(arquivo);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
JasperPrint relatorioFinal = JasperFillManager.fillReport(relatorioCompilado, parametros, ds);
response.setContentType("application/pdf;charset=UTF-8");
// Adequado para se enviar dados bin�rios para o browser.
ServletOutputStream out = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(relatorioFinal, out);
out.flush();
}
catch(JRException e)
{ response.setContentType("text/plain");
PrintWriter printWriter = response.getWriter();
e.printStackTrace(printWriter);
}
}
}