使用Python将PDF转换为一系列图像
我正在尝试用Python把一个多页的PDF文件转换成一系列的JPEG图片。我可以很容易地把PDF拆分成单独的页面,使用一些现成的工具就可以做到,但我找不到可以把PDF转换成图片的工具。
PIL这个库不行,因为它无法读取PDF文件。我找到的两个选择是使用GhostScript或ImageMagick,通过命令行来操作。但这对我来说不可行,因为这个程序需要跨平台使用,我不能确定这两个程序在安装和使用的机器上是否都能找到。
有没有什么Python库可以做到这一点呢?
5 个回答
4
你无法避免使用Ghostscript这个工具。即使是Imagemagick也需要依赖Ghostscript来读取PDF文件。原因在于PDF格式非常复杂:PDF不仅仅包含位图信息,更多的是矢量图形、透明度等等。而且,搞清楚这些对象在每一页上是如何显示的也相当复杂。
所以,正确显示PDF页面的工作显然超出了纯Python库的能力范围。
好消息是,很多Windows和Linux系统上都预装了Ghostscript,因为所有的PDF打印机(除了Adobe Acrobat)都需要用到它。
9
以下是我使用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,否则可能无法正常工作。
21
ImageMagick 是一个可以处理图片的软件,它有Python的接口。