粗体样式在pdf输出中不起作用

时间:2013-10-11 09:05:35

标签: java pdf jasper-reports

我正在使用 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();

我该怎么办?

3 个答案:

答案 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)

在您的文字字段中选择标记为html,然后按照这样写下您的文字。

"<b>" + "My" + "</b>" + "Text"

要安装新字体,您可以点击此链接。 install new font