Правильно ли преобразовать сгенерированный отчет в формате Excel в отчет в формате Jasper? - PullRequest
0 голосов
/ 05 июля 2019

Есть ли способ конвертировать сгенерированный 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...