From 9b7f64d3c8eb7f35e4e2ecd18b12606cfadf2ac1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 17 Nov 2010 09:35:57 -0700 Subject: [PATCH] EPUB Output: Do not raise an error for invalid embedded fonts in the input document. Fixes #7567 (operation failed) --- src/calibre/ebooks/epub/output.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py index 952559a9e2..17f6eb9f46 100644 --- a/src/calibre/ebooks/epub/output.py +++ b/src/calibre/ebooks/epub/output.py @@ -241,9 +241,12 @@ class EPUBOutput(OutputFormatPlugin): self.log.debug('Encrypting font:', uri) with open(path, 'r+b') as f: data = f.read(1024) - f.seek(0) - for i in range(1024): - f.write(chr(ord(data[i]) ^ key[i%16])) + if len(data) >= 1024: + f.seek(0) + for i in range(1024): + f.write(chr(ord(data[i]) ^ key[i%16])) + else: + self.log.warn('Font', path, 'is invalid, ignoring') if not isinstance(uri, unicode): uri = uri.decode('utf-8') fonts.append(u'''