Linux下编译LibreOffice在线编辑

Linux下编译LibreOffice在线编辑

如何编译LibreOffice在线编辑

LibreOffice本身是没有在线编辑的功能,如果要编译LibreOffice在线编辑,需要编译另外一套源码CollaboraOnline,CollaboraOnline是基于LibreOffice为核心构建的文档在线编辑,编辑步骤参考以下内容:

环境

  1. Linux系统版本:Ubantu20.04
  2. CollaboraOnline源码分支:distro/collabora/co-22-05

步骤

  1. 打开shell命令窗口,执行以下代码,安装编译环境
sudo apt install -y dialog
sudo apt install -y libpoco-dev python3-polib libcap-dev npm \
                    libpam-dev wget git build-essential libtool \
                    libcap2-bin python3-lxml libpng-dev libcppunit-dev \
                    pkg-config fontconfig snapd chromium-browser
  1. 第二步是下载编译好的LibreOffice core源码,当然也可以自己拉取LibreOffice core源码进行编译,对应的分支:distro/collabora/co-22.05,想要快速的获取一个在线编辑,我们直接拉取官方编译好的core就可以了,执行以下代码:
wget https://github.com/CollaboraOnline/online/releases/download/for-code-assets/core-co-22.05-assets.tar.gz
  1. 拉取成功后解压
tar xvf core-co-22.05-assets.tar.gz

解压成功后会看到两个文件夹include和instdir,这两个文件里的包将是编译online源码的核心。

  1. 拉取git上online的代码
git clone https://github.com/CollaboraOnline/online.git
  1. 切换分支
git checkout distro/collabora/co-22-05
  1. 进入拉取online的目录,运行 autogen 生成配置文件:
cd  online 
./autogen.sh
  1. 执行配置文件,检查配置
./configure --enable-silent-rules --with-lokit-path=/data/core/include \
            --with-lo-path=/data/core/instdir \
            --enable-debug --enable-cypress   

如果在检查配置的过程中报错,说明缺少对应的环境,请根据错误提示,安装对应的环境,参考步骤1
参数说明:

参数名说明
–enable-silent-rules减少详细构建输出
–with-lokit-pathLibreOffice core编译生成的include包路径
–with-lo-pathLibreOffice core编译生成的instdir 包路径
–enable-debug启用调试模式
–enable-cypress启用cypress test

执行完./configure 命令后,检查如果没有报错,可以直接make或make run,make:直接构建,不运行demo,make run编译完成后直接运行demo。出现以下界面可以就证明环境检查没有问题,如果有问题,需要根据具体错误安装对应环境
在这里插入图片描述

  1. 执行编译
make run

编译完成后,出现9980端口,就是编译成功
在这里插入图片描述
往上滑动,可以看到测试链接
在这里插入图片描述

选择这个地址:https://localhost:9980/browser/dist/framed.doc.html?file_path=/data/holderOfficeOnline/online/test/data/hello-world.odt 其他地址访问会出错,打开这个地址后,正确的页面应该是:
在这里插入图片描述
点击here and accept security bits,可以在浏览器中浏览文档,效果如下:
在这里插入图片描述

结束语

到此,LibreOffice在线编辑文档编译工作就此结束,后续会持续更新如何将online嵌入到自己的业务系统中,如何进行二次开发修改源码,如果有疑问,可以留言,博主看到会回复。