QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览

Posted

技术标签:

【中文标题】QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览【英文标题】:QWebEnginePage.print with QPrintPreviewDialog results in empty preview 【发布时间】:2017-04-07 14:51:31 【问题描述】:

我有一个程序曾经使用QWebKit 在对话框中显示和打印自定义生成的 html 报告,现在,我想将整个内容转换为 QWebEngine。到目前为止一切正常,只有打印不行!

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

遗憾的是,到目前为止我尝试的所有方法都没有奏效。 QPrintPreviewDialog 的预览窗格始终保持空白,打印完成后返回给回调的结果始终为 False - 尽管打印机对象始终有效,即使在回调中也是如此。

我尝试了不同的东西,它们以某种方式起作用,因此我认为 QWebEnginePage.print() 函数在某种程度上存在错误,或者 PyQt 中存在错误,但事实上,我没有,也许是我在做某事错了。

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

    不要使用QPrintPreviewDialog,而是通过QWebEngineView.QWebEnginePage.printToPDF(filename)生成输出:工作!

    生成一个临时的QTextedit 对象并通过QPrintPreviewDialog 打印:也可以,但在我的情况下HTML 格式错误...

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

非常感谢!让我们希望它会尽快修复它!在那之前,我使用 QTextedit 解决方法。

以上是关于QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式状态机编程-QP状态机框架与常见状态机方法

H.264量化参数QP和量化步长Qstep

QP01 BAPIQP02 BDC

QP移植

QP移植

SST-超级简单任务调度器结构分析