我有一些用 OpenOffice 编写的文档,我想将其中的一些作为 PDF 文件包含在最终的构建交付中。我想用自动构建脚本来做到这一点。
有没有办法使用命令行命令从 OpenOffice 创建 PDF 文件?
我有一些用 OpenOffice 编写的文档,我想将其中的一些作为 PDF 文件包含在最终的构建交付中。我想用自动构建脚本来做到这一点。
有没有办法使用命令行命令从 OpenOffice 创建 PDF 文件?
截至 2012 年 9 月,LibreOffice 可以从命令行将文档转换为 PDF:
lowriter --headless --convert-to pdf yourfile.odt
它还具有批量转换支持:
lowriter --headless --convert-to pdf yourfiles*.odt
将所有与模式匹配的文件转换为相应的 PDF 文件。
运行此命令时,不得打开任何 LibreOffice 窗口。
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 并从命令行处理它。
虽然这个问题有点老了,但这里有一些东西是为了记录 LibreOffice 解决方案的一些常见缺陷:
如果lowriter
对您不起作用,因为它会忽略命令行参数并调出 gui,只需尝试调用libreoffice
orloffice
二进制文件:
loffice --headless --convert-to pdf yourfile.odt
如果您收到此消息
Error: Please reverify input parameters...
尝试以 root 身份运行它(例如通过 sudo)。这在安装了 LibreOffice 3 的 Ubuntu 12.04 LTS 上帮助了我,也可能是在没有适当配置的情况下无法在网络服务器上运行此转换的原因(除非 root,否则 Libreoffice --headless 拒绝转换,无法从 PHP 脚本运行)
还要确保您没有运行任何其他 LibreOffice 实例,否则它会静默失败并且根本不进行任何转换。
有anytopdf。自己没试过。
引用...
anytopdf 是一个 perl 脚本,可将 OpenOffice.org、Microsoft Office(Word DOC、Excel XLS)、RTF、HTML 和其他 openoffice.org 可读文件格式转换为 PDF 格式。如果当前用户的 OpenOffice.org 配置中不存在支持的“AnyToPDF”OpenOffice.org Basic 宏库,它将自动安装它。
致力于和平、爱、理解和尊重所有众生。