【问题标题】:New fonts are not getting loaded for generating pdf using Dynamic Reports when deployed in Weblogic server在 Weblogic 服务器中部署时,未加载新字体以使用动态报告生成 pdf
【发布时间】:2019-12-04 13:23:31
【问题描述】:

我正在使用 Dynamic Reports 6.0.0 和 Java 8。我正在使用“Helevetica-Neue1”字体生成一个 pdf 文件。我的项目是一个简单的 maven 项目,没有使用任何框架。我已将“helvetica-neue1.ttf”文件放在“src/main/resources/font/”文件夹中。

以下配置在“src/main/resources”文件夹中的“fonts.xml”文件中提供。

<fontFamily name="Helvetica">
        <normal>font/helvetica-neue1.ttf</normal>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
</fontFamily>

以下配置在“src/main/resources”文件夹中的“dynamicreports-defaults.xml”文件中提供。

<DynamicReports>
    <font fontName="Helvetica" />
</DynamicReports>

为它编写的代码是:

StyleBuilder title = stl.style().setHorizontalTextAlignment(HorizontalTextAlignment.LEFT).setFontSize(12).setFontName("Helvetica");

发现配置是正确的,因为当使用带有虚拟数据的 public static void main() 作为独立程序执行时,使用所需字体生成报告。

但是当项目部署在 weblogic 服务器中时,没有生成相同的报告。没有抛出异常,但是服务器执行在".setFontName("Helvetica") 行执行后突然停止。

项目部署为另一个war文件中的jar文件。这个war文件部署在weblogic server中。 pom.xml中添加了动态报表jar所需的依赖。

<dependency>
    <groupId>net.sourceforge.dynamicreports</groupId>
    <artifactId>dynamicreports-core</artifactId>
    <version>6.0.0</version>
</dependency>

我的猜测是它无法从所需的路径加载字体的 ttf 文件。如果使用默认字体,则报告生成成功。

请告诉我此问题的解决方案。提前致谢。

【问题讨论】:

    标签: java maven dynamic-reports


    【解决方案1】:

    解决方案是将包含用于生成动态报告的代码的项目部署为 war 文件。在我的例子中,包含用于生成报告的代码的项目存在于一个 jar 文件中,该文件存在于一个 war 文件中。因此,当部署 war 文件时,它无法从所需位置读取字体。当同一个 jar 文件单独部署为 war 文件时,所需的字体会反映在生成的 pdf 中。

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 2012-06-09
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多