使用 Qt 5.5 或 5.6 打印网页的 HTML/内容

Posted

技术标签:

【中文标题】使用 Qt 5.5 或 5.6 打印网页的 HTML/内容【英文标题】:Print HTML/contents of a webpage with Qt 5.5 or 5.6 【发布时间】:2015-12-21 14:00:04 【问题描述】:

Qt 5.5 引入了 QWebEngine,它将取代 QWebKit。在 Qt 5.6 (LTS) 中,QWebKit 被移除,以便用户拥有可以使用 QWebEngine。迁移非常简单,除了一件事:打印网页。这没有实现,他们希望在 Qt 5.7 中拥有它(但可能更晚)。换句话说:Qt 的一个强制性功能已被删除,而没有提供替代品。

所以我的问题是:如何在最新版本的 Qt 中打印 html/网页内容?

QTextDocument 作为 HTML 内容的容器可以用于打印,但是太有限了 QWebEngine 不提供打印功能 执行 QWebEngineView->render(&printer) 是一个糟糕的解决方法,因为它只打印所显示页面的可见部分(当页面比屏幕大得多时)

Qt 中是否有可能推荐?或者任何其他可用于此并且支持图像、表格和 CSS 布局的(超薄)工具?

欢迎任何想法和建议!

【问题讨论】:

看到这个问题:***.com/questions/32711901/qwebengine-print-a-page/…,它解释了如何使用 QWebEngine 打印页面 【参考方案1】:

由于 Qt 支持的大量刺痛,我没有找到解决方案,但可以更新状态:

QWebKit 已经消失了,但从他们目前的计划来看,它不会在 Qt 5.6 中被删除。由于 QWebEngine 的打印功能最早将在 Qt 5.7 中提供,因此他们将 QWebKit 保留在其源代码包中。

但是:它只能作为源代码使用,因此必须手动编译才能使用它。更有趣的是:来自 Qt 的人并不确定 QWebKit 本身。有人说,源代码将可用,但不能保证它可以编译并与较新版本一起使用,另一人说,只要它被打包,它将保持可编译状态(参见http://blog.qt.io/blog/2015/12/18/qt-5-6-beta-released/ 的 cmets)

【讨论】:

以上是关于使用 Qt 5.5 或 5.6 打印网页的 HTML/内容的主要内容,如果未能解决你的问题,请参考以下文章

四周第三次课 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

扩展 Laravel 5.5/5.6 蓝图

mysql 5.5 5.6 5.7 8.0区别

如何在 Laravel 框架中降级? (5.6 至 5.5)

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

Qt 5.5 WebEngineView 和多点触控