При генерации PDF из HTML в Django с помощью PyQT5 сервер падает несколько раз. Почему?
При генерации PDF из HTML в Django с помощью PyQT5 приложению удается сгенерировать файл только несколько раз, а через некоторое время сервер падает. Почему?
Я хочу создать простую конечную точку, которая получает некоторые параметры от front и затем генерирует PDF файл. Я пробовал использовать pdfkit, weasyprint и PyPDF2, но я ищу что-то без внешних зависимостей, как wkhtmltopdf. Вот мой код:
class Utils():
@staticmethod
def generate_pdf(data):
#jinja2 template
template = templateEnv.get_template("template_nota_debito_jinja.html")
html = template.render(data)
temp_file_name = f"{STATIC_PATH}/temp_template.html"
path = f"{STATIC_PATH}/temp_template.html"
with open(temp_file_name, "w", encoding="utf8") as fh:
print(html)
fh.write(html)
try:
app = QApplication(sys.argv)
layout = QPageLayout()
layout.setPageSize(QPageSize(QPageSize.A4Extra))
layout.setOrientation(QPageLayout.Portrait)
loader = QtWebEngineWidgets.QWebEngineView()
loader.setZoomFactor(1)
loader.page().pdfPrintingFinished.connect( lambda *args:(app.exit()))
loader.load(QUrl.fromLocalFile(path))
def emit_pdf(finished):
#loader.show()
loader.page().printToPdf(f'{STATIC_PATH}/test.pdf', pageLayout=layout)
loader.loadFinished.connect(emit_pdf)
app.exec()
except Exception as e:
print(e)
finally:
os.remove(path)
return f'{STATIC_PATH}/test.pdf'
При первом и втором вызове API файл возвращается с сервера, как и ожидалось, но после этого приложение django просто завершает работу. Может ли кто-нибудь сказать что-нибудь об этом?