【问题标题】:PDFs look differnet when exported by Jasper Reports on Windows and on Linux (Debian)在 Windows 和 Linux (Debian) 上由 Jasper Reports 导出时,PDF 看起来不同
【发布时间】:2012-03-01 05:30:33
【问题描述】:

当我们在 Windows 中导出 PDF 时,它们看起来没问题,但是当部署到 Linux 上的测试服务器时,它们看起来不同,即基本上情况与 http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/faq.html#FAQ25 中的情况相同

所以根据 Jasper FAQ,我应该为 AWT 和 PDF 使用相同的字体。但我无法控制 AWT 如何将逻辑字体映射到物理字体(我为 PDF 执行此操作,我将 Arial.ttf 嵌入到生成的 PDF 中)。

您有什么建议,我可以做些什么来匹配 AWT 用于计算文本大小的字体和嵌入在 PDF 中的字体?

我正在使用 Jasper Reports 3.5.3,并且不允许切换到新版本。

【问题讨论】:

    标签: pdf jasper-reports pdf-generation awt


    【解决方案1】:

    使用font extensions。例如,这允许您指定报告使用 Arial 并提供 Arial,即使您无法控制 JVM 和机器上安装的字体。

    【讨论】:

    • 我相信字体扩展是在 3.5.3 之后出现的,在我的版本中我没有 SimpleFontExtensionsRegistryFactory 类。
    • 在 JR 3.1.3 中添加了字体扩展。请参阅示例参考文档:jasperforge.org/uploads/publish/jasperreportswebsite/trunk/…
    • 您提到的文档是错误的!他们建议我应该配置名为 SimpleFontExtensionsRegistryFactory 的扩展,但实际上这个工厂在 3.5.3 版本中不存在。我必须使用 SpringExtensionsFactory 配置 JR:我已经复制粘贴,然后从 sourceforge.net/projects/jasperreports/files/jasperreports/…jasper-fonts.jar 调整了配置。唷,这并不简单。
    • 总结:在 3.5.3 中,iReport 工具没有导出字体扩展 jar 的功能,而更高版本的 iReport 具有此类功能,但导出的 jar 包含 SimpleFontExtensionsRegistryFactory 的配置,但不存在在 3.5.3 中。因此,如果有人想在 3.5.3 中使用字体扩展,他必须从 jasperreports-fonts-3.6.1.jar 下载 jasper-fonts.jar - 但请记住从 fonts.xml 中删除 ,因为此属性在 3.5.3 中尚不存在(在 3.6.1 中添加)。
    • 哎呀。感谢您发布详细信息。我知道 iReport 在第一个版本中没有内置导出功能,但我没有意识到 Font Extensions 已经发生了这样的变化。
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多