使用Python将PDF转换为一系列图像

时间:2008-12-01 19:31:08

标签: python pdf imagemagick jpeg python-imaging-library

我正在尝试使用Python将多页PDF转换为一系列JPEG。我可以使用可用的工具轻松地将PDF分割成单独的页面,但我无法找到任何可以将PDF转换为图像的内容。

PIL不起作用,因为它无法读取PDF。我发现的两个选项是通过shell使用GhostScript或ImageMagick。这对我来说不是一个可行的选择,因为这个程序需要跨平台,我不能确定这些程序是否可以在将要安装和使用的机器上使用。

是否有可以执行此操作的Python库?

5 个答案:

答案 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)