Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/12/2006, 02:42
prm83
 
Fecha de Ingreso: mayo-2006
Mensajes: 28
Antigüedad: 18 años
Puntos: 0
Re: Llamar a un servlet que genera pdf

Con este codigo se llama al archivo jasper creado anteriormente con el Ireport y se genera el pdf.
public void nombre(HttpServletRequest request, HttpServletResponse response) throws IOException{

string sqlstr="";


try
{
InputStream in = this.getClass().getResourceAsStream("/plantillasinformes/LRTM_Informe_Receta.jasper");

//Pasamos parametros al reporte Jasper.
Map parameters = new HashMap();
sqlstr="select * from .........lo que sea";
parameters.put("sql", new String(sqlstr));
//PASAMOS UN PARAMTRO
String param="/plantillasinformes";
parameters.put("SUBREPORT_DIR", param);




byte[] bytes = JasperRunManager.runReportToPdf(in, parameters, getConnection());


response.setContentType("application/pdf");

response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();

//la siguiente linea, te obliga a descargar y le da el nombre//
response.addHeader("content-disposition","attachment; filename=RecetaIndividual.pdf");
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

}
catch (Exception e)
{
// out.println(e.getMessage());
}

}


public static Connection getConnection() throws ClassNotFoundException, SQLException {


String driver = "oracle.jdbc.driver.OracleDriver";
String connectString = "jdbc:oracle:thin:@192.168.1.204:1521:prueba4" ;
String user = "system";
String password = "psystem";
Class.forName(driver);
Connection conn = DriverManager.getConnection(connectString, user, password);

//Retornamos la conexión establecida.
return conn;
}