Mostrar pdf en iframe usando angularjs recibido de un api rest usando spring (@RestController ) + jasper report

Exportar reporte a pdf stream

byte[] response = null;
JasperPrint jasperPrint = reporteRepositorio.generarReporte(reportName,parameters);

if (TipoFormatoExportacion.STREAM.getValue().equals(formatType)) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, baos);
response=baos.toByteArray(); 

}

return response;

Controlador rest

@RequestMapping(method = RequestMethod.GET)
public void generarReporte(HttpServletRequest request,HttpServletResponse response) {

Map<String, Object> parameters = new HashMap<String, Object>();
try {
byte[] contents = reporteServicio.generarReporte("reportName",
TipoFormatoExportacion.STREAM.getValue(), parameters);
OutputStream os = response.getOutputStream();
response.setHeader("Content-Disposition", "inline; filename=file.pdf");
   response.setContentType("application/pdf");
response.setStatus(HttpServletResponse.SC_OK); 
response.setHeader("Cache-Control","private, must-revalidate, post-check=0, pre-check=0, max-age=1");
response.setHeader("Pragma","public");
os.write(contents);
os.close();
} catch (JRException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

Fragmento html
<iframe id="visualizador"></iframe>
Controlador angularjs
$http.get(CONFIG.API_URL + "/" + namereport + "/" + params, { responseType: 'arraybuffer' })
    .success(function (data) {
        if (data) {
          var file = new Blob([data], {type: 'application/pdf'});
          var url = URL.createObjectURL(file);
        }
     document.getElementById('visualizador').setAttribute('src',url);   
}).error(function (error) {});

Comentarios

  1. I followed your guidelines, but after download it says invalid file format. Could you help me to resolve this issue.

    ResponderEliminar
  2. hola era lo que estaba buscando, aprovechando como utilizaste el jasper report, gracias

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

#API REST SPRING BOOT DESDE CERO – ESTRUCTURA DEL PROYECTO

Modificar un archivo dentro de un .jar

Aceptando valores nulos como parámetros en jasper report