I want to open a pdf
file and get only the first page and save it as an image.
I've used this solution and it worked perfect. It still works in my local environment, but it fails to work in Travis recently.
So yes, this code is from my unittest
and I'm trying to run it in Travis.
I have a test pdf
file and I want to open it:
import os
from wand.image import Image
root_path = 'some/correct/path'
filename = 'two_page_pdf.pdf'
full_path = os.path.join(root_parg, filename)
Image(file=open(full_path, mode='rb'), resolution=300) # Error!!!
-----------------------------------------------
DelegateError
Traceback (most recent call last)
<ipython-input-2-1b1fd9537a14> in <module>()
----> 1 Image(file=open(full_path, mode='rb'), resolution=300)
~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/image.py in __init__(self, image, blob, file, filename, format, width, height, depth, background, resolution)
2738 b'buffer.' + format)
2739 if file is not None:
-> 2740 self.read(file=file, resolution=resolution)
2741 elif blob is not None:
2742 self.read(blob=blob, resolution=resolution)
~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/image.py in read(self, file, filename, blob, resolution)
2820 r = library.MagickReadImage(self.wand, filename)
2821 if not r:
-> 2822 self.raise_exception()
2823
2824 def close(self):
~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/resource.py in raise_exception(self, stacklevel)
220 warnings.warn(e, stacklevel=stacklevel + 1)
221 elif isinstance(e, Exception):
--> 222 raise e
223
224 def __enter__(self):
DelegateError: Postscript delegate failed `/tmp/magick-5ypXvY6l': No such file or directory @ error/pdf.c/ReadPDFImage/677
Check file:
os.path.isfile(full_path) == True
len(open(full_path, mode='rb').read()) == 18386
Env:
- python 3.5.3
- Wand 0.4.4
What is wrong? I'm stuck. Help please
UPD 1:
Imagemagick pack seems to be involved in this! Last test has passed when it was version 8:6.6.9.7-5ubuntu3.9
and it is stopped working after update to 8:6.7.7.10-6ubuntu3.9
UPD 2:
.travis.yml
file.
language: python
sudo: false
cache: pip
python: "3.5"
services:
- rabbitmq
addons:
apt:
packages:
- imagemagick
- python-enchant