说明

pdf文件的转换通过gs(ghostscript)工具
office文档,文本文件(.txt),图片(.png,.jpeg,.jpg等)使用liboffice
offfice文档处理时,可能有换页和格式问题。

工具环境安装

安装libreoffice

https://download.documentfoundation.org/libreoffice/stable下载最新版本的对应架构,对应操作系统的安装文件

安装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
文档更新时间: 2026-08-07 17:31   作者:方杰