我正在使用 iReport 5.1.0 和 JasperReports 5.0.0 构建一些报告。现在我的麻烦是大胆的风格没有出现在pdf输出中。如果我有样式化文本(例如,"<b>My Text</b>"
),则粗体部分在报告的输出中显示为粗体,但在pdf中不显示。我可以在pdf中加粗的唯一方法是强制该元素的pdf字体为粗体字体(例如pdfFontName =“Helvetica-Bold”),但是粗体显示整个字符串并且不允许我通过它来控制它样式标记<b>
。
我正在以这种方式导出pdf文件:
JRPdfExporter exp = new JRPdfExporter();
exp.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, namefileToExport);
exp.exportReport();
我该怎么办?
答案 0 :(得分:5)
https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports-fonts/6.0.0
<!-- https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports-fonts -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
将此依赖项添加到pom.xml应该足以解决问题
答案 1 :(得分:1)
我刚才遇到了同样的问题,我只使用了样式标记,而不是html和this解决方案帮助了我。
在生成报告以将字体嵌入pdf之前,我只添加了这4行:
DefaultJasperReportsContext context = DefaultJasperReportsContext.getInstance();
JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.font.name", "DejaVu Sans");
JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.pdf.embedded", "true");
JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.pdf.font.name", "DejaVu Sans");
然后为maven配置添加了新的依赖项:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>4.0.0</version>
</dependency>
答案 2 :(得分:-1)