服务器环境:anolis os 8.8 GA
Onlyoffice:7.4.1.0社区自编译版
操作电脑:Windows 10 22H2
一、准备中文字体,新建一个文件夹fonts,从C:\Windows\Fonts复制你要的文字到fonts文件夹,如果有不是ttf\otf字体,下载Font Creator转换
二、使用Xftp上传fonts文件夹到linux服务器home目录下
三、使用Xshell登录服务器,清除onlyoffice原有字体,以下两个目录里面的都要清除
docker exec -it oodsce74 /bin/sh cd /usr/share/fonts rm -rf ./* cd /out/linux_64/onlyoffice/documentserver/core-fonts/ rm -rf ./*
四、回到服务器复制fonts文件夹到容器
docker cp /home/fonts oodsce74:/usr/share/fonts/custom
本镜像word已经有常用中文字号,如果需要另外添加需要修改app.js并回传
docker cp oodsce74:/out/linux_64/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js /home/documentserver/ docker cp /home/documentserver/app.js oodsce74:/out/linux_64/onlyoffice/documentserver/web-apps/apps/documenteditor/main/
五、上传脚本到容器
重新生成字体需要执行documentserver-generate-allfonts.sh,本容器内没有,需要创建上传一个,代码如下,可以使用notepad--/notepad++,创建的文件格式需要是Uinx(LF) UTF8
#!/bin/sh ONLYOFFICE_DATA_CONTAINER=false if [ "$1" != "" ]; then ONLYOFFICE_DATA_CONTAINER=$1 fi DIR="/out/linux_64/onlyoffice/documentserver" #Start generate AllFonts.js, font thumbnails and font_selection.bin echo -n Generating AllFonts.js, please wait... "$DIR/server/tools/allfontsgen"\ --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" 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" "$DIR/server/tools/allthemesgen"\ --converter-dir="$DIR/server/FileConverter/bin"\ --src="$DIR/sdkjs/slide/themes"\ --output="$DIR/sdkjs/common/Images"\ --postfix="ios"\ --params="280,224" "$DIR/server/tools/allthemesgen"\ --converter-dir="$DIR/server/FileConverter/bin"\ --src="$DIR/sdkjs/slide/themes"\ --output="$DIR/sdkjs/common/Images"\ --postfix="android"\ --params="280,224" echo Done echo -n Generating js caches, please wait... "$DIR/server/FileConverter/bin/x2t" -create-js-cache echo Done # Setting user rights for files created in the previous steps chown -R root:root "$DIR/sdkjs" chown -R root:root "$DIR/server/FileConverter/bin" chown -R root:root "$DIR/fonts" #Remove gzipped files rm -f \ $DIR/fonts/*.gz \ $DIR/sdkjs/common/AllFonts.js.gz \ $DIR/sdkjs/slide/themes/themes.js.gz #Restart web-site and converter if [ "$ONLYOFFICE_DATA_CONTAINER" != "true" ]; then if pgrep -x ""systemd"" >/dev/null; then systemctl restart ds-docservice systemctl restart ds-converter elif pgrep -x ""supervisord"" >/dev/null; then supervisorctl restart docservice supervisorctl restart converter fi fi
docker cp /home/documentserver-generate-allfonts.sh oodsce74:/usr/bin/
六、进入容器重新生成字体
docker exec -it oodsce74 /bin/sh sh /usr/bin/documentserver-generate-allfonts.sh
运行后会遇到找不到libicuuc.so.58的问题,解决方案如下
vim /etc/ld.so.conf.d/libc.conf
然后在下面加一行
/out/linux_64/onlyoffice/documentserver/server/FileConverter/bin
加上后保存退出,并执行以下命令
/sbin/ldconfig -v sh /usr/bin/documentserver-generate-allfonts.sh Exit
七、回到服务器重启容器
docker restart oodsce74
添加字号查找以下内容,注意不要使用工具格式化app.js
{value:8,displayValue:"8"}
常用字号
{value:42,displayValue:"初号"},{value:36,displayValue:"小初"},{value:26,displayValue:"一号"},{value:24,displayValue:"小一"},{value:22,displayValue:"二号"},{value:18,displayValue:"小二"},{value:16,displayValue:"三号"},{value:15,displayValue:"小三"},{value:14,displayValue:"四号"},{value:12,displayValue:"小四"},{value:10.5,displayValue:"五号"},{value:9,displayValue:"小五"},{value:7.5,displayValue:"六号"},{value:6.5,displayValue:"小六"},{value:5.5,displayValue:"七号"},{value:5,displayValue:"八号"},