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

error Converting PDF to PNG - Python 3.6 and GhostScript

我很难在 python 3.6、windows 10.

上找到将 pdf 文件转换为 png 的代码

我知道你要说什么了:google它!

但我发现的几乎所有内容都在 python 2.7 上。还有一些包没有更新。

到目前为止,我所看到的最好的方法是使用 Wand,对吧? (我之前安装过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

我找不到任何东西。

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

如果您安装预构建的二进制文件,那么它将在 Windows 注册表中创建一个条目,我假设这就是您的 Python 代码正在寻找的内容,但我不能确定。如果需要,您应该确保安装 Python 所需的正确字长(32 或 64)版本。

当然,您可以简单地 运行 Ghostscript 来呈现 PDF 文件并生成 PNG 输出。

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

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

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

我想您可以简单地从 Python 派生一个进程。否则,您将不得不找人告诉您 Python 脚本在注册表中寻找什么。也许它正在寻找特定版本的 Ghostscript,或 32 位版本或其他东西。