java - 部署在 Weblogic 服务器中时,不会加载新字体以使用动态报告生成 pdf

标签 java maven dynamic-reports

我正在使用 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”)行后,服务器执行突然停止。

该项目作为 jar 文件部署在另一个 war 文件中。该war文件部署在weblogic服务器中。动态报表jar所需的依赖项已添加到pom.xml中。

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

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

请让我知道此问题的解决方案。提前致谢。

最佳答案

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

关于java - 部署在 Weblogic 服务器中时,不会加载新字体以使用动态报告生成 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177083/

相关文章:

Javafx 重置按钮 css 到以前的样式

java - 正在生成 PDF 报告 : jFreeChart and DynamicReports

java - Maven-Assembly-插件步骤失败: "[WARNING] The following patterns were never triggered in this artifact inclusion filter"

hibernate - 非法参数异常 : Not an entity - distributed model definitions in hibernate/jpa and Maven

maven - jmeter-graph-maven-plugin 可用的图表类型?

java - 使用 DynamicReports 时出错 : java. lang.NoSuchFieldError:ELEMENT_GROUP_HEIGHT

java - Jasperreports 引擎 JRRuntimeException on report().show

java - 如何重复使用具有不同引用类型的变量?

java - NoNodeAvailableException[配置的节点均不可用 : [{#transport#-1}{XY6cYmf7Sn-DRZgzeq3PBA}{localhost}{127. 0.0.1:9300}]]

java - 逃脱仰泳未按预期工作