3、Only office中文字体排序问题

本文介绍了一种在OnlyOffice中优化字体排序的方法,通过在字体名称前添加特殊字符,实现中文优先显示,解决了英文字体过多导致的使用不便问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字体排序个人见解

因为only office的默认排序是英文在上,中文在下的,有时候我们英文字体多了之后,使用不方便,所以,需要将我们习惯使用的汉字放到上面来。
这里我有三个思路

1、底层修改

之前有说到,only office部署字体的脚本文件为documentserver-generate-allfonts.sh,所以打开该文件后,可发现生成的配置都是基于allfontsgen这个文件,然而这个文件却是一个没有后缀名的ELF文件,全称为‘Executable and Linkable Format’是可执行和可链接文件格式,其中包含了可执行的程序,需要反汇编,反编译后在程序中进行修改,难度复杂。

2、页面修改

.sh文件生成了两个js文件,分别为/sdkjs/common/AllFonts.js和/server/FileConverter/bin/AllFonts.js,可通过修改其中字体顺序使页面的显示样式改变,但具体功能代码还需要修改/var/www/onlyoffice/documentserver/fonts文件夹下的字体文件名称,或sdk-all.js,而sdk-all.js为编译后的js文件认知难度也很高。(不推荐)

以上两个方法都很复杂。
第二种方法个人不是很推荐,因为每次部署一遍字体,就需要做一次修改,显得有些繁琐。
而第一种方法当然最好,但想要实现很困难。
于是最好选用最简单的第三个方法。

3、名称修改(已解决)

既然only office是按名称排序的,并且英文排在前面,那么就改变字体名不就可以了。
但字体名的改变并不是那么简单,要考虑三点。

(1)不能让字体名称的变化让使用者看出来
(2)字体名称改变后不能让only office无法检测
(3)空格的问题
【1】要满足第一点需求,那么在名字中就只能加入空格字符。
【2】要满足第二点需求,那么就不能改变字体,但这里我试了一下,只要不在汉字中间加入空格,那么不管在名字头,还是名字尾加入空格onlyoffice还是能够检测出来,这就给了我们接下来的操作空间。

要改变字体顺序,将空格输入到字体名的尾部显然是不行的,然而输入到字体名的前面,字体修改器也会自动过滤掉,所以我们需要一个特殊的字符空格。

【3】按住Alt键+0160,即可得出一个并不会被过滤掉的字符空格

在这里插入图片描述

【4】输入一个肯定是不行的,因为英文的优先级在Alt+0160之前,而Alt+0160的优先级在普通空格之后。

所以这里给每个中文字体名的前面加上一个Alt+0160与一个普通空格,这两个字符。
而给每个英文字体名前面至少加上两个Alt+0160,如此一来英文字体的优先级就在中文字体之后了。
最后将修改好的字体部署上去。
注意:

①、输入Alt+0160后字体的名称不能中英文混合,only office只识别中文或者英文+特殊字符。如:仿宋_GB2312就只会显示后面部分的_GB2312,大体上并没有其他影响。
②、有些字体在加入Alt+0160后无法识别的问题,那就只能去网上找个相似的字体改个名,或者基于其他字体使用FontCreator将其中的字符替换一下。在这里插入图片描述

修改结束!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值