【发布时间】:2019-08-07 14:04:33
【问题描述】:
我有以下一段 Python 代码可以将 PDF 转换为 JPG。
with Img(filename=pdfName, resolution=300) as pic:
pic.compression_quality = self.compressionQuality
pic.background_color = Color("white")
pic.alpha_channel = 'remove'
pic.save(filename=output)
我的问题是,对于一个大的 PDF 文件(10mb)我有以下错误:
File "/home/nathan/PycharmProjects/oc_for_maarch/worker.py", line 44, in <module>
launch(args)
File "/home/nathan/PycharmProjects/oc_for_maarch/src/main.py", line 105, in launch
q = process(args, path + file, Log, Separator, Config, Image, Ocr, Locale, WebService, q)
File "/home/nathan/PycharmProjects/oc_for_maarch/src/process/OCForMaarch.py", line 48, in process
Image.pdf_to_jpg(file + '[0]')
File "/home/nathan/PycharmProjects/oc_for_maarch/src/classes/Images.py", line 36, in pdf_to_jpg
self.save_img_with_wand(pdfName, self.jpgName)
File "/home/nathan/PycharmProjects/oc_for_maarch/src/classes/Images.py", line 46, in save_img_with_wand
with Img(filename=pdfName, resolution=300) as pic:
File "/home/nathan/Documents/OpenCV/lib/python3.7/site-packages/wand/image.py", line 6406, in __init__
self.read(filename=filename, resolution=resolution)
File "/home/nathan/Documents/OpenCV/lib/python3.7/site-packages/wand/image.py", line 6799, in read
raise WandRuntimeError(msg)
wand.exceptions.WandRuntimeError: MagickReadImage returns false, but did raise ImageMagick exception. This can occurs when a delegate is missing, or returns EXIT_SUCCESS without generating a raster.
我在网上查了一下,发现问题与ghostscript有关,但它已安装
我在使用 Python 3.7 的 Debian 10 和 Ubuntu 19.04 上遇到问题
编辑:如果我把分辨率设置为 100 而不是 300,我没有问题
【问题讨论】:
-
试过这些建议了吗? stackoverflow.com/questions/57271287/…
-
是的。我编辑我的帖子,因为如果我将分辨率设置为 100 而不是 300,我没有问题,所以我认为没有依赖性问题
-
听起来您可能需要编辑 policy.xml 文件以允许更多内存或映射空间。请参阅imagemagick.org/script/resources.php 上的 policy.xml
-
谢谢@fmw42 就是这样!将您的答案作为真实答案而不是在这里,以便我可以将其标记为正确答案;)