我正在尝试想出一些.pptx
从命令行将文件转换为 PDF 格式的方法。我已经设置了一台cups-pdf
打印机,能实际发送作业,到目前为止,我已将其归结为以下命令:
libreoffice -pt PDF somePowerpointFilePath.pptx
我的打印机名称在哪里PDF
。然而,当我想使用横向打印时,libreoffice 却以纵向打印我的文档。
我看过这些问题,但似乎没有一个能满足我的需要。
https://superuser.com/questions/486130/printing-from-the-command-line-with-libreoffice-lpr-commands
https://superuser.com/questions/135495/how-do-i-convert-this-filetype-to-pdf
我也阅读了有关unoconv
选项的信息,但我不想使用我的 Python 库来完成设置。
我还注意到了--convert-to
该命令的选项libreoffice
,但它的行为并不像我期望的那样。我希望能够使用它libreoffice --convert-to pdf myFileName.pptx
,但这个命令很快就运行了(每当您使用 libreoffice 时都会通知),并且似乎没有在当前工作目录中存放任何类型的 pdf 文件(根据手册页,它应该这样做)。
如果有人可以阐明如何使这两种方法中的任何一种发挥作用(通过 CUPS 打印或使用选项--convert-to
),我将不胜感激。
答案1
您可以在“无头”模式下运行 LibreOffice(即作为没有 GUI 的命令行实用程序)。但如果同时运行带有 GUI 的 LibreOffice 实例,则它将不起作用。
即使 GUI 实例同时处于活动状态,也可以通过一个命令执行您想要的操作,如下所示:
mkdir $HOME/pdf ;
/path/to/soffice \
--headless \
--infilter="Microsoft PowerPoint 2007/2010 XML" \
"-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" \
--convert-to pdf:impress_pdf_Export \
--outdir $HOME/pdf \
test.docx
这里'办公室'是每个 LibreOffice 安装中都会安装的命令行工具。它很可能位于 中/usr/bin/soffice
。
有关更多详细信息,请参阅我在 StackOverflow 上的其他回答: