本土化 OnlyOffice Document Server 配置流程

最近有线上协作编辑文档的需求。由于之前使用腾讯文档的写作体验算不上多好,又因为团队的文件几乎全部存储在自建的 Nextcloud 实例上,我决定搭建自己的 OnlyOffice Document Server(简称OODS)并通过一个官方的 Connector 将其集成在 Nextcloud 中。

运行容器

找一台有公网 IP 的服务器,安装好 Docker 后拉取并运行 onlyoffice/documentserver 容器。可以使用一个 docker-compose.yaml 文件来设置 JWT_SECRET 环境变量,这个是 OODS 和 Connector 通信的凭证。

将容器端口映射到容器外,并且通过服务器的反向代理软件(Nginx、Caddy等)配置好域名绑定。访问绑定好的域名应该可以看到 OODS 的欢迎页面。

这个容器对于中文的支持很差,缺失一些常用的中文字体,可能会导致打开文档的时候中文变成豆腐块。最近的版本有更新,一般的汉字是可以展示的,但是只能用默认的字体总归让人忍俊不禁。而且就国内的习惯来说,按照像素大小来用阿拉伯数字显示字号不如“小初”“一号“更符合直觉。既然要团队协作编辑文档,最好还是让 Document Server 能呈现出和桌面版 MS Office 差不多的效果来。

添加字体

将 Windows 上的 C:\Windows\Fonts 文件夹打包复制到运行 OODS 实例的服务器上,解压到 /usr/share/fonts/Windows 文件夹下。

通过 docker cp /usr/share/fonts/Windows onlyoffice-documentserver:/usr/share/fonts 来将存在服务器上的 Windows 字体来复制到容器中,然后在容器中依序执行 fc-cachedocumentserver-generate-allfonts.sh 即可加载新加入的字体。

修改字号显示

进入容器修改 /var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js,编辑器内搜索 {value:8,displayValue:"8"},,并将下面内容加入到上述字符串前:

1
{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:"八号"},

在目前的版本中搜索上述字符串能搜到两个匹配项,在它们前面都要添加这些。

保存退出编辑器,在容器内执行 documentserver-flush-cache.sh 即可刷新缓存,也可以直接重启容器。

集成到Nextcloud

在 Nextcloud 实例中安装并启用 OnlyOffice 应用,并在管理设置的 ONLYOFFICE 栏填入为 OODS 实例绑定的域名和上文中提到的 JWT_SECRET 后应用即可。


本土化 OnlyOffice Document Server 配置流程
https://blog.charles-link.cn/2025/05/本土化 OnlyOffice Document Server 配置流程/
作者
Charles
发布于
2025年5月27日
许可协议