前提:
libreoffice已经安装好,libreoffice指令可用。以我的服务器为例,由于libreoffice指令软链接到/usr/lib/libreoffice/program/soffice,所以下面凡是用libreoffice指令的地方,你用/usr/lib/libreoffice/program/soffice代替自然是一样的效果。
1、libreoffice服务的启动
启动指令是
libreoffice --headless --accept="socket,host=0.0.0.0,port=8100;urp;" --nofirststartwizard &
注意host要写0.0.0.0,不要写127.0.0.1,再后面遇到的问题中会进一步说明。
2、libreoffice的测试方法
(1)libreoffice指令测试
libreoffice --invisible --convert-to pdf test.docx
如发现同目录下出现了test.pdf文件,说明转换成功,libreoffice安装正常。
- java接口测试
- 下载jodconverter-2.2.2.zip,将其解压,里面有docs、lib、src三个目录
- 将test.doc拷贝到lib文件夹下
- 执行命令 java -jar jodconverter-cli-2.2.2.jar test.doc test.pdf
如果lib目录下生成pdf文件,则openoffice安装启动成功
3、遇到的问题记录
最初我服务上libreoffice采用指令测试时正常,而java接口测试中会报如下错误:
ERROR: connection failed. Please make sure OpenOffice.org is running and listening on port 8100
这个错误是在告诉我8100端口没有libreoffice服务监听,但使用netstat -apn | grep 8100,发现8100端口确实在使用,所以可能是其监听的ip不全,而我的启动指令中host值是127.0.0.1,应修改成0.0.0.0,全网卡监听。另外查找网上资料,若libreoffice指令正常,而java代码不能运行时,需要安装unoconv,故解决libreoffice该问题需要下面2步:
- apt install unoconv
- 启动指令中host值修改成0.0.0.0,即
libreoffice --headless --accept="socket,host=0.0.0.0,port=8100;urp;" --nofirststartwizard &