【问题标题】:OpenOffice command line PDF creationOpenOffice 命令行 PDF 创建
【发布时间】:2010-09-26 04:59:48
【问题描述】:

我有一些用 OpenOffice 编写的文档,我想将其中的一些作为 PDF 文件包含在最终的构建交付中。我想使用自动构建脚本来做到这一点。

有没有办法使用命令行命令从 OpenOffice 创建 PDF 文件?

【问题讨论】:

    标签: build-process build-automation nant openoffice.org libreoffice


    【解决方案1】:

    截至 2012 年 9 月,LibreOffice 可以从命令行将文档转换为 PDF:

    lowriter --headless --convert-to pdf yourfile.odt
    

    它还支持批量转换:

    lowriter --headless --convert-to pdf yourfiles*.odt
    

    将所有匹配模式的文件转换为相应的PDF文件。

    运行此命令时不能打开任何 LibreOffice 窗口。

    【讨论】:

    • 这很整洁。您知道在进行转换之前是否可以更新目录?
    • 我已经成功地转换了图像、word 文档、电子表格。像魅力一样工作。
    • 这个解决方案非常可靠但有点慢。对于任何考虑它的人来说只是一点点信息,从版本 4.1.0.4 开始,一个相当基本的文件在 1800 毫秒内转换。
    • 奇怪,这只是在 Ubuntu 13.10 中使用 Libreoffice 为我打开一个新文档: --convert-to 和 --headless 参数似乎都被忽略了。不过,我正在尝试转换电子表格而不是文档。
    • 由于此处尚未记录:如果此命令行调用失败并显示此消息 Error: Please reverify input parameters... 尝试以 root 身份运行它(例如,通过 sudo)。这在安装了 Libreoffice 3 的 Ubuntu 12.04 LTS 上帮助了我。如果它忽略了--headless 参数,请尝试调用lofficelibreoffice 而不是lowriter
    【解决方案2】:

    有一个很棒的工具叫做“unoconv”,它在我的 Ubuntu 存储库中。它将ODF.ods,...转换为PDF,我也认为是其他格式。

    我还可以将 PowerPoint 文件转换为 PDF。

    【讨论】:

      【解决方案3】:

      Art of Solving 也有一个非常好的 API 来执行 Java 中的转换。它有点慢,但很简单。我就是这样使用它的:

              File inputFile = new File("C:\\oreyes\\hola.doc"); 
              File outputFile = new File("C:\\oreyes\\hola.pdf"); 
              OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
              try { 
                  connection.connect(); 
              } catch(Exception e) {}
      
              DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
              converter.convert(inputFile, outputFile); 
              connection.disconnect(); 
      

      您可以使用它创建一个 jar 并从命令行对其进行处理。

      【讨论】:

      • 与您描述的方式相同,但指定了OpenOfficeConnection officeConnection = new SocketOpenOfficeConnection( "my_local_vm_ip", 8100 );,但我一直收到错误消息。 Exception in thread "main" com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversion failed: could not load input document
      • 如果您想使用某些选项(例如标记的 PDF)导出,您首先需要在 OpenOffice 或 LibreOffice 中设置它们吗?
      【解决方案4】:

      虽然这个问题有点老了,但这里有一些内容是为了记录 LibreOffice 解决方案的一些常见缺陷:

      • 如果lowriter 对您不起作用,因为它会忽略命令行参数并打开 gui,请尝试调用 libreofficeloffice 二进制文件:

        loffice --headless --convert-to pdf yourfile.odt

      • 如果您收到此消息

        Error: Please reverify input parameters...

        尝试以 root 身份运行它(例如通过 sudo)。这在安装了 LibreOffice 3 的 Ubuntu 12.04 LTS 上帮助了我,也可能是没有正确配置的情况下无法在网络服务器上运行此转换的原因 (Libreoffice --headless refuses to convert unless root, won't work from PHP script)

      • 还要确保您没有运行任何其他 LibreOffice 实例,否则它将静默失败并且根本不进行任何转换。

      【讨论】:

        【解决方案5】:

        anytopdf。自己没试过。

        引用...

        anytopdf 是一个 perl 脚本,可将 OpenOffice.org、Microsoft Office(Word DOC、Excel XLS)、RTF、HTML 和其他 openoffice.org 可读文件格式转换为 PDF 格式。如果当前用户的 OpenOffice.org 配置中不存在支持的“AnyToPDF”OpenOffice.org Basic 宏库,它将自动安装它。

        致力于和平、爱、理解和尊重所有众生。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-30
          • 2015-07-30
          • 2020-10-15
          • 1970-01-01
          • 1970-01-01
          • 2014-12-10
          • 2012-11-03
          • 2011-09-08
          相关资源
          最近更新 更多