解决jasper在linux环境中找不到字体(亲测有效)

问题描述:代码在windows环境中运行在linux环境中报错:Font ‘宋体’ is not available to the JVM,其实就是字体找不到,但是跟着网上很多解决方式也没解决问题,系统安装字体、项目内放置字体文件和jvm安装字体包都尝试过,结果都不行,最后字体文件打包成jar包引用尝试成功,下面展示具体如何做的。

1、将字体打成jar包

1、首先打开制作模板工具TIBCO Jaspersoft Studio
2、点击windows
在这里插入图片描述
3、点击preferences
在这里插入图片描述
4、选择字体
在这里插入图片描述
5、填写信息
在这里插入图片描述
注意:我是在windows中安装的这个工具,并且windows中已有“宋体”字体文件,我第一次直接将TrueType (.ttf)路径写为了此电脑中字体文件的路径,这个路径应该写为你部署项目服务器的字体路径,还有一个注意点是我用的宋体,我直接将windows中宋体上传到了linux服务器,但是最后还是不行,原因是windows中的宋体字体文件是ttc格式的,我们需要下载为ttf格式。
在这里插入图片描述
源码中如果不是TTF和OTF格式会有其他处理方式。
6、导出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

给项目加入jar包

1、新加lib文件夹
在这里插入图片描述
这里咋们可以看一下jar中都有什么,其实就是配置,根本没有字体文件,所以这个字体文件需要自己手动放上去。
在这里插入图片描述
在这里插入图片描述
看这儿我的路径是/home/water/back/simsun.ttf,所以你得把这个字体文件下载下来传到linux服务中。
在这里插入图片描述

2、配置maven
2.1、加入依赖

 		<dependency>
            <groupId>simsun</groupId>
            <artifactId>simsun</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/simsun.jar</systemPath>
        </dependency>

在这里插入图片描述
2.2、打包配置

 		 <resources>
            <resource>
                <directory>lib</directory>
                <targetPath>/BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </resources>

将jar包打包到/BOOT-INF/lib/下

到了这儿就剩打包部署到linxu系统中了,别忘了上传字体文件,别忘了上传字体文件,别忘了上传字体文件,重要的事说三遍,并且路径需要和你配置的一模一样。

总结

不知道为什么其他方式都不行,看别人的都好像能行,但是自己试了很多次都不行,都看了源码中怎么去加载字体了,并且发现“项目内放置字体文件”这种方式和打成jar包几乎一致,但是有细小区别如下图
jar包
在这里插入图片描述
项目内放置字体文件配置
在这里插入图片描述
看出区别了吧,我也不知道是不是因为这个问题,我也没去试了。

参考

UOS Font ‘宋体‘ is not available to the JVM
解决 Font ‘宋体’ is not available to the JVM
maven引入本地jar包的方法
JasperReport 中踩过的坑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值