【问题标题】:Libreoffice convert-to not workingLibreoffice 转换为不工作
【发布时间】:2014-03-30 13:19:30
【问题描述】:

我正在尝试将文档从 html、txt 转换为 pdf、odt,反之亦然。但似乎只有 odt 到 pdf 有效。。没有其他文件格式被转换

这是我的命令

libreoffice --headless --convert-to pdf test.html [Not working]
libreoffice --headless --convert-to odt test.html [Not working]
libreoffice --headless --convert-to pdf test.docx [Not working]
libreoffice --headless --convert-to pdf test.odt  [Working]

【问题讨论】:

  • 请添加您正在使用的libreoffice的版本号。
  • 我在其他地方读到 --headless 必须在 --convert-to 之后(但我仍在努力让它发挥作用)
  • @RonnieOverby 从 4.5 版开始 --convert-to implies --headless 所以你不需要再指定它了

标签: libreoffice headless document-conversion


【解决方案1】:

在 Windows 上我遇到了以下问题:我尝试使用以下命令将所有 DOC 文件转换为 PDF:

soffice --invisible --convert-to pdf *.doc

它失败了,没有任何错误消息。但是当我放置其中一个文件的文件名而不是*.doc 时,它起作用了。显然,在*.doc 中解析通配符是个问题。我所做的是执行与上面完全相同的命令,但来自 Git Bash 而不是普通的命令提示符(cmd.exe)。有效。更重要的是:在 Git Bash 中显示进度信息和信息性消息

所以我的建议是:如果您在 Windows 上运行 soffice.exe 并且没有得到任何输出,请从 Git Bash 运行命令(您可以通过安装 Git for Windows 来获取 Git Bash)

【讨论】:

    【解决方案2】:

    这是 LibreOffice 中的 a known issue,已在 5.3.0 版中修复。在此修复之前,当 LibreOffice 的实例运行时 --convert-to 或任何其他命令将静默终止而不执行任何操作。

    如果您的版本比这个旧,您可以在此处考虑solution suggested by Frank Yin。即在运行转换之前关闭所有打开的 LibreOffice 文档。

    如果您无法关闭所有打开的 LibreOffice 文档来运行转换,或者您觉得它不方便,您可以尝试在 cmets 中针对原始错误建议的 solution

    如果您有 4.5 之前的 LibreOffice 版本运行

    soffice -env:UserInstallation=file:///$HOME/.libreoffice-headless/ \
    --headless --convert-to pdf test.docx
    

    如果您运行的是 4.5 和 5.3 之间的 LibreOffice 版本运行

    soffice -env:UserInstallation=file:///$HOME/.libreoffice-headless/ \
    --convert-to pdf test.docx
    

    这里的$HOME/.libreoffice-headless 是一个不同于您的主要 LibreOffice 配置文件的新配置文件目录。

    【讨论】:

    • 我现在可以吻你 xD 你刚刚解决了几个小时前在生产中出现的一个严重问题。可能是某个实习生进行了无头 apt 升级……,我们的 Tomcat 服务器刚刚停止默默地转换 PDF。它知道它失败了,因为没有创建文件,但除此之外,“lowritter”完全保持沉默。
    • 我试过 soffice --headless -env:UserInstallation=file:///$HOME/.libreoffice-headless/ \ --convert-to pdf sample.txt 它生成.lock文件但没有经过这么长时间后生成的输出,我在 libreoffice 4.3.7.2 上尝试这个在 Cent OS 6.10 上
    • 能否请您多解释一下这个解决方案。
    • 哇,我已经研究了好几个小时,这就是修复。谢谢!!
    【解决方案3】:

    我在使用 libreoffice 时遇到的一个问题是空格问题。在我输入名称(“test-document.docx”而不是测试“documnet.docx”)之后,它工作得很好。 从版本 4.2.8.2 - 5.3.

    【讨论】:

      【解决方案4】:

      我必须安装xvfb 包(yum install xorg-x11-server-Xvfb),它是xserver dummy。

      【讨论】:

        【解决方案5】:

        对我来说,以下两个软件包是在 CentOS 7 上进行无头 docx 到 pdf 转换所需的最低要求:

        yum install libreoffice-headless  libreoffice-writer
        

        【讨论】:

          【解决方案6】:

          对我来说。我遇到的问题是,如果本地 libreoffice 进程已经打开了文档,则 --headless 根本不起作用(仅在 15 毫秒内返回)。

          确保您只对尚未在 LibreOffice 中打开的文档执行无头操作。

          【讨论】:

            【解决方案7】:

            真正的问题是 libreoffice/soffice 命令行没有提供任何错误消息或调试信息,所以这都是猜测。如果您能胜任,请尝试 strace 以获取提示。

            在我的情况下 (Linux),我没有安装正确的软件包 - 例如,要转换电子表格,需要 libreoffice-calc (duh),还需要 libreoffice-headless (double-duh)。但是命令行不会告诉你——它只是挂起,或者运行并且什么都不做。

            【讨论】:

            • 与 Ubuntu 14.04 相同:在没有 libreoffice-writer 的情况下安装了 libreoffice-common,因为我还不知道,而且事情没有用,偶然看到 libreoffice-writer,安装了, -common 是一个依赖项,转换立即生效。 LibreOffice-devs 如何在没有任何日志的情况下工作? :-)
            • 这也为我修复了它。我缺少包依赖项。特别是libobasis6.1-en-USlibobasis6.1-writer
            【解决方案8】:

            在执行命令之前尝试关闭所有正在运行的 LibreOffice 实例。这是我痛苦的根本原因。

            【讨论】:

            • 我面临同样的问题,如何关闭所有正在运行的 LO 实例?。
            • 就我而言,我在 Mac 上打开了 LibreOffice 应用程序,因此只需从 UI 菜单中选择退出。或者,您可以在您所在的任何系统上查找该进程并以这种方式终止它。
            • 在 UI 运行的情况下,convert-to 只是返回而不做任何事情(没有错误消息,没有输出)。关闭所有实例至少让我看到下一条错误消息......
            • 如果可以的话,我会投票 3 次……好的,所以命令行 LibreOffice 的行为可能与预期不同,但如果另一个实例正在运行,则根本不会发出警告……很高兴知道!
            • 这里也一样,还是有问题。运行实例使它什么都不做
            【解决方案9】:

            这在 LibreOffice 4.2 / Linux 上对我有用:

            soffice --headless --convert-to txt:Text /path_to/document_to_convert.odt
            

            信用:http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/

            【讨论】:

              【解决方案10】:

              以下作品

              libreoffice  --invisible -convert-to pdf myFile.html
              

              libreoffice --invisible -convert-to docx myFile.odt

              --invisible 选项不会启动 GUI,但会在命令行上提供一些线索。

              在 Linux Mint 13 上测试。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-05-23
                • 1970-01-01
                • 2012-08-19
                • 2016-03-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多