使用QPrintPreviewDialog的QWebEnginePage.print导致空预览
问题描述
我有一个程序,过去使用QWebKit
在对话框中显示和打印自定义生成的HTML报告,现在,我想将整个内容转换为QWebEngine
。到目前为止一切都很好,只有打印效果不好!
QWebView.print()
将整个HTML数据交给了QPrintPreviewDialog
,这根本不是问题。现在,根据我的理解,我认为我必须使用QWebEngineView.QWebEnginepage.print(printer object, callback)
来实现同样的目标。
不幸的是,到目前为止我试过的所有东西都不管用。QPrintPreviewDialog的预览窗格始终为空,打印完成后返回给回调的结果始终为FALSE-尽管打印机对象始终有效,即使在回调中也是如此。
我尝试了不同的方法,不知何故都奏效了,我想,QWebEnginePage.print()函数不知何故有错误,或者PyQt中有错误,但实际上我没有,可能是我做错了什么。
成功的解决方法(我不喜欢;-)):
不要使用
QPrintPreviewDialog
,而是通过QWebEngineView.QWebEnginePage.printToPDF(filename)
:Worked! 生成输出
生成临时
QTextedit
对象并通过QPrintPreviewDialog
打印:在我的情况下也可以使用,但格式不正确的HTML.
谁能告诉我,如果我在这里假设了什么错误,或者是否有关于如何使用QWebEngineView
通过QPrintPreviewDialog
打印HTML的下降示例?
解决方案
QtWebEngine当前不支持打印到打印预览,请参阅QTBUG-57982。不过,可以直接打印到QPrinter。
相关文章