У меня проблема с моими веб-приложениями.Я разрабатывал свое приложение с помощью Spring Boot, и оно генерировало некоторый отчет, используя Jasper Report.
Но с самой последней версией зависимостей jasperreport я потерял форматирование текста.Я не понимаю, является ли проблема tomcat, на сервере, на котором я установил используемые шрифты, или если это проблема проекта, или это проблема JasperSoft.
В pom я определил это:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.5.1</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
Мой код Java:
@PreAuthorize("hasRole('ROLE_ADMIN')")
@GetMapping(value = "/{id}/report", produces = "application/pdf")
public HttpEntity<byte[]> sessionReport(@PathVariable("id") Long id, HttpServletResponse response) throws JRException {
final String jasperFile = PathUtils.PATH_TEMPLATE + "sessionReport.jasper";
JasperReport jr = (JasperReport) JRLoader.loadObject(new File(jasperFile));
List<Session> sessionList = new ArrayList<>();
Session session = sessionService.findById(id);
sessionList.add(session);
JRDataSource jrDataSource = new JRBeanCollectionDataSource(sessionList);
final JasperPrint jp = JasperFillManager.fillReport(jr, null, jrDataSource);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jp, bos);
HttpHeaders headers = new HttpHeaders();
headers.add("content-disposition", "attachment; filename=Report Session.pdf");
headers.add("content-type", "application/pdf");
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
return new ResponseEntity<>(bos.toByteArray(), headers, HttpStatus.OK);
}
С генерацией отчета все в порядке, у меня нет проблем, но форматирование текста потеряно, без жирного шрифта, без подчеркивания, без курсива..
Кто-нибудь может мне помочь?