专栏首页散尽浮华confluence上传文件附件预览乱码问题(linux服务器安装字体操作)

confluence上传文件附件预览乱码问题(linux服务器安装字体操作)

在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码。还比如某个业务有个功能生成图片,结果图片里的字全变空格了,这也是服务器上没相应的字库造成的。解决办法:在服务器上安装中文字体。操作方法如下:

1)先安装想要的字体, 如楷体等, 从本机"c盘->Windows-Fonts"文件夹里复制simkai字体拷到confluence部署机上(也可以多下载几个字体放过去)。

2)在linux系统下安装新字体
linux用fontconfig来安装字体库
[root@confluence-server ~]# yum -y install fontconfig     #一般是默认自带的

安装成功后,在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的)
[root@confluence-server ~]# ll -d /usr/share/fonts/ 
[root@confluence-server ~]# ll -d /usr/share/fontconfig/
drwxr-xr-x. 3 root root 4096 11月  9 2017 /usr/share/fontconfig/

添加中文字体,如上面的楷体simkai字体文件到confluence部署机的/usr/share/fonts下的某个目录下(比如新建一个windowsfonts目录放进去)
[root@confluence-server ~]# cd /usr/share/fonts/
[root@confluence-server fonts]# mkdir windowsfonts
[root@confluence-server fonts]# ll windowsfonts/
总用量 4044
-rwxr-xr-x 1 root root 4135804 8月  17 2004 simkai.ttf

紧接着需要修改windowsfonts目录的权限:
[root@confluence-server ~]# chmod -R 755 /usr/share/fonts/windowsfonts/

接下来需要安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件
[root@confluence-server ~]# yum -y install ttmkfdir               #一般会默认自带

然后执行ttmkfdir命令
[root@confluence-server ~]# cd /usr/share/fontconfig/windowsfonts/
[root@confluence-server windowsfonts]# mkdir /usr/share/X11/fonts/encodings/encodings.dir
[root@confluence-server windowsfonts]# ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

发现在/usr/share/fontconfig/windowsfonts/目录下多了个fonts.scale
[root@confluence-server windowsfonts]# cat fonts.scale 
2
simkai.ttf -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-c-0-ascii-0
simkai.ttf -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-c-0-iso10646-1

最后一步就是修改字体配置文件了,首先通过编辑器打开配置文件,可以看到一个Font list,即字体列表,在这里需要把我们添加的中文字体位置加进去:
[root@confluence-server windowsfonts]# vim /etc/fonts/fonts.conf
.......
<!-- Font directory list -->

	<dir>/usr/share/fonts</dir>
	<dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
    <dir>/usr/share/fonts/windowsfonts</dir>                #添加这一行
	<dir>~/.fonts</dir> 

<!--

然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了:
[root@confluence-server windowsfonts]# fc-cache

最后再次通过fc-list看一下字体列表:
[root@confluence-server windowsfonts]# fc-list 
........
楷体_GB2312,KaiTi_GB2312:style=Regular
.......

可以看到已经成功安装上了中文字体,至此安装过程就全部结束,再次查看报表可以发现中文样式和内容均已可以正常显示了。

3)在confluence部署机的安装目录, 如/opt/atlassian/confluence/bin下找到setenv.sh, 找到CATALINA_OPTS, 加入一行
[root@confluence-server ~]# vim /opt/atlassian/confluence/bin/setenv.sh
......
CATALINA_OPTS=”-Dconfluence.document.conversion.fontpath=/usr/share/fonts/windowsfonts/ ${CATALINA_OPTS}”

4)清空confluence的home下viewfile目录和shared-home/dcl-document目录里的所有缓存文档文件, 不清空的话, confluence预览旧文件时还是会显示方框,
只有新文件才会正常。
[root@confluence-server ~]# cd /var/atlassian/application-data/confluence/shared-home/dcl-document
[root@confluence-server dcl-document]# rm -rf ./*

5)重启confluence就OK了。如果重启后,发现原来上传的附件预览还出现乱码,那就是缓存文档文件所导致!可以删除这些文件,重新上传进去就可以正常预览了!!
[root@confluence-server ~]# lsof -i:8080
COMMAND    PID       USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
java    138112       jira  151u  IPv6 230299384      0t0  TCP *:webcache (LISTEN)
java    188894 confluence  868u  IPv6 286937024      0t0  TCP confluence-server:37886->confluence-server:webcache (CLOSE_WAIT)
[root@confluence-server ~]# /etc/init.d/confluence restart

顺便说一句,confluence对数据库的编码格式要求是utf-8,所以请把数据库编码格式设置正确,以免其他地方出现乱码。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kubernetes容器集群管理环境 - Prometheus监控篇

    一、Prometheus介绍 之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafan...

    洗尽了浮华
  • Centos下安装破解Jira7的操作记录

    confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki。通过它可以实现团队成员之间的协作和知识共享。现在大多数公司都会部署一套conf...

    洗尽了浮华
  • centos6.8部署vnc服务

    VNC全称是Virtual Network Computing,属于远程控制类软件。其优点是支持跨操作系统的远程图形化控制。 在日常运维工作中,由于服务器常常是...

    洗尽了浮华
  • Linux下如何查看硬件信息?

    我们在 Linux 下进行开发时,有时也需要知道当前的硬件信息,比如:CPU几核?使用情况?内存大小及使用情况?USB设备是否被识别?等等类似此类问题。下面良许...

    吾非同
  • YOLO-LITE:专门面向CPU的实时目标检测

    现在的实时目标检测算法,比如YOLO、SSD在GPU上已经可以跑的很快了,比如YOLOv2可以在GPU上跑到224fps,但在便携式笔记本甚至手机终端,这些算法...

    CV君
  • nginx每天自动切割日志脚本

    nginx是现在应用比较广泛的轻量级web应用服务器,可做前端负载,也可以添加不同插件做应用服务器,比如直播 点播流媒体等

    zhangdd
  • Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自签名证书产生和使用

    到现在,我们已经完成了POS平台和前端的网络集成。不过,还是那句话:平台系统的网络安全是至关重要的。前一篇博客里我们尝试实现了gRPC ssl/tls网络连...

    用户1150956
  • meteor 简介

    本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 What “Meteor gives you a radica...

    IMWeb前端团队
  • meteor 简介

    “Meteor gives you a radically simpler way to build realtime mobile and web apps,...

    IMWeb前端团队
  • 你知道这种开发模式能更好的帮你排错吗?

    很多时候我们在开发一个项目的时候写着写着sql语句报错了?(这里多指使用框架开发,当然也有原声sql语句),之后有时候会扎耳挠腮,看来看去都感觉自己的sql语句...

    思梦php

扫码关注云+社区

领取腾讯云代金券