Olá eu estou tentando gerar pdf atravès de uma api rest com spring boot, o codigo até gera o pdf mas ele vem em branco e não apresenta nenhum erro.
public ResponseEntity<InputStreamResource> gerarRelatorio(String nome, Map<String, Object> parametros) {
FileInputStream fileInputStream = null;
Connection connection = null;
String reportFileName = "estados.jrxml";
try {
InputStream reportStream = getClass().getResourceAsStream("/relatorios/".concat(reportFileName));
System.out.println("erro");
JasperReport jasperReport = JasperCompileManager.compileReport(reportStream);
JRSaver.saveObject(jasperReport, reportFileName.replace(".jrxml", ".jasper"));
connection = dataSource.getConnection();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, connection);
byte[] pdf = JasperExportManager.exportReportToPdf(jasperPrint);
//JasperPrint jasperPrint = JasperRunManager.runReportToPdf(jasperReport, parametros, connection);// Pdf(jasperReport, parametros, connection);
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(nome));
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
SimplePdfReportConfiguration reportConfig = new SimplePdfReportConfiguration();
reportConfig.setSizePageToContent(true);
reportConfig.setForceLineBreakPolicy(false);
SimplePdfExporterConfiguration exportConfig = new SimplePdfExporterConfiguration();
exportConfig.setMetadataAuthor("empresa");
exportConfig.setMetadataTitle(nome);
exportConfig.setEncrypted(true);
exportConfig.setAllowedPermissionsHint("PRINTING");
exporter.setConfiguration(reportConfig);
exporter.setConfiguration(exportConfig);
exporter.exportReport();
fileInputStream = new FileInputStream(nome);
System.out.println("aqui: " + fileInputStream);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
headers.setContentDispositionFormData("attachment", nome);
headers.setContentLength(fileInputStream.available());
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "GET, POST, PUT");
headers.add("Access-Control-Allow-Headers", "Content-Type");
//headers.add("Content-Disposition", "filename=" + nome);
headers.add("Cache-Control", "no-cache, no-store, must-revalidade");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");
return new ResponseEntity<InputStreamResource>(new InputStreamResource(fileInputStream), headers,
HttpStatus.OK);
} catch (Exception e) {
e.getMessage();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return null;
}