EPUB Input:Fix handling of user specified cover. Also set --page-breaks-before to / by default for EPUB input, since EPUB files typically already have the needed page breaks

This commit is contained in:
Kovid Goyal 2009-07-13 17:11:21 -06:00
parent 8e754b3245
commit 272437e901
2 changed files with 11 additions and 7 deletions

View File

@ -8,7 +8,7 @@ from itertools import cycle
from lxml import etree
from calibre.customize.conversion import InputFormatPlugin
from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation
class EPUBInput(InputFormatPlugin):
@ -17,6 +17,8 @@ class EPUBInput(InputFormatPlugin):
description = 'Convert EPUB files (.epub) to HTML'
file_types = set(['epub'])
recommendations = set([('page_breaks_before', '/', OptionRecommendation.MED)])
@classmethod
def decrypt_font(cls, key, path):
raw = open(path, 'rb').read()

View File

@ -87,6 +87,7 @@ class MergeMetadata(object):
if cover_id is not None:
m.add('cover', cover_id)
def set_cover(self, mi, prefer_metadata_cover):
cdata = ''
if mi.cover and os.access(mi.cover, os.R_OK):
@ -94,12 +95,13 @@ class MergeMetadata(object):
elif mi.cover_data and mi.cover_data[-1]:
cdata = mi.cover_data[1]
id = None
if 'cover' in self.oeb.guide:
href = self.oeb.guide['cover'].href
id = self.oeb.manifest.hrefs[href].id
if not prefer_metadata_cover and cdata:
self.oeb.manifest.hrefs[href]._data = cdata
elif cdata:
old_cover = self.oeb.guide.remove('cover')
self.oeb.guide.remove('titlepage')
if old_cover is not None:
if old_cover.href in self.oeb.manifest.hrefs:
item = self.oeb.manifest.hrefs[old_cover.href]
self.oeb.manifest.remove(item)
if cdata:
id, href = self.oeb.manifest.generate('cover', 'cover.jpg')
self.oeb.manifest.add(id, href, 'image/jpeg', data=cdata)
self.oeb.guide.add('cover', 'Cover', href)