【发布时间】:2020-02-14 21:33:27
【问题描述】:
我正在编写一个程序,该程序使用从 PDF 转换为 HTML 的通用模板来为个人创建个性化报告。为了将最终的 HTML 文件转换回 PDF,我使用了 PyQT5 及其 printToPdf 方法。它曾经完美地工作过,但程序挂起,直到我关闭打开的小部件视图,此时它会出现段错误并结束整个 python 程序。如何以编程方式和平地关闭程序,以便我可以一次性渲染所有 HTML?也许有什么方法可以不让线程放弃到小部件?
这是我当前的代码。
for htmlFileAsString in files:
app = QtWidgets.QApplication(sys.argv)
loader = QtWebEngineWidgets.QWebEngineView()
loader.setZoomFactor(1)
loader.setHtml(htmlFileAsString)
loader.page().pdfPrintingFinished.connect(
lambda *args: print('finished:', args))
def emit_pdf(finished):
loader.show()
loader.page().printToPdf('output/' + name + '/1.pdf')
loader.loadFinished.connect(emit_pdf)
app.exec()
【问题讨论】:
-
loop在哪里? -
我提供的代码 sn-p 应该是循环的主体,每个循环都将一个新的 html 文件转换为 pdf。我将进行编辑以澄清。
标签: python html pdf pyqt pyqt5