如何在 bash 中将 libreoffice ODT 转换为 PDF

Joh*_*han 12 pdf libreoffice

我在 CentOS 6 下使用 libreoffice。我可以将 ODT 文件转换为 PDF:

libreoffice --headless --convert-to pdf *.odt 但问题是它仅在 libreoffice 中没有打开任何文档时才有效。

当我--env:UserInstallation=file:///path/to/some/directory 按照此问题的评论之一中的建议进行指定时 ,它没有帮助。

我究竟做错了什么?在运行 before 命令之前关闭所有 libreoffice 实例很麻烦。

Ant*_*hon 8

这不太可能奏效,因为评论中的建议既不完整(您不能只指定某个目录)而且不正确(--env:...应该是-env:..。这是我建议您执行的操作:

  1. 停止所有 libreoffice 实例
  2. 从命令行启动 libreoffice 而不指定--headless

    libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt
    
    Run Code Online (Sandbox Code Playgroud)

    你应该/home/username 用你的主目录替换(.config如果你的 CentOS 上没有,请调整,我在 Ubuntu 和 Linux Mint 上做了这个)。以上将为您的 .config 目录中的备用 libreoffice 创建一个新的配置目录,否则您将收到一些关于未找到 java 的错误。

  3. 退出 libreoffice 实例
  4. /home/username/.config/libreoffice-alt 现在应该已经为您创建了该目录。

现在libreoffice从命令行启动另一个(这样做可以让您在启动第二个实例时出现问题时看到一些有用的消息),不使用-env:...,并且在仍在运行时使用以下命令启动转换:

libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt --headless --convert-to pdf *.odt
Run Code Online (Sandbox Code Playgroud)


JJo*_*oao 8

一种可能的方法是安装unoconv(如果尚未安装)和

unoconv file.odt
Run Code Online (Sandbox Code Playgroud)

请参阅男人unoconv的细节

unoconv是一个命令行实用程序,可以将 LibreOffice 可以导入的任何文件格式转换为 LibreOffice 能够导出的任何文件格式。 unoconv使用 LibreOffice 的 UNO 绑定进行非交互式转换....

在某些平台上还需要安装libreoffice-headless\thanks{Aaron}