From 7b5cecfc2e451bb78344dfd2cae97c1aae53a108 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 28 Aug 2011 12:27:10 -0400 Subject: [PATCH] Fixes for PDB-PDF input. --- src/calibre/ebooks/pdb/pdf/reader.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/pdb/pdf/reader.py b/src/calibre/ebooks/pdb/pdf/reader.py index 2a9636b083..0b3c2e09c5 100644 --- a/src/calibre/ebooks/pdb/pdf/reader.py +++ b/src/calibre/ebooks/pdb/pdf/reader.py @@ -10,7 +10,7 @@ __docformat__ = 'restructuredtext en' from calibre.ebooks.pdb.formatreader import FormatReader -from calibre.ptempfile import TemporaryFile +from calibre.ptempfile import PersistentTemporaryFile class Reader(FormatReader): @@ -23,10 +23,12 @@ class Reader(FormatReader): def extract_content(self, output_dir): self.log.info('Extracting PDF...') - with TemporaryFile() as pdf_n: - pdf = open(pdf_n, 'rwb') - for x in xrange(self.header.section_count()): - pdf.write(self.header.section_data(x)) + pdf = PersistentTemporaryFile('.pdf') + pdf.close() + pdf = open(pdf, 'wb') + for x in xrange(self.header.section_count()): + pdf.write(self.header.section_data(x)) + pdf.close() from calibre.customize.ui import plugin_for_input_format @@ -35,5 +37,4 @@ class Reader(FormatReader): if not hasattr(self.options, opt.option.name): setattr(self.options, opt.option.name, opt.recommended_value) - pdf.seek(0) - return pdf_plugin.convert(pdf, self.options, 'pdf', self.log, {}) + return pdf_plugin.convert(open(pdf, 'rb'), self.options, 'pdf', self.log, {})