onlyoffice添加删除字体

前文已经讲了如何部署onlyoffice,在线预览/在线编辑—OnlyOffice部署
网上百度过,按百度的方式清空/usr/share/fonts/下的字体,然后添加自己的字体,然后/usr/bin/documentserver-generate-allfonts.sh重新生成字体,结果发现自己的字体确实加上去了,但是原来的字体却没有移除掉,多番检索还是无果,最后还是从/documentserver-generate-allfonts.sh脚本中得知问题所在,故以后还是得多看源码才能更好的解决问题啊。
/documentserver-generate-allfonts.sh

#!/bin/sh

ONLYOFFICE_DATA_CONTAINER=false
if [ "$1" != "" ]; then
    ONLYOFFICE_DATA_CONTAINER=$1
fi

DIR="/var/www/onlyoffice/documentserver"

#Start generate AllFonts.js, font thumbnails and font_selection.bin
echo -n Generating AllFonts.js, please wait...


"$DIR/server/tools/allfontsgen"\
  --input="$DIR/core-fonts"\
  --allfonts-web="$DIR/sdkjs/common/AllFonts.js"\
  --allfonts="$DIR/server/FileConverter/bin/AllFonts.js"\
  --images="$DIR/sdkjs/common/Images"\
  --selection="$DIR/server/FileConverter/bin/font_selection.bin"\
  --output-web="$DIR/fonts"\
  --use-system="true"

chown -R ds:ds "$DIR/sdkjs"
chown -R ds:ds "$DIR/server/FileConverter/bin"
chown -R ds:ds "$DIR/fonts"

echo Done

echo -n Generating presentation themes, please wait...
"$DIR/server/tools/allthemesgen"\
  --converter-dir="$DIR/server/FileConverter/bin"\
  --src="$DIR/sdkjs/slide/themes"\
  --output="$DIR/sdkjs/common/Images"

echo Done

#Remove gzipped fonts
rm -f $DIR/fonts/*.gz $DIR/sdkjs/common/AllFonts.js.gz

#Restart web-site and converter
if [ "$ONLYOFFICE_DATA_CONTAINER" != "true" ]; then
 supervisorctl restart ds:docservice
 supervisorctl restart ds:converter
fi

从上面我们可以看到移除不了原来的字体原来是–input="$DIR/core-fonts"在作祟,干货来了:
在这里插入图片描述

cd /var/www/onlyoffice/documentserver

cd core-fonts/

ls

rm -rf *

ls

cd /usr/share/fonts/

rm -rf *

一波操作后,清除了"异己"(onlyoffice原来的字体),下面把我们要导入的字体(windows的中文字体)弄进去。

在这里插入图片描述这里只需要部分字体即可,并不需要全部字体,选择好自己要的字体,打包发送到onlyoffice容器里:

docker cp ./fonts/ c54:/usr/share/fonts/truetype/custom

在docker容器里面执行:

root@c54e4b2464bd:/usr/share/fonts# /usr/bin/documentserver-generate-allfonts.sh
Generating AllFonts.js, please wait...Done
Generating presentation themes, please wait...Done
ds:docservice: stopped
ds:docservice: started
ds:converter: stopped
ds:converter: started
root@c54e4b2464bd:/usr/share/fonts# 

字体生成完成,浏览器清除缓存,重新加载即可。
在这里插入图片描述
这里就有点尴尬了,我试过很多方法,就是没办法将整个拼音完好的转换成中文显示,我尝试过修改字体的名称,显示中文是成功了,但是可能因为修改字体的原因,导致大数字体都出现了异常,无法正常使用。如果有哪位大佬有成功以中文显示的,还请告知下啊。
至此,onlyoffice替换字体完成。
这个过程对onlyoffice原镜像有所修改,所以还是导出来作为一个镜像好点,避免丢失,以后可以以这个镜像为基础启动容器再次进行开发。

docker save -o myfonts-onlyoffice.tar onlyoffice:v1
发布了41 篇原创文章 · 获赞 22 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq1049545450/article/details/103886888