错误将PDF转换为PNG - Python 3.6和GhostScript

时间:2017-05-31 13:24:37

标签: pdf png ghostscript python-3.6 wand

我有一个代码将pdf文件转换为png on python 3.6,windows 10。

我知道你要说什么: google it!

但我发现的几乎所有内容都在 python 2.7 上。而且一些套餐尚未更新。

到目前为止我所看到的最好的方法是使用魔杖,对吗? (我之前安装了 ImageMagick

from wand.image import Image
# Converting first page into JPG
with Image(filename='0.pdf') as img:
    img.save(filename="/temp.jpg")
# Resizing this image

这是我的第二个错误:

wand.exceptions.DelegateError: PDFDelegateFailed 
`The system cannot find the file specified.' @ error/pdf.c/ReadPDFImage/809

所以我读到我需要 ghostscript 。我安装了它。但是这个包是针对python 2.7而且它不起作用。我发现 python3-ghostscript 0.5.0。 https://pypi.python.org/pypi/python3-ghostscript/0.5.0

新错误:

RuntimeError: Can not find Ghostscript DLL in registry

所以在这里我需要安装Ghostscript 9: https://www.ghostscript.com/download/gsdnld.html

首先,它不是GPL许可证......这甚至不是一个包而是一个程序。我不知道如何在我的期货python代码中使用它......

并且仍然存在错误:

RuntimeError: Can not find Ghostscript DLL in registry

我找不到任何东西。

1 个答案:

答案 0 :(得分:0)

Ghostscript根据AGPL许可,如果您需要源代码,可以在/ Program Files(x86)/gs/gs9.21/doc中找到许可证,然后可以从Ghostscript Git repository获得。注意我假设您在Windows上运行,因为您引用了注册表。

如果您安装了预构建的二进制文件,那么它将在Windows注册表中创建一个条目,我认为这是您的Python代码所寻找的但我无法确定。您应该确保安装Python所需的正确字长(32或64)版本,如果它关心的话。

当然,您只需运行Ghostscript即可呈现PDF文件并生成PNG输出。

gswin32c -sDEVICE=png16m -sOutputFile=out%d.png input.pdf

这将为输入PDF文件的每页创建一个文件,使用gswin64c作为64位版本...

您可以使用-r开关更改输出的分辨率,例如-r300

我认为你可以简单地从Python派生进程。否则,你必须让别人告诉你Python脚本在注册表中寻找什么。也许它正在寻找特定版本的Ghostscript,或32位版本等。