diff --git a/src/calibre/ebooks/pdf/html_writer.py b/src/calibre/ebooks/pdf/html_writer.py
index c61e140ff0..e4b37c438a 100644
--- a/src/calibre/ebooks/pdf/html_writer.py
+++ b/src/calibre/ebooks/pdf/html_writer.py
@@ -15,10 +15,11 @@ from html5_parser import parse
from io import BytesIO
from itertools import count, repeat
from qt.core import (
- QApplication, QMarginsF, QObject, QPageLayout, Qt, QTimer, QUrl, pyqtSignal
+ QApplication, QMarginsF, QObject, QPageLayout, Qt, QTimer, QUrl, pyqtSignal, sip
+)
+from qt.webengine import (
+ QWebEnginePage, QWebEngineProfile, QWebEngineUrlRequestInterceptor
)
-from qt.webengine import QWebEngineUrlRequestInterceptor
-from qt.webengine import QWebEnginePage, QWebEngineProfile
from calibre import detect_ncpus, human_readable, prepare_string_for_xml
from calibre.constants import __version__, iswindows
@@ -226,7 +227,8 @@ class Renderer(QWebEnginePage):
def printing_done(self, pdf_data):
self.working = False
- self.work_done.emit(self, bytes(pdf_data))
+ if not sip.isdeleted(self):
+ self.work_done.emit(self, bytes(pdf_data))
def convert_html_file(self, path, page_layout, settle_time=0, wait_for_title=None):
self.working = True