gpt4 book ai didi

java - 使用 Maven 构建时 JasperReports 找不到字体

转载 作者:行者123 更新时间:2023-12-01 04:14:19 25 4
gpt4 key购买 nike

我必须将非标准字体(称为“Ovo”)添加到我正在处理的 JasperReports 项目中,并遵循所有指示(例如 here )将字体导出到 .jar来自 iReport 并将其添加到我在 Eclipse 中的构建路径中。当我用 eclipse 编译项目时,这工作得很好。

现在我正在转向生产,并使用 Maven (v3.0.4) 在命令行上使用 mvn clean install 命令编译项目,因此 Eclipse 完全脱离了构建周期。我已将字体 jar 安装到本地 maven 存储库中,并将其作为依赖项添加到我的 pom 中(类似于 here 中所述),但随后我运行该程序,当生成使用该字体的文档的代码执行时,我获取JRFontNotFoundException .

我已经检查了我的本地存储库和我的 pom,并确保 jar 在那里并且 pom 正确识别它。我还使用 mvn dependency:build-classpath 检查了我的 Maven 构建路径,并查看了我的 mvn install 输出。字体 jar 的路径出现在两者中,并且没有抛出任何错误。

我没主意了。为什么这个字体jar在CLI上用maven编译项目时不起作用,但在eclipse中编译它时却没有问题? (这也是 Eclipse 中的一个 Maven 项目,因此 .classpath 几乎只是说“使用 maven”)

这是我用来在本地存储库中安装 jar 的命令:

    mvn install:install-file -Dfile=jFreeChartFonts.jar -DgroupId=com.example -DartifactId=jFreeChartFont -Dversion=0.0.1 -Dpackaging=jar

这是 pom.xml 中的依赖声明:

    <dependency>
<groupId>com.example</groupId>
<artifactId>jFreeChartFonts</artifactId>
<version>0.0.1</version>
</dependency>

我还尝试将范围设置为运行时而不是编译,但这没有什么区别。

最佳答案

在 lib jasperreport 中:打开 .jar
打开:net/sf/jasperreports/fonts
你会看到:只有文件夹字体名称“pictonic”存在
和文件配置:'jasperreports-fonts.xml'

<fontFamily name="Pictonic" visible="false">
<normal>
<ttf>net/sf/jasperreports/fonts/pictonic/pictonic.ttf</ttf>
<svg>net/sf/jasperreports/fonts/pictonic/pictonic.svg</svg>
<eot>net/sf/jasperreports/fonts/pictonic/pictonic.eot</eot>
<woff>net/sf/jasperreports/fonts/pictonic/pictonic.woff</woff>
</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>

复制文件夹 dejavu 有:DejaVuSans.ttf、DejaVuSans-Bold.ttf、...
到“net/sf/jasperreports/fonts”
并添加到配置文件:'jasperreports-fonts.xml'

<fontFamily name="DejaVu Sans">
...
</fontFamily>

END 重建 MAVEN -> 成功!

关于java - 使用 Maven 构建时 JasperReports 找不到字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com