diff --git a/src/calibre/ebooks/conversion/plugins/comic_input.py b/src/calibre/ebooks/conversion/plugins/comic_input.py index f0ef123aaf..ed252b2922 100644 --- a/src/calibre/ebooks/conversion/plugins/comic_input.py +++ b/src/calibre/ebooks/conversion/plugins/comic_input.py @@ -185,8 +185,11 @@ class ComicInput(InputFormatPlugin): pages = self.get_pages(fname, cdir) if not pages: continue - wrappers = self.create_wrappers(pages) - comics.append((title, pages, wrappers)) + if self.for_viewer: + comics.append((title, pages, [self.create_viewer_wrapper(pages)])) + else: + wrappers = self.create_wrappers(pages) + comics.append((title, pages, wrappers)) if not comics: raise ValueError('No comic pages found in %s'%stream.name) @@ -265,3 +268,38 @@ class ComicInput(InputFormatPlugin): f.write(wrapper.encode('utf-8')) wrappers.append(page) return wrappers + + def create_viewer_wrapper(self, pages): + from calibre.ebooks.oeb.base import XHTML_NS + + def page(src): + return ''.format(os.path.basename(src)) + + pages = '\n'.join(map(page, pages)) + base = os.path.dirname(pages[0]) + wrapper = ''' + + + + + + + %s + + + ''' % (XHTML_NS, pages) + path = os.path.join(base, 'wrapper.xhtml') + with open(path, 'wb') as f: + f.write(wrapper.encode('utf-8')) + return path