From 2ba85a0869b083259e3b5b3ff5cd09f920e53683 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 11 Oct 2015 22:35:48 +0530 Subject: [PATCH] DOCX Output: Ignore corrupted images in the input instead of erroring out on them. --- src/calibre/ebooks/docx/writer/images.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/docx/writer/images.py b/src/calibre/ebooks/docx/writer/images.py index 96682788a3..65c9da2fe7 100644 --- a/src/calibre/ebooks/docx/writer/images.py +++ b/src/calibre/ebooks/docx/writer/images.py @@ -49,7 +49,12 @@ class ImagesManager(object): item = self.oeb.manifest.hrefs.get(href) if item is None or not isinstance(item.data, bytes): return - width, height, fmt = identify_data(item.data) + try: + width, height, fmt = identify_data(item.data) + except Exception: + self.log.warning('Replacing corrupted image with blank: %s' % href) + item.data = I('blank.png', data=True, allow_user_override=False) + width, height, fmt = identify_data(item.data) image_fname = 'media/' + self.create_filename(href, fmt) image_rid = self.document_relationships.add_image(image_fname) self.images[href] = Image(image_rid, image_fname, width, height, fmt, item)