onlyoffice中的增加中文字体,字号,支持wps等定制化修改方案

2,164 阅读3分钟

我正在参加「掘金·启航计划」

798a9f52da1968965e63d3747ea36da1.jpeg

最近接到一个掉头发的需求,客户想在原本onlyoffice基础上定制化。

  • 需求1: 支持在线预览和编辑wps格式和et格式的文件
  • 需求2: 打开wps的文件之后要像在本地wps打开一样 有中文字体和中文字号
  • 需求3: 中文的字体要排序在英文的前面

于是就成就了这篇文章,哈哈。

下面放两张图做一个前后对比

image.png image.png

可以看到下图中是更改后的onlyoffice 完美的支持了以上的定制化需求。那么我是怎么实现的呢

下面奉上每一步的具体实现

企业微信截图_20221019114137.png

一. 添加中文字体

  1. 下载fontcreat.exe

  2. 将Windows/fonts 下的字体文件拷贝至 桌面

  3. 使用fontcreat打开字体文件 【Font】->【Properties】 修改

  4. 【File】->【Export Font as…】->【Export as TrueType/OpenType Font…】以ttf保存

  5.  删除原版自带字体  (此步骤省略)

    进入容器 docker exec -it 容器id  bash

    cd /usr/share/fonts/      rm -rf *

    cd /var/www/onlyoffice/documentserver/core-fonts/     rm -rf *

  6. 将要使用的字体docker cp拷贝到/var/www/onlyoffice/documentserver/core-fonts/文件夹下

    进入到docker命令:

  7. docker ps

  8. docker exec -it zxfile_onlyoffice bash

  9. 在docker容器里执行: /usr/bin/documentserver-generate-allfonts.sh

  10. 退出docker容器 exit

  11. 重启docker镜像:docker restart zxfile_onlyoffice  

二.添加中文字号

  1. docker cp  zxfile_onlyoffice:/var/www/onlyoffice/documentserver/web- apps/apps/documenteditor/main/app.js  app.js

  2. 使用vim修改app.js 需要注意:编辑器修改会有问题

  3. 找到{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:"八号"},

  4.  docker cp app.js zxfile_onlyoffice:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/  有app.js.gz的话删掉

  5. 本地清缓存,验证

三.中文的字体排序在前

在第一步添加中文字体时 用工具fontcreate12的版本把英文名称修改时前面加*这样排序时字体就会根据字母排序到前面

四.支持wps格式和et格式

在此路径下/var/www/onlyoffice/documentserver/web-apps/apps/api/documents/ 的api.js中搜索到xlsx的地方添加et,搜索到doc的地方添加wps  有api.js.gz的话删掉  

五.设置文件大小限制

修改/etc/onlyoffice/documentserver/下的 default.json 的 inputLimits 中的 uncompressed  

然后 supervisorctl restart all

六.设置自定义logo

商用版config里配置就能修改logo


"editorConfig": {

    "customization": {

        "logo": {

            "image": "https://example.com/logo.png",

            "imageEmbedded": "https://example.com/logo_em.png",

            "url": "https://example.com"

        }

    }

}

开发版只能替换app.css 里的图片

图片21.png

/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/resources/css/app.css 

别忘了删掉gz文件

七. 7.2最新版设置水印

  在“布局”中最右侧有“水印”选项可以选择设置

八. 7.2最新版设置主题

  在文件中“高级设置”的界面主题中选择设置

后面的几个是在调研过程中发现的一些比较好用的功能

送给自己一段激励的话:

不苦不累,生活无味;不拼不搏,等于白活