使用QPrintPreviewDialog的QWebEnginePage.print导致空预览

问题描述

我有一个程序,过去使用QWebKit在对话框中显示和打印自定义生成的HTML报告,现在,我想将整个内容转换为QWebEngine。到目前为止一切都很好,只有打印效果不好!

到目前为止,我使用QWebView.print()将整个HTML数据交给了QPrintPreviewDialog,这根本不是问题。现在,根据我的理解,我认为我必须使用QWebEngineView.QWebEnginepage.print(printer object, callback)来实现同样的目标。

不幸的是,到目前为止我试过的所有东西都不管用。QPrintPreviewDialog的预览窗格始终为空,打印完成后返回给回调的结果始终为FALSE-尽管打印机对象始终有效,即使在回调中也是如此。

我尝试了不同的方法,不知何故都奏效了,我想,QWebEnginePage.print()函数不知何故有错误,或者PyQt中有错误,但实际上我没有,可能是我做错了什么。

成功的解决方法(我不喜欢;-)):

  1. 不要使用QPrintPreviewDialog,而是通过QWebEngineView.QWebEnginePage.printToPDF(filename):Worked!

  2. 生成输出
  3. 生成临时QTextedit对象并通过QPrintPreviewDialog打印:在我的情况下也可以使用,但格式不正确的HTML.

谁能告诉我,如果我在这里假设了什么错误,或者是否有关于如何使用QWebEngineView通过QPrintPreviewDialog打印HTML的下降示例?


解决方案

QtWebEngine当前不支持打印到打印预览,请参阅QTBUG-57982。不过,可以直接打印到QPrinter。

相关文章