说明
pdf文件的转换通过gs(ghostscript)工具
office文档,文本文件(.txt),图片(.png,.jpeg,.jpg等)使用liboffice
offfice文档处理时,可能有换页和格式问题。
工具环境安装
安装libreoffice
https://download.documentfoundation.org/libreoffice/stable下载最新版本的对应架构,对应操作系统的安装文件
- CentOS类系统(一般服务器都是基于Centos)
https://download.documentfoundation.org/libreoffice/stable/25.8.6/rpm/x86_64/LibreOffice_25.8.6_Linux_x86-64_rpm.tar.gz
解压后进入解压路径进行安装rpm -ivh *.rpm - Ubuntu类系统
https://download.documentfoundation.org/libreoffice/stable/25.8.6/deb/x86_64/LibreOffice_25.8.6_Linux_x86-64_deb.tar.gz
解压后进入加压路径进行安装 dpkg -i *.deb
安装pip3
#检查pip3是否安装
python3 -m pip --version
#没有的话,安装
dnf install -y python3-pip安装unoserver
pip3 install unoserver
#创建用户和目录
useradd -r -s /bin/false unoconvert
mkdir -p /var/lib/unoconvert/profiles
chown -R unoconvert:unoconvert /var/lib/unoconvert测试unoserver
unoconvert –host=127.0.0.1 –port=2002 /opt/unifound/cloudprint/bin/upload/a.txt /opt/unifound/cloudprint/bin/upload/a.pdf
#出错 no module ‘uno’
#用 get-pip.py 给 LO 的 Python 装 pip
#1. 下载引导脚本
curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py#2. 用 LO 的 Python 执行安装
/opt/libreoffice25.2/program/python /tmp/get-pip.py –no-cache-dir#3. 验证 pip 是否可用
/opt/libreoffice25.2/program/python -m pip –version
#应该显示 pip xx.x.x from /opt/libreoffice25.2/program/site-packages/pip#4. 安装 unoserver
/opt/libreoffice25.2/program/python -m pip install unoserver#5. 验证完整链路
/opt/libreoffice25.2/program/python -c “import uno; import unoserver; print(‘ALL OK’)”
unoconvert服务
安装cloudprint时,会自动安装,但是命令行可能要根据具体环境进行修改
ExecStart=/usr/bin/python3 -m unoserver.server –port=2002 –uno-port=20002 –interface=127.0.0.1 –conversion-timeout=120
/user/bin/python3,可能要改成libreoffice自身的python(一般为安装程序目录的program/python)
默认安装同时支持6路转换(office文档,txt和图片),可以增加,增加方式
- 增加服务
#复制服务文件
cp /etc/systemd/system/unoserver-2002.service /etc/systemd/system/unoserver-2007.service
#修改/etc/systemd/system/unoserver-2007.service中的2002为2007,20002为20007,如果端口被占用可以使用其他端口
#重新加载
systemctl daemon-reload
#启用服务(系统重启后会自动启动)
systemctl enable unoserver-2007
#启动服务
systemctl start unoserver-2007 - 转换工具增加使用端口
#修改/opt/unifound/cloudprint/bin/UniTools.ini中的Ports增加新增端口
Ports=2002,2003,2004,2005,2006,2007
#重启cloudprint
systemctl restart unicloudprint