Solución: Desde la propia action que es llamada desde el enlace, colocaríamos el siguiente código:
try{
//obtengo el array de bytes del pdf
byte[] respuestaByte= this.miDelegate.getPDF();
//digo que es un pdf
response.setContentType("application/pdf");
//asigno el nombre del pdf, para cuando el usuario lo abra o descargue
response.setHeader("Content-Disposition",("attachment;filename=\"" +
nombrePDF+ ".pdf\""));
int longitud = respuestaByte.length;
//especifico el tamaño
response.setContentLength(longitud);
/*volcando a fichero*/
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(respuestaByte);
ouputStream.flush();
ouputStream.close();
}
catch(Exception e){
logger.error("No se ha podido regenerar correctamente el pdf");
}
2 comentarios:
Una explicación un poquito más detalla acerca del this.miDelegate.getPDF(); Gracias.
Dicho método lo que hace es pedir los bytes de un pdf (generado con un diseñador de pdf's), en este caso me venía por medio de un servicio web. Yo usaba normalmente el IReport, pero en este caso no estaba hecho así, y lo que recibía era dicho array de bytes
Publicar un comentario