如何在Linux上将pptx文件转换为jpg或png(每张幻灯片)?

13

我希望将一个PowerPoint演示文稿转换成多张图片。我已经在我的服务器上安装了LibreOffice,将docx转换为pdf没有问题。但是pptx转换为pdf不起作用。我使用了以下命令行:

libreoffice --headless --convert-to pdf filename.pptx

有没有一种方法可以直接将pptx转换为png,还是我必须先将其转换为pdf,然后使用ghostscript或其他工具?

那么质量设置呢?有没有办法选择生成图像的分辨率?

提前致谢!

编辑: 根据此链接,我能够使用简单的命令行将pdf转换为图像:

convert <filename>.pdf <filename>.jpg 

我猜你需要安装LibreOffice和ImageMagick,但不确定-这在我的服务器上有效。

但是,将pptx转换为pdf仍然存在问题。

感谢谷歌和Sebastian Heyn的帮助,我能够使用以下命令创建一些高质量的图像:

convert -density 400 my_filename.pdf -resize 2000x1500 my_filename%d.jpg

请在使用后耐心等待 - 您仍然可以在Unix控制台中输入内容,但它正在处理。只需等待几分钟,JPG文件就会生成。
有关选项的更多信息,请查看此link
附注:pptx文件的纵横比似乎不完全是4:3,因为生成的图像大小为1950x1500。

PPTX文件的纵横比取决于该文件本身,可以是几乎任何值。旧版本PPT的默认值始终为10" x 7.5"或1.3333...而不是您看到的1.3纵横比。但是,PPTX可能设置为非标准大小。 - Steve Rindsberg
啊,好的,我本来期望是4:3的,因为它看起来总是那样,而且大多数投影仪只有800x600(4:3)的分辨率。知道了真是太好了。谢谢! - user2718671
3个回答

12

安装完unoconv和LibreOffice后,您可以使用:

unoconv --export Quality=100 filename.pptx filename.pdf 

将你的演示文稿转换为PDF格式。如需进一步选项,请查看此处

之后,您可以像上面已经提到的那样使用:

convert -density 400 my_filename.pdf -resize 2000x1500 my_filename%d.jpg 

接收图像。


更多选项的链接已经移动到这里 - Rmn
"unoconv" 无法提供高质量的结果。 - user6039980

7

将PPTX转换为PNG/JPG

此解决方案需要使用LibreOfficesoffice)和Ghostscriptgs)。

sudo apt install libreoffice ghostscript

接下来有两个步骤:

  1. PPTX -> PDF
soffice --headless --convert-to pdf prezentacja.pptx
  1. 将PDF转换为PNG/JPG
gs -sDEVICE=pngalpha -o slajd-%02d.png -r96 prezentacja.pdf
  • -o slajd-%02d.png - 输出到文件,%02d是幻灯片编号,两个数字
  • -r96 - 分辨率:
    • 96 -> 1280x720
    • 144 -> 1920x1080

1

谢谢!我已经找到了将PDF转换为JPG的方法。现在我只需要找出如何将PPTX转换为PDF以及如何更改质量设置。也许你的链接可以回答PPTX转PDF的问题 :) - user2718671
1
convert 命令允许添加质量设置。convert -density 400 file.pdf -scale 2000x1000 hi-res%d.jpg - Sebastian Heyn
是的,谢谢,我已经在尝试了。但是很奇怪,唯一有效的选项是将大小调整为250%,但图像当然是模糊的。我尝试过密度、重新采样等方法,但控制台并没有真正响应它。我仍然可以按回车键,如果我按左箭头,^[[D会出现。按下ctrl+c+enter后,我最终可以再次使用命令。但是没有创建jpg文件。这真的很奇怪:(但是,convert -density 400 MP.pdf -scale 2000x1500 hi-res%d.jpg应该是正确的语法... - user2718671
好的,现在它可以工作了。我只是太不耐烦了。通常在处理过程中你不能在Unix控制台上做任何事情。但是在转换命令行之后,我可以做到 - 很混乱但它有效 :D - user2718671

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接