如何在命令行中将ppt转换为pdf?

我有一个文件夹,里面有一堆PPT,我想把每个PPT都转换成单独的PDF文件。

1我觉得你是指“一个包含一堆PPT的文件夹”,而不是PDF文件。 - Marcel Stimberg
1你的问题需要更好的解释。你是想将每个 ppt 转换成一个 pdf,还是将所有的 ppt 转换成一个包含不同页面的单一 pdf,或者...? - frabjous
4个回答

你还可以使用libreoffice的命令行来实现你的目的。以下是一个示例,将当前目录中的所有ppt文件转换为pdf文件:
libreoffice --headless --invisible --convert-to pdf *.ppt  

--headless
以“无界面模式”启动,允许在没有用户界面的情况下使用应用程序。
当应用程序通过API由外部客户端控制时,可以使用此特殊模式...
它意味着--invisible,并且严格忽略任何GUI环境。
--invisible
以不可见模式启动。
启动标志和初始程序窗口都不可见。LO可以通过API进行控制,可以打开文档和对话框。
使用此参数启动后,只能使用任务管理器(Windows)或kill命令(基于UNIX的系统)退出。
获取更多关于命令行选项的信息:
man libreoffice

(注意:在命令行生效之前,您必须关闭所有正在运行的LibreOffice实例。)

2解决了我的问题。 - Luis Alvarado
11很棒的是LibreOffice有--convert-to选项,但很糟糕的是它没有明确说明你还必须传递--headless--invisible才能使其正常工作。对于这个答案给予一加一的赞。 - scribu
7--headless 在 LO 3.4 上意味着 --invisible。即使有 GUI 实例运行,添加 -env:UserInstallation="file://$HOME/.libreoffice-alt" 也可以正常工作(参考这里)。 - Beni Cherniavsky-Paskin
太棒了! - desgua
如果有人正在阅读这篇文章并且没有使用Ubuntu,而LibreOffice仍然要求您安装X服务器,那么您可能需要安装libreoffice-headless软件包。 - YudhiWidyatama
如果您已经安装了LibreOffice,最好使用它。不需要安装任何额外的东西。非常感谢! - Saurabh
@Tapper 命令中使用的参数解释使答案更有用和清晰。 - alhelal
1@Melebius,相比于man页面中的“without a user interface”,其中写成了“without user a interface”,这让我很困惑。是否有办法向相关机构反映此问题呢? - alhelal
1根据http://www.libreoffice.org/get-help/feedback/,你可以创建一个错误报告。 - Melebius
3就这个问题而言,在MacOS上,libreoffice的可执行文件被称为soffice,并位于/Applications/LibreOffice.app/Contents/MacOS目录中。 - ijoseph
@ijoseph在MacOS用户中的提示对我来说在10.13.4上有效。 - Rico Picone
也适用于Ubuntu 18.04。 - Anshuman Kumar
我在运行Cent OS 7的VPS服务器上尝试了这个解决方案,但是出现了错误:错误:无法加载源文件。但是如果我在相同位置执行该命令来处理.doc文件,它却能正常工作。请问有什么帮助或想法吗? - rahim.nagori
我在执行了这个命令 'yum install unoconv' 之后,再次运行相同的脚本,结果非常顺利。 - rahim.nagori
这似乎是一个更稳定的解决方案,因为unoconv经常不能直接使用,你必须调整配置文件。 - Esben Eickhardt
在Ubuntu 21.10上工作过;感谢LibreOffice提供的命令行工具。这对我非常有帮助。 - Matt

你可以使用unoconv。它在软件仓库中可用,所以你只需通过apt-get命令安装它:unoconv直接安装链接)。
请注意网页中的信息已过时。使用man命令或输入unoconv -h获取实际的命令行选项。它的使用方法如下:
unoconv -f pdf presentation.odt

这个命令将创建一个presentation.pdf文件。
我之前只用它来批量转换ods到pdf,效果完美。虽然我还没有尝试过用于演示文稿(但现在进行了快速测试),但我预计它会很好地工作。
请注意,在Lucid(10.04)上它将无法工作,因为存在一个python-openoffice绑定的bug。如果你需要在Lucid上使用它,你可以将ppa添加到你的软件源以升级你的Openoffice版本。

1你的示例使用了错误的命令(uniconv 而不是 unoconv)。 - Marcel Stimberg
1这个错误是由于Python对象与UNO桥接时出现泄漏,原因是pyuno运行时未初始化(在使用任何uno类之前需要调用pyuno.bootstrap)。导致了分段错误。 - James
1@James:是的,我在10.04上检查过了,确实出现了那个错误。稍微搜索了一下,发现在Lucid版本中附带的Openoffice存在一个bug。在我使用的Maverick(10.10)和Hardy(8.04)版本上是可以正常工作的。 - Javier Rivera
1对于任何想知道如何将包含各种类型文档(*.txt,*.docx,*.pptx 甚至 *.pdf 等)的文件夹转换为 PDF 的人来说,可以使用以下命令:unoconv -f pdf <input-folder-path>/* --output <output-folder-path>/* - Rahul Bharadwaj
非常感谢,这是一个很好的解决方案! - Paul Strobel

最简单的将 .ppt 文件转换为 PDF 的方法是通过命令行安装 unoconv:
sudo apt-get install unoconv

然后从存放ppt文件的驱动器中打开终端。 现在输入:
unoconv -f [format] pdf  filename.ppt

就这样。完成了。

欢迎来到AskUbuntu,这是一个问答网站,不是一个论坛。感谢您分享知识,但无需重复回答。得票最高的答案已经提到了unoconv工具。 - user.dz
谢谢 (y) (y) (y) - rahim.nagori

有一个简单的技巧。
使用unoconvmidnight commanderodt转换为pdf
  • 启动mc
  • 导航到odt文件所在的位置
  • 使用Ctrl-T然后F2,@,标记odt文件
  • 粘贴unoconv -f pdf
它会输出一堆可怕的错误信息,但是它确实有效!