我正在尝试使用Python将多页PDF转换为一系列JPEG。我可以使用可用的工具轻松地将PDF分割成单独的页面,但我无法找到任何可以将PDF转换为图像的内容。
PIL不起作用,因为它无法读取PDF。我发现的两个选项是通过shell使用GhostScript或ImageMagick。这对我来说不是一个可行的选择,因为这个程序需要跨平台,我不能确定这些程序是否可以在将要安装和使用的机器上使用。
是否有可以执行此操作的Python库?
答案 0 :(得分:20)
答案 1 :(得分:7)
这里有什么用我使用python ghostscript模块(由'$ pip install ghostscript'安装):
import ghostscript
def pdf2jpeg(pdf_input_path, jpeg_output_path):
args = ["pdf2jpeg", # actual value doesn't matter
"-dNOPAUSE",
"-sDEVICE=jpeg",
"-r144",
"-sOutputFile=" + jpeg_output_path,
pdf_input_path]
ghostscript.Ghostscript(*args)
我还在我的电脑上安装了Ghostscript 9.18,否则它可能不会起作用。
答案 2 :(得分:4)
你无法避免Ghostscript依赖。甚至Imagemagick也依赖于Ghostscript来实现其PDF阅读功能。原因是PDF格式的复杂性:PDF不仅包含位图信息,而且主要是矢量形状,透明度等。 此外,弄清楚哪个对象出现在哪个页面上是非常复杂的。
因此,正确呈现PDF页面显然超出了纯Python库的范围。
好消息是Ghostscript已预先安装在许多Windows和Linux系统上,因为所有这些PDF打印机(Adobe Acrobat除外)也需要它。
答案 3 :(得分:1)
如果你正在使用linux,一些版本附带了一个名为'pdftopbm'的命令行工具。查看netpbm
答案 4 :(得分:1)