6

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

我能怎么做?

4

3 回答 3

7

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 应该足以解决问题

于 2017-02-24T16:16:52.080 回答
2

我刚刚遇到了同样的问题,只是我使用了样式标记,而不是 html,这个解决方案帮助了我。

在生成将字体嵌入 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>
于 2014-06-05T07:51:28.067 回答
-1

在您的文本字段中选择标记为html并像这样编写您的文本。

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

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

于 2013-10-11T09:22:08.450 回答