sexta-feira, 9 de abril de 2010

Gerar Relatório .PDF em uma Servlet

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;



public class GerarPDF extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

//Você pode chamar esse método no DoGet ou DoPost!
public void GerarPDF(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

try{

RelConexao rc = new RelConexao();
rc.conexaorel();
String pathJasper = getServletContext().getRealPath("/relatorios") + "/";

String path = getServletContext().getRealPath("/");

Map parametros = new HashMap();

parametros.put("", pathJasper + "Relatorio.jasper");
try {
// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(
pathJasper + "Relatorio.jasper", parametros, rc.con);
// Grava o relatório em disco em pdf
JasperManager.printReportToPdfFile(impressao, path + "Relatorio.pdf");
// Redireciona para o pdf gerado
response.sendRedirect("Relatorio.pdf");
} catch (Exception e) {
response.getWriter().println("Erro ao gerar o relatório :"+ e);
}

}catch(Exception e){
System.out.println("Erro: "+ e);
}

}

}



Classe de Conexão com o banco de dados!


import java.sql.*;


public class RelConexao {

public void conexaorel() {
try {
if (con == null || con.isClosed()) {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Nome_do_Banco","login_bd","senha_bd");
}
} catch (Exception e) {

System.out.println("Erro ao conectar com o Banco de dados! " +e);
}
}


}


Obs: É precisso usar algumas bibliotecas para poder gerar em PDF!

Nenhum comentário: