O21
#1
Help!!!
Consegui carregar o relatorio .jasper e exportar para pdf, mas está tudo em branco…
O que está ocorrendo…
Chamo ele assim pelo browser: http://127.0.0.1:8080/Sever/Report, ai aparece uma página em pdf toda branca…
Esse é meu Servlet:
[b] import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import java.io.IOException;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JaperReport extends HttpServlet{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
doPost(arg0, arg1);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String pathJasper = getServletContext().getRealPath("Report.jasper");
String pathPDF = "C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.5/webapps/Sever/";
//Parametros do relatorio
Map parametros = new HashMap();
try {
//Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper, parametros);
//Grava o relatório em disco em pdf
JasperManager.printReportToPdfFile(impressao, pathPDF
+ "Report.pdf");
//Redireciona para o pdf gerado
response.sendRedirect("Report.pdf");
} catch (Exception e) {
response.getWriter().println("Erro ao gerar o relatório: " + e);
}
}
[/b]
Segue de bandeja um exemplo:
[code] protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
try {
// nome do relatorio
String reportName = request.getParameter("reportName");
if (reportName == null || reportName.equals("")) {
throw new Exception("Nome do relatório deve ser informado.");
}
// copia parametros da requisição
Enumeration en = request.getParameterNames();
Map parameters = new HashMap();
while(en.hasMoreElements()){
String key = (String) en.nextElement();
parameters.put(key, request.getParameter(key));
}
parameters.put("REPORT_LOCALE", new Locale("pt", "br"));
// conexão do datasource
PoolConnection pool = new PoolConnection();
conn = pool.getJdbcURL().getConnection();
// carrega relatório
JasperReport relatorio = ReportUtils.getReport(reportName);
JasperPrint jasperPrint = JasperFillManager.fillReport(relatorio, parameters, conn);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
// exporta para pdf
JasperExportManager.exportReportToPdfStream(jasperPrint, arrayOutputStream);
// define os cabecalhos do header
response.setHeader("Pragma","");
response.setHeader("Cache-Control","");
response.setHeader("Expires","");
response.setContentType("application/pdf");
response.setContentLength(arrayOutputStream.size());
// escreve o relatorio no response
OutputStream out = response.getOutputStream();
arrayOutputStream.writeTo(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("ERRO_REPORT", e.getMessage());
this.getServletContext().getRequestDispatcher("/paginaEmBranco.jsp").forward(request, response);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
}
}
}
}[/code]