这里是普通文章模块栏目内容页
docker安装onlyoffice7.4.1.0社区版后添加删除字体

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



栏目索引
相关内容