【问题标题】:Unwanted Helvetica font is using in pdf by JasperJasper 在 pdf 中使用了不需要的 Helvetica 字体
【发布时间】:2016-05-10 04:18:40
【问题描述】:

我有一个问题,我没有在任何 JRXML 字段中使用 Helvetica,它被用作 Jasper PDF 报告中的默认字体。

我正在使用 iReports 4.0.2。

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:
    • 第一个变体是通过设置 net.sf.jasperreports.default.font.name 和/或 net.sf.jasperreports.default.pdf.font.name 属性来设置默认字体。

    例如,这是我在 iReport 中的默认设置(对话框 Options -> JasperReports Properties):

    有了这个设置(没有在模板中设置默认样式),我的 pdf 中有 iReport 生成的 Helvetica 字体。 p>

    之后,我更改了 iReport 中的设置,如下所示:

    现在我的 pdf 文件中有 Courier 字体(由 iReport 生成):

    使用 JasperReports API,您可以借助 JRProperties.setProperty(java.lang.String key, boolean value) 方法设置此属性。

    样本:

    JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", defaultPDFFont);
    
    JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params);
    
    JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName);
    
    • 另一种变体是在报表模板中添加默认样式。

    例子:

    <jasperReport .. topMargin="20" bottomMargin="20">
        <property name="ireport.zoom" value="1.0"/>
        <property name="ireport.x" value="0"/>
        <property name="ireport.y" value="0"/>
        <style name="Base" isDefault="true" hAlign="Center" vAlign="Middle" fontSize="10" pdfFontName="Courier" pdfEncoding="UTF8" isPdfEmbedded="false"/>
        <queryString>
    

    有关使用字体的更多信息,您可以阅读here。

    【讨论】:

    • 我们将属性设置如下:net.sf.jasperreports.default.font.name=SansSerif net.sf.jasperreports.default.font.size=10 net.sf.jasperreports.default。 pdf.font.name=HeiseiMin-W3 net.sf.jasperreports.default.pdf.encoding=Cp1252 net.sf.jasperreports.default.pdf.embedded=true net.sf.jasperreports.awt.ignore.missing.font=false但是,helvetica 仍然出现在文件属性 -> 字体选项卡中。但我们从未在模板中的任何地方使用过该字体。请帮忙。
    • 你能在 jrxml 文件中搜索短语“Helvetica”吗?结果是什么?
    • 'Helvetica' 未找到。链接中还有评论jasperforge.org/plugins/espforum/… =>“只要您在报告中有使用字体扩展名的默认样式,隐藏的页面锚将使用它,并且不会在生成的 PDF 中出现 Helvetica。”我受不了,你能解释一下吗?
    • 您提供的链接告诉它是旧 iReport 版本的错误。您可以在模板中设置默认字体
    • 我正在通过 API 导出 pdf。在 ireport 我使用 isPdfFont、isPdfEncoding、isEmbedded 字体选项。但是 4.0.3 版本有 defaultPdfFont 选项吗?
    【解决方案2】:

    我使用 NetBeans,并且在我的一个项目中我想使用 Garamond 作为我的 pdf 的默认字体,所以我所做的是:

    1. 工具 -> 选项
    2. 在 IReport 下,单击字体选项卡
    3. 安装字体
    4. 单击“导出为扩展按钮”,将其导出为 jar 文件。
    5. 添加到类路径。

    运行报告,保存,然后查看。

    【讨论】:

      猜你喜欢
      • 2015-03-21
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2011-12-28
      • 2010-11-06
      相关资源
      最近更新 更多