- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经从 Unofficial Windows Binaries. 下载并安装了适用于 python 2.7、64 位 Windows 7 的 PythonMagick。
我正在尝试运行此代码 (Processor.py)
import PythonMagick
pdf = 'test.pdf'
p = PythonMagick.Image()
p.density('600')
p.read(pdf)
p.write('doc.jpg')
在此文件夹中(D:\Python Projects\Sheet Music Reader)
但是,使用该相对 pdf 路径或 pdf = "D:\\Python Projects\\Sheet Music Reader"
会导致此错误;
Traceback (most recent call last):
File "D:/Python Projects/Sheet Music Reader/Processor.py", line 6, in <module>
p.read(pdf)
RuntimeError: Magick: PostscriptDelegateFailed `D:\Python Projects\Sheet Music Reader\test.pdf':
No such file or directory @ error/pdf.c/ReadPDFImage/664
我只是不明白为什么它找不到我的 pdf;它与 python 脚本位于同一目录中。
是什么导致了这个错误,我该如何解决?
(我的印象是在 python 中将 pdf 转换为图像是一场噩梦)
最佳答案
几天前我遇到了完全相同的问题。虽然从 .gif(或其他东西)转换为 .jpg 工作得很好,但从 .pdf 转换为 .jpg 产生了完全相同的错误。很高兴,因为 ImageMagick 使用 Ghostscript 来阅读/转换 PDF。
您可以通过安装Ghostscript 来解决问题。 (仅 32 位版本有效)。不要忘记将“C:\Program Files (x86)\gs\gs9.06\bin”添加到您的系统路径。
这里是我如何让 PythonMagick 工作的分步指南:
(我在 Windows 7 64 位上使用 Python 2.7.3 32 位。)
C:\Program Files (x86)\ImageMagick-6.8.1-Q16
)。C:\Program Files (x86)\gs\gs9.06\bin
设置为您的系统范围路径,紧跟在 ImageMagick 之后。convert some.pdf some.jpg
。如果它不起作用,则表明您在第 1-3 点做错了。from PythonMagick import Image
im = Image()
im.read(r"C:\Path\To\Some.pdf")
im.write("some.jpg")
包含多个页面的 PDF 的附加示例:
import os
from pyPdf import PdfFileReader, PdfFileWriter
from tempfile import NamedTemporaryFile
from PythonMagick import Image
reader = PdfFileReader(open("some.pdf", "rb"))
for page_num in xrange(reader.getNumPages()):
writer = PdfFileWriter()
writer.addPage(reader.getPage(page_num))
temp = NamedTemporaryFile(prefix=str(page_num), suffix=".pdf", delete=False)
writer.write(temp)
temp.close()
im = Image()
im.density("300") # DPI, for better quality
im.read(temp.name)
im.write("some_%d.jpg" % (page_num))
os.remove(temp.name)
这是我想到的解决该问题的唯一方法。
关于PythonMagick 找不到我的 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984357/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!