【问题标题】:Bold style doesn't work in pdf output粗体样式在 pdf 输出中不起作用
【发布时间】:2013-10-11 09:05:34
【问题描述】:

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

我该怎么办?

【问题讨论】:

标签: java pdf jasper-reports


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    我在生成报告之前只添加了这 4 行以将字体嵌入到 pdf 中:

    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>
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 然后你需要把字体的jar文件。
      猜你喜欢
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多