【发布时间】:2010-09-26 04:59:48
【问题描述】:
我有一些用 OpenOffice 编写的文档,我想将其中的一些作为 PDF 文件包含在最终的构建交付中。我想使用自动构建脚本来做到这一点。
有没有办法使用命令行命令从 OpenOffice 创建 PDF 文件?
【问题讨论】:
标签: build-process build-automation nant openoffice.org libreoffice
我有一些用 OpenOffice 编写的文档,我想将其中的一些作为 PDF 文件包含在最终的构建交付中。我想使用自动构建脚本来做到这一点。
有没有办法使用命令行命令从 OpenOffice 创建 PDF 文件?
【问题讨论】:
标签: build-process build-automation nant openoffice.org libreoffice
截至 2012 年 9 月,LibreOffice 可以从命令行将文档转换为 PDF:
lowriter --headless --convert-to pdf yourfile.odt
它还支持批量转换:
lowriter --headless --convert-to pdf yourfiles*.odt
将所有匹配模式的文件转换为相应的PDF文件。
运行此命令时不能打开任何 LibreOffice 窗口。
【讨论】:
Error: Please reverify input parameters... 尝试以 root 身份运行它(例如,通过 sudo)。这在安装了 Libreoffice 3 的 Ubuntu 12.04 LTS 上帮助了我。如果它忽略了--headless 参数,请尝试调用loffice 或libreoffice 而不是lowriter。
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
虽然这个问题有点老了,但这里有一些内容是为了记录 LibreOffice 解决方案的一些常见缺陷:
如果lowriter 对您不起作用,因为它会忽略命令行参数并打开 gui,请尝试调用 libreoffice 或 loffice 二进制文件:
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 实例,否则它将静默失败并且根本不进行任何转换。
【讨论】:
有anytopdf。自己没试过。
引用...
anytopdf 是一个 perl 脚本,可将 OpenOffice.org、Microsoft Office(Word DOC、Excel XLS)、RTF、HTML 和其他 openoffice.org 可读文件格式转换为 PDF 格式。如果当前用户的 OpenOffice.org 配置中不存在支持的“AnyToPDF”OpenOffice.org Basic 宏库,它将自动安装它。
致力于和平、爱、理解和尊重所有众生。
【讨论】: