...
(上传的字体建议是上传项目有版权的字体或者免费字体!!!)
如参考下述方式仍无法查看到字体,请参考特殊情况中的方式进行添加字体。
通常在 Windows 系统的 Fonts 目录下可以找到对应的字体文件,将其中的字体文件拷贝到服务器上(一般很难知道具体缺少什么字体,将其中的所有字体拷贝上去比较省事)。
具体放置字体的服务器文件夹可以通过【系统监控】-【所有字体】界面的“External Font Dir”来确认,如下图:
依据“External Font Dir“ 提供的路径,如上图路径是 /home/Tomcat/tomcat-v10.5-10500/bin/Font-smartbi,我们可以把字体放置在对应的Font-smartbi文件夹中,并重启smartbi应用服务器即可(linux环境下请授予文件读写权限)。重启后再次使用【系统监控】-【所有字体】 确认可以看到该字体,然后再打印或者导出到 PDF 就正常了。
docker环境字体加载
在docker环境部署smartbi后,访问报表导出的时候图形出现字体乱码问题,具体可参考wiki文档添加字体:高性能版本(docker)字体乱码处理
特殊情况
特殊情况1
如果按照上述步骤操作后,仍然有中文乱码问题,可能是因为应用服务器所用的 JDK 没能正确地从上述“External Font Dir”目录下加载那些字体文件。将字体文件拷贝到 JDK 将字体文件拷贝到 JDK 自己的 fonts 目录下。JDK 对应的字体文件路径是:/jdk/jre/lib/fonts ,参见下图,然后重启smartbi应用服务器。
(注意:有些情况加到jdk也无法读取,这时候还是需要尝试在 Font-smartbi文件夹中添加window系统所有字体,然后重启smartbi应用服务器,看是否能解决)
...
进阶方案:
通常情况下,进行了“特殊情况1”的解决方案后,都是可以成功解决的,但有时候存在Linux系统就是无法读取到某些字体,也没有办法自动在读取不到对应字体的情况下,换成另外的字体,这时候可以通过如下方式解决:通常情况下,进行了上述操作,都是可以成功解决的,但有时候存在Linux系统就是无法读取到某些字体,也没有办法自动在读取不到对应字体的情况下,换成另外的字体,这时候可以通过如下方式解决:
1)在服务器上的jdk路径上新建一个fallback目录,如:\usr\java\jdk1.8.0_91\jre\lib\fonts建立一个fallback目录;
...
注:只能是添加一种字体到fallback文件夹,不能添加多种。
3)针对linux系统,若上述方案处理之后依旧存在问题,则可以直接在系统字体目录里面添加字体,对应目录为/usr/share/fonts/,删除掉font-smart里面的字体
特殊情况:
若按以上操作还是乱码,那是操作系统没有中文字体导致的,可根据具体操作系统进行安装中文字体解决。(有些操作系统没有中文字体jdk也能读取到直接放到字体目录下的字体,但是有些操作系统不行,此时只能操作系统去安装中文字体,每个操作系统安装字体的方式不一样,具体方案可自行网上或找专业人士获取)
注意 |
---|
1、关于服务器所对应jdk安装路径的查找,可以网上搜索相关方法,如weblogic的服务器,可以使用ps -ef|grep weblogic命令获取(如下图): 2、在服务器上的jdk路径上新建一个fallbak目录添加字体后没有生效,此原因可能是由于服务器的jdk使用的是操作系统默认的jdk,这时候就需要将服务器的JVM参数中的jdk路径指向添加了字体的jdk路径。 |
...