前文已经讲了如何部署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