mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
PDF Output: Handle input epub documents with filenames starting with a dot. Also do not hang if there is an unhandled error. Fixes #1040603 (Hangs when converting from epub to pdf)
This commit is contained in:
parent
755d262b67
commit
259ea7b4c6
@ -35,6 +35,8 @@ def load_html(path, view, codec='utf-8', mime_type=None,
|
||||
from PyQt4.Qt import QUrl, QByteArray
|
||||
if mime_type is None:
|
||||
mime_type = guess_type(path)[0]
|
||||
if not mime_type:
|
||||
mime_type = 'text/html'
|
||||
if path_is_html:
|
||||
html = path
|
||||
else:
|
||||
|
@ -151,16 +151,22 @@ class PDFWriter(QObject): # {{{
|
||||
self.combine_queue = []
|
||||
self.out_stream = out_stream
|
||||
|
||||
self.render_succeeded = False
|
||||
QMetaObject.invokeMethod(self, "_render_book", Qt.QueuedConnection)
|
||||
self.loop.exec_()
|
||||
|
||||
if not self.render_succeeded:
|
||||
raise Exception('Rendering HTML to PDF failed')
|
||||
|
||||
@QtCore.pyqtSignature('_render_book()')
|
||||
def _render_book(self):
|
||||
try:
|
||||
if len(self.render_queue) == 0:
|
||||
self._write()
|
||||
else:
|
||||
self._render_next()
|
||||
except:
|
||||
self.logger.exception('Rendering failed')
|
||||
self.loop.exit(1)
|
||||
|
||||
def _render_next(self):
|
||||
item = unicode(self.render_queue.pop(0))
|
||||
@ -252,6 +258,7 @@ class PDFWriter(QObject): # {{{
|
||||
for page in inputPDF.pages:
|
||||
outPDF.addPage(page)
|
||||
outPDF.write(self.out_stream)
|
||||
self.render_succeeded = True
|
||||
finally:
|
||||
self._delete_tmpdir()
|
||||
self.loop.exit(0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user