Olá pessoal,
Criei um relatório no Jasper para apresentar ao usuário (Spring MVC). Ele é apresentado, mas quando o usuário tenta fazer o download, ele não traz o tipo do arquivo como PDF e acusa erro de “falha de rede” ao tentar baixar.
@PostMapping("/auditoria")
public ResponseEntity<byte[]> geraRelatorioAuditoria(Auditoria auditoria) throws Exception {
byte[] relatorio = relatorioService.gerarRelatorioPorAuditoria(auditoria.getCodigo());
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
headers.set("Content-disposition", "inline; filename=auditoria_" + auditoria.getCodigo() + ".pdf");
return new ResponseEntity<>(relatorio, headers, HttpStatus.OK);
}
Segue também o método que retorna o array de bytes
public byte[] gerarRelatorioPorAuditoria(Long codigoAuditoria) throws Exception {
AuditoriaDTO auditoria = auditorias.cabecalhoAuditoria(codigoAuditoria);
List<RespostaDTO> auditoriaList = auditorias.relatorioPorAuditoria(codigoAuditoria);
auditoria.transformaData();
Map<String, Object> parametros = new HashMap<>();
parametros.put("format", "pdf");
parametros.put("auditoriaNome", auditoria.getNome());
parametros.put("lojaNome", auditoria.getLoja());
parametros.put("dataAuditoria", auditoria.getDataAuditoria());
JRDataSource jrDataSource = new JRBeanCollectionDataSource(auditoriaList);
InputStream inputStream = this.getClass().getResourceAsStream("/relatorios/relatorio_auditoria.jasper");
try {
JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, parametros, jrDataSource);
return JasperExportManager.exportReportToPdf(jasperPrint);
} finally {
}
}
Alguém já passou por isso?