如何从 Linux 命令行将 OpenOffice 文档转换为 PDF?

如何从 Linux 命令行将 OpenOffice 文档转换为 PDF?

我有一些学生,当被要求提供 PDF 时,他们有时会给我一份 OpenOffice 文档或电子表格。 file(1)我可以识别这些文档,但我一直无法找到如何使用命令行将它们转换为 PDF。(的手册页ooffice(1)列出了一个选项打印一个文档,但不能转换为 PDF。)Google 没什么帮助,只是让我感到不安,如果没有一个用我不了解的语言编写的漂亮脚本,以及我找不到其文档的 API,就无法做到这一点。

有人能帮助我解决仅使用 Unix 命令行将 OpenDocument 转换为 PDF 的问题吗?

答案1

我认为最直接的方法是在你的盒子上设置一个 pdf 打印机,然后:

ooffice -pt pdfprinter studentwhodoesntfollowdirectionswell.odt

编辑:刚刚在 Ubuntu 论坛上发现一篇帖子,其中有人提出了与我建议的相同的解决方案(并附有方便的说明)。从命令行打印为 PDF [已解决]

编辑2:我刚刚遇到unoconv这是一个使用 OOo 的 UNO 绑定的 Python 脚本。所以我只是想更新这个答案

答案2

我使用杯子-pdf。您需要安装 OpenOffice,并且必须以无头模式运行 ooffice,这样应用程序才不会启动 GUI。

PDF 打印机通常位于存储库中,因此简单sudo apt-get install cups-pdfyum install cups-pdf

接下来你需要安装打印机。如果你愿意,你可以安装打印机通过命令行

如果你通过 GUI 安装打印机(在 Ubuntu 上),那么很简单系统 -> 管理 -> 打印. 单击箭头并选择新打印机

替代文本

按照向导操作,记下打印机的名称,在命令行中需要用到它。如您所见,我使用了 cups-pdf:

替代文本

完成向导后,您就可以进行转换了。打开终端并运行:

ooffice -headless -nologo -pt cups-pdf doc.odt

在您的主目录下,您将有一个 PDF 文件夹。里面是您转换后的文档。

答案3

$oowriter --convert-to pdf --invisible name.odt

就这些。如果您的 CLI 是图形化的,则可以省略“--invisible”选项。已在 opensuse 12.3 上测试。

答案4

使用 CentOS 7 (4.1.4) 自带的 libreoffice:

soffice --headless --convert-to pdf  file.odt 
soffice --headless --convert-to doc  file.odt 
soffice --headless --convert-to html file.odt 

soffice 和 libreoffice 是彼此相似的相同二进制文件。oowriter 是调用 libreoffice --writer 的脚本。因此,上述内容应适用于所有 staroffice 衍生产品(libreoffice、openoffice)。

我每天用它转换数百份文档,效果很好。

相关内容