Debian:在无头模式下将 docx 文件转换为 pdf 的最低 LibreOffice 软件包

Debian:在无头模式下将 docx 文件转换为 pdf 的最低 LibreOffice 软件包

我正在开发一个带有 Debian 10 基础映像(这是固定依赖项)的 Docker 容器,该容器在无头模式下使用 LibreOffice (soffice) 将 docx 文件转换为 pdf。

我已经安装了以下软件包:

libreoffice default-jre-headless libreoffice-java-common

然而,构建后,Docker 容器大小超过 1GB。理想情况下,我希望容器尽可能小。有没有办法可以找出使 soffice 在无头模式下运行并将 docx 文件转换为 pdf 的最低软件包要求?

答案1

似乎没有官方支持这一点。我在使用 Docker/Kubernetes 时遇到了同样的问题,并通过以下方法成功解决了它。本例中为 LibreOffice v7.5。

  • 从以下位置下载 deb 包https://de.libreoffice.org/download/download
  • 解压它,你会得到大约 40-50 个 deb 文件
  • 我进行了反复试验,发现在服务器端将 DOCX 转换为 PDF 需要以下一组 deb 文件:
    libobasis7.5-en-us_7.5.4.2-2_amd64.deb
    libobasis7.5-images_7.5.4.2-2_amd64.deb
    libobasis7.5-ooofonts_7.5.4.2-2_amd64.deb
    libobasis7.5-writer_7.5.4.2-2_amd64.deb
    libreoffice7.5-ure_7.5.4.2-2_amd64.deb
    libreoffice7.5-writer_7.5.4.2-2_amd64.deb
    libreoffice7.5_7.5.4.2-2_amd64.deb
  • 将这些 deb 放在单独的目录中并通过以下方式安装: dpkg -i *.deb

  • 测试直接转换:

    /opt/libreoffice7.5/program/soffice --headless --convert-to pdf ./demo.docx --outdir ./

  • 运行守护进程:

    /opt/libreoffice7.5/program/soffice --headless --accept=socket,host="127.0.0.1,port=8100\;urp;" &

  • 为了更自动化的方式,我重新打包了上面的 deb 文件列表,通过 DOCKERFILE 部署和安装它们

相关内容