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

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

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

有没有可以做到这一点的Python库?

ImageMagick有Python绑定 。

你不能避免Ghostscript的依赖。 即使Imagemagick依靠Ghostscript来实现PDF阅读function。 原因在于PDF格式的复杂性:PDF不仅包含位图信息,而且还包含vector形状,透明度等。此外,确定哪些对象出现在哪个页面上是相当复杂的。

所以PDF页面的正确渲染显然超出了纯Python库的范围。

好消息是,Ghostscript预装在很多Windows和Linux系统上,因为所有这些PDF打印机(Adobe Acrobat除外)都需要它。

以下是使用python ghostscript模块(由'$ pip install ghostscript'安装)的最新function:

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,否则可能无法工作。

如果您使用的是Linux,某些版本会附带一个名为“pdftopbm”的命令行实用程序。 看看netpbm

也许有关: http : //www.swftools.org/gfx_tutorial.html