在 Weblogic 服务器中部署时,不会加载新字体以使用动态报告生成 pdf
New fonts are not getting loaded for generating pdf using Dynamic Reports when deployed in Weblogic server
我正在使用 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>
"dynamicreports-defaults.xml" 文件夹中的 "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 服务器中。 pom.xml.
中添加了动态报告jar所需的依赖项
<dependency>
<groupId>net.sourceforge.dynamicreports</groupId>
<artifactId>dynamicreports-core</artifactId>
<version>6.0.0</version>
</dependency>
我的猜测是它无法从所需路径加载字体的 ttf 文件。如果使用默认字体,报告生成成功。
请告诉我这个问题的解决方案。提前致谢。
此问题的解决方案是将包含用于生成动态报告的代码的项目部署为 war 文件。在我的例子中,包含用于生成报告的代码的项目存在于一个 jar 文件中,该文件存在于 war 文件中。因此,部署 war 文件时,无法从所需位置读取字体。当同一个 jar 文件单独部署为 war 文件时,所需的字体反映在生成的 pdf 中。
我正在使用 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>
"dynamicreports-defaults.xml" 文件夹中的 "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 服务器中。 pom.xml.
中添加了动态报告jar所需的依赖项<dependency>
<groupId>net.sourceforge.dynamicreports</groupId>
<artifactId>dynamicreports-core</artifactId>
<version>6.0.0</version>
</dependency>
我的猜测是它无法从所需路径加载字体的 ttf 文件。如果使用默认字体,报告生成成功。
请告诉我这个问题的解决方案。提前致谢。
此问题的解决方案是将包含用于生成动态报告的代码的项目部署为 war 文件。在我的例子中,包含用于生成报告的代码的项目存在于一个 jar 文件中,该文件存在于 war 文件中。因此,部署 war 文件时,无法从所需位置读取字体。当同一个 jar 文件单独部署为 war 文件时,所需的字体反映在生成的 pdf 中。