Confluence预览中文附件出现乱码
转载自:https://blog.51cto.com/u_13776519/5329428
背景介绍:
1.使用docker方式安装运行的Confluence
2.进行了破解,使用外置数据库
3.docker启动命令中会把容器存储目录挂载到宿主机中
因此,如下的操作并不是在Confluence所在主机上进行,而是需要进入到Confluence容器中操作
docker exec -it confluence /bin/bash
1.复制并安装字体
在Confluence服务器上新建一个字体目录:
mkdir /usr/share/fonts/windowsfonts/
从window的C:\Windows\Fonts下复制所有字体文件到上面新建的目录。 ===》 上一步操作可以理解成把宿主机的文件复制到容器指定目录下
或者这样,在容器的宿主机挂载目录下创建一个保存字体的文件夹,然后进入到容器中,把这个文件夹里的字体复制到上面新建的目录。
2.修改字体配置文件,新增上一步新建的目录
vim /etc/fonts/fonts.conf
<dir>/usr/share/fonts</dir>
<dir>/usr/share/fonts/windowsfonts/</dir> # 新增这行
<dir>/usr/share/X11/fonts/Type1</dir>
<dir>/usr/share/X11/fonts/TTF</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
3.修改setenv.sh 文件
cp /opt/atlassian/confluence/bin/setenv.sh /root/setenv.sh_20180114
vim /opt/atlassian/confluence/bin/setenv.sh
#搜索`CATALINA_OPTS`, 在原有行的基础上追加如下行:
CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/usr/share/fonts/windowsfonts/ ${CATALINA_OPTS}"

4.清空缓存文件(在容器中操作)
#清空文件
rm -rf /var/atlassian/application-data/confluence/viewfile/*
rm -rf /var/atlassian/application-data/confluence/thumbnails/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-document/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-document_hd/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-thumbnail/*
不清空缓存文件的话, confluence预览旧文件时还是会显示方框,只有新文件才会正常
所有操作完成以后需要重启confluence服务
5.问题:若是完成了以上操作后,confluence预览旧文件时还是会显示方框,则估计是缺少安装某些软件
修改仓库地址
cp /etc/apk/repositories /etc/apk/repositories.bak
vim /etc/apk/repositories # 注意,版本号要跟之前的保持一致,也就是v3.9
https://mirrors.aliyun.com/alpine/v3.9/main
https://mirrors.aliyun.com/alpine/v3.9/community
# 更新
apk update
apk add terminus-font
apk add ttf-ubuntu-font-family
apk add unifont
apk add xfontsel
apk add font-adobe-100dpi
apk add font-adobe-75dpi
apk add ghostscript-fonts
apk add libfontenc
apk add libxfont
apk add mkfontdir
apk add terminus-font
apk add ttf-ubuntu-font-family
apk add unifont
apk add font-adobe-utopia-100dpi
apk add font-adobe-utopia-75dpi
apk add font-micro-misc
apk add font-mutt-misc
apk add font-sony-misc
apk add fontconfig
apk add font-bh-ttf
apk add ttf-dejavu
apk add ttf-droid
apk add ttf-freefont
apk add ttf-linux-libertine
apk add font-bh-ttf
apk add mkfontscale
如上安装这么多软件,有些软件是安装过的,有些是没法安装的,具体安装哪些软件才会解决上述问题,不得而知,总之,如下都操作安装一遍就行了
所有操作完成以后需要重启confluence服务
6.效果



Confluence预览中文附件出现乱码的更多相关文章
- 关于confluence上传文件附件预览查看时出现乱码的问题解决办法
在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...
- 问题记录,如何解决confluence的office预览的时候的乱码问题
在新的服务器(ubuntu16.04)上安装confluence,预览office的附件的时候,发现中文无法正确显示 在网上搜了一下,搜到一篇官方的文档,是关于这个问题的 问题原因: 在服务器上没有安 ...
- LogicalDOC office预览中文乱码的问题
近期在试用LogicalDOC,一个文档管理系统. 上传的office文件预览中文乱码 问题原因是LibreOffice缺少对应的中文字体导致,只需要把对应的中文字体拷贝到/opt/libreoffi ...
- LaTeX实时预览中文
参考资料:http://blog.sina.com.cn/s/blog_6ea58f530101aizw.html 功夫不负有心人,终于在经过艰苦卓绝的寻找之后,让我的Texpad实现了实时预览.此时 ...
- SpringBoot开发案例之mail中文附件名字乱码
最近在开发一个邮件发送多附件的微服务,使用的是org.springframework.mail.javamail.JavaMailSender;包下面的JavaMailSender 但是发送出来的附件 ...
- confluence上传文件附件预览乱码问题(linux服务器安装字体操作)
在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...
- Centos 安装字体库 以及解决confluence 旧文档数据的乱码
首先,第一步我们需要执行以下的命令来安装字体管理工具: yum install -y fontconfig mkfontscale 然后我们到(Windows系统)“c:/windows/fonts ...
- iOS Document Interaction(预览和打开文档) 编程指南
原文:http://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteracti ...
- 自己动手开发更好用的markdown编辑器-04(实时预览)
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/04/25/hexomd-04/ 程序打包 文章目录 1. 打开新窗口 ...
随机推荐
- Redis如何实现多可用区?
在如今的业务场景下,高可用性要求越来越高,核心业务跨可用区已然成为标配.腾讯云数据库高级工程师刘家文结合腾讯云数据库的内核实战经验,给大家分享Redis是如何实现多可用区,内容包含Redis主从版.集 ...
- Pytorch从0开始实现YOLO V3指南 part3——实现网络前向传播
本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch ...
- Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口
sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...
- Python中使用 for 循环来拿遍历 List 的值
常规版本 简单的 for 循环遍历 x_n = ["x1","x2","x3"] for x in x_n: print(x) >&g ...
- logrotate command in Linux
背景 在生产过程中,由于磁盘空间.保留周期等因素,会对系统.应用等日志提出要求,要求系统日志定期进行轮转.压缩和删除,从而减少开销,而系统自带的logrotate 则是一个简单又实用的小工具,下面着 ...
- SP96 SHOP-Shopping 题解
\(To\) \(SP96\) 这是一道比较简单的 \(bfs\) ,初学者可以锻炼一下自己理解题意和改代码的能力. 题目中有几个细节: \(n\) 和 \(m\) 的输入顺序,应该先输入 \(m\) ...
- UE4.25 Slate源码解读
概述 Slate系统是UE的一套UI解决方案,UMG系统也是依赖Slate系统实现的. 问题: Slate系统是如何组织的? 控件树的父子关系是如何绑定的? Slate系统是如何渲染的? slate渲 ...
- tcp协议传输中的粘包问题
什么是粘包问题 tcp是流体协议. 其nagle算法会将数据量较小. 并且发送间隔时间较短的多个数据包合并为一个发送. 网络传输的时候是一段一段字节流的发送. 在接收方看来根本不知道字节流从何开始. ...
- Vue 事件的基本使用 && 事件修饰符
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...
- redis安装与连接
安装(centos7): yum install redis 启动与停止: systemctl start redis. service systemctl stop redis.service 修改 ...