服务器环境: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:"八号"},