JasperReport忽略了SpringBoot项目中的格式

时间:2018-11-23 09:07:37

标签: java fonts jasper-reports

我的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);

}   

报告的生成是可以的,我没有任何问题,但是文本格式丢失了,没有加粗,没有下划线,没有斜体。

有人可以帮助我吗?

0 个答案:

没有答案