我的webApps有问题。 我使用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);
}
报告的生成是可以的,我没有任何问题,但是文本格式丢失了,没有加粗,没有下划线,没有斜体。
有人可以帮助我吗?