Есть ли способ конвертировать сгенерированный Excel отчет в PDF отчет в Spring boot ?
Я хотел создать PDF отчет яшмы в Spring загрузился с использованием Excel jrxml и попытался создать новый файл .pdf с использованием файла jrxml так же, как я сгенерировал Excel file.
Но новый сгенерированный файл .pdf имеет некоторые отклонения в дизайне по сравнению с отчетом Excel, например, опция Excel «RemoveLineWhenBlank» не работает при экспорте в формат .pdf и печатаются пустые строки.
Связанный код:
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(report);
InputStream inputStream = this.getClass().getResourceAsStream("report.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(inputStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null, dataSource);
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
String fileName ="myreport.xlsx";
if (Downloadtype.equalsIgnoreCase("Excel")) {
JRXlsxExporter jrXlsxExporter = new JRXlsxExporter();
jrXlsxExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
jrXlsxExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
jrXlsxExporter.exportReport();
response.setHeader("Content Disposition","attachment;filename="report.xlsx");
response.setContentType("application/xlsx");
ServletOutputStream os = response.getOutputStream();
outputStream.writeTo(os);
os.flush();
} else {
JRPdfExporter jrPdfExporter = new JRPdfExporter();
jrPdfExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
jrPdfExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
jrPdfExporter.exportReport();
response.setHeader("Content-Disposition", "attachment; filename="report.pdf");
response.setContentType("application/pdf");
ServletOutputStream os = response.getOutputStream();
outputStream.writeTo(os);
os.flush();
}