Skip to content

旨在解决onlyoffice-document-server中的中文字体名称显示问题

Notifications You must be signed in to change notification settings

funggtopp/onlyoffice-chinese-fonts

Repository files navigation

onlyoffice-chinese-fonts

旨在解决在docker中运行的onlyoffice-document-server中文字体名称显示问题



强烈推荐:推荐使用本人onlyoffice镜像 funggtopp/docker-onlyoffice-ds 。字体支持完美。

特别提醒:推荐使用mini_fonts。它能较好地支持7.X版本。文件夹下有两个黑体文件,1、较老的版本,需要同时使用;只有这样才能使所有字体正常显示。因为windows不区分大小写,因此使用微软系统进行字体处理时需要特别注意。2、新的7.3及以上版本,可以将黑体中tsimhei.TTF删除(注意大小写)。

for onlyoffice 7.4.x

本人onlyoffice镜像 funggtopp/docker-onlyoffice-ds:7.4.1.36 。字体支持完美。
可参考6.3.X的方法导入任意字体,字体文件不需要做单独修改,调用环境为中文的情况下,字体名显示为中文。
1.镜像已经集成常用字体;2.将20限制解除至199(再大反正也没用)

for onlyoffice 7.3.x

本人onlyoffice镜像 funggtopp/docker-onlyoffice-ds:7.3.2.8 。字体支持完美。
可参考6.3.X的方法导入任意字体,字体文件不需要做单独修改,调用环境为中文的情况下,字体名显示为中文。
1.镜像已经集成常用字体;2.JWT默认关闭,开启请将JWT_ENABLED设置为true;3.关闭了443端口。

for onlyoffice 7.X

为保证完美效果,需要将mini_fonts目录下字体全部导入容器。
字体删除、重建及缓存清空与6.3.x版本相同。

for onlyoffice 6.3.X

字体完美。已全部上传完毕。
6.X的解决与5.X的解决还是有些差别的。
为保证完美效果,请将6.X版本的字体全部下载并导入容器。

单字体使用也是可以的!!!
如使用命令:
docker cp simfang.ttf oo6:/usr/share/fonts
导入单个字体到容器。
先进入docker容器。

sudo docker exec -it oo6 /bin/bash
#进入容器后执行
cd /usr/share/fonts/
rm -rf *
cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *

将原来字体删除。
再将字体全部下载到容器的/usr/share/fonts目录下。
在容器内执行
/usr/bin/documentserver-generate-allfonts.sh
将浏览器缓存清空,即可正常使用。
最终效果图:



mini_fonts精简版本

原版字体文件略大,平均每个在15M左右。国标字体略小。
宋黑仿楷四大常用字体都做了相应压缩,包含了常用汉字及字符。
onlyoffice缺省字体Calibri使用等线做了伪装。
如果有部分字符不能显示或方框,切换成雅黑,雅黑字没有精简。
经实验可以在一定程度上减少编辑网页首次加载时间。
如果带宽足够就没有必要了。

for onlyoffice 5.X

将字体文件单独下载到fonts目录。在fonts目录的上一目录中执行如下命令:

sudo docker cp ./fonts/ 容器名:/usr/share/fonts/truetype/

进入容器,会发现在truetype下又多了一个fonts目录。执行

fc-cache -f -v
documentserver-generate-allfonts.sh

刷新浏览器缓存,重新进入onlyoffice编辑器,在字体列表中应该能看到字体的中文名了。

*** 注意 *** :建议不要删除容器里原来fonts目录里的字体,可能会出现方框问题。


字号问题

中文还是习惯小初、小四之类的。
新版本的DocumentServer已经不需要以下操作。
/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/目录下的app.js做修改即可。
注意:一共有6个app.js文件,我只修改了文档编辑器的电脑版本。其他如电子表格、幻灯片及移动版本没有修改。因为基本用不到。
app.js需要从容器拷贝出来后修改,直接修改未必会成功。
在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:"八号"},

建议保留后面的value:48等值。

About

旨在解决onlyoffice-document-server中的中文字体名称显示问题

Resources

Stars

Watchers

Forks

Packages

No packages published