我有一个代码将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
我找不到任何东西。
答案 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位版本等。