From ff6a6ae9e4371a229e0c84116b6a42010b10b0df Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 29 Aug 2009 09:26:57 -0600 Subject: [PATCH] Fix #3338 (eReader not converting properly) --- src/calibre/ebooks/pdb/ereader/reader132.py | 7 +++++-- src/calibre/ebooks/pdb/ereader/reader202.py | 6 +++++- src/calibre/gui2/convert/pdb_input.py | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/pdb/ereader/reader132.py b/src/calibre/ebooks/pdb/ereader/reader132.py index d44eb2c561..98dbe13790 100644 --- a/src/calibre/ebooks/pdb/ereader/reader132.py +++ b/src/calibre/ebooks/pdb/ereader/reader132.py @@ -50,7 +50,7 @@ class Reader132(FormatReader): def __init__(self, header, stream, log, options): self.log = log self.encoding = options.input_encoding - + self.log.debug('132 byte header version found.') self.sections = [] @@ -105,7 +105,10 @@ class Reader132(FormatReader): if not os.path.exists(output_dir): os.makedirs(output_dir) - html = u'%s' % self.mi.title + title = self.mi.title + if not isinstance(title, unicode): + title = title.decode('utf-8', 'replace') + html = u'%s' % title pml = u'' for i in range(1, self.header_record.num_text_pages + 1): diff --git a/src/calibre/ebooks/pdb/ereader/reader202.py b/src/calibre/ebooks/pdb/ereader/reader202.py index 18281a208e..ce7ad1263a 100644 --- a/src/calibre/ebooks/pdb/ereader/reader202.py +++ b/src/calibre/ebooks/pdb/ereader/reader202.py @@ -92,8 +92,12 @@ class Reader202(FormatReader): self.log.debug('Extracting text page %i' % i) pml += self.get_text_page(i) + title = self.mi.title + if not isinstance(title, unicode): + title = title.decode('utf-8', 'replace') + html = u'%s%s' % \ - (self.mi.title, pml_to_html(pml)) + (title, pml_to_html(pml)) with CurrentDir(output_dir): with open('index.html', 'wb') as index: diff --git a/src/calibre/gui2/convert/pdb_input.py b/src/calibre/gui2/convert/pdb_input.py index cc7582c7f6..4b0ba73fda 100644 --- a/src/calibre/gui2/convert/pdb_input.py +++ b/src/calibre/gui2/convert/pdb_input.py @@ -13,7 +13,7 @@ class PluginWidget(Widget, Ui_Form): HELP = _('Options specific to')+' PDB '+_('input') def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'txt_input', + Widget.__init__(self, parent, 'pdb_input', ['single_line_paras']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id)