使用 Qt 5.5 或 5.6 打印网页的 HTML/contents
Print HTML/contents of a webpage with Qt 5.5 or 5.6
Qt 5.5 引入了 QWebEngine,它将取代 QWebKit。在 Qt 5.6 (LTS) 中,QWebKit 被删除,因此用户 必须 使用 QWebEngine。迁移非常简单,除了一件事:打印网页。这没有实现,他们希望在 Qt 5.7 中使用它(但也许更晚)。换句话说:Qt 的一个强制性功能已被删除而没有提供替代品。
所以我的问题是:如何在最新版本的 Qt 中打印 HTML/webpage 内容?
- 作为 HTML 内容容器的 QTextDocument 可用于打印,但限制太多
- QWebEngine 不提供打印功能
- 执行 QWebEngineView->render(&printer) 是一个糟糕的解决方法,因为它只打印显示页面的可见部分(即使页面比屏幕大得多)
Qt有没有可以推荐的?或者任何其他可用于此且支持图像、表格和 CSS 布局的(苗条)工具?
欢迎任何想法和建议!
由于 Qt-support 的问题,我没有找到解决方案,但可以更新状态:
QWebKit 已经消失,但根据他们目前的计划,它不会在 Qt 5.6 中被删除。由于 QWebEngine 的打印功能最早会在 Qt 5.7 中提供,因此他们将在源码包中保留 QWebKit。
但是:它将仅作为源代码提供,因此必须手动编译才能使用。更有趣的是:Qt 的人对 QWebKit 本身并不确定。一个说,源代码将可用,但不能保证它可以编译并与更新的版本一起工作,另一个说,只要它被打包,它就会保持可编译状态(参见 http://blog.qt.io/blog/2015/12/18/qt-5-6-beta-released/ 的评论)
Qt 5.5 引入了 QWebEngine,它将取代 QWebKit。在 Qt 5.6 (LTS) 中,QWebKit 被删除,因此用户 必须 使用 QWebEngine。迁移非常简单,除了一件事:打印网页。这没有实现,他们希望在 Qt 5.7 中使用它(但也许更晚)。换句话说:Qt 的一个强制性功能已被删除而没有提供替代品。
所以我的问题是:如何在最新版本的 Qt 中打印 HTML/webpage 内容?
- 作为 HTML 内容容器的 QTextDocument 可用于打印,但限制太多
- QWebEngine 不提供打印功能
- 执行 QWebEngineView->render(&printer) 是一个糟糕的解决方法,因为它只打印显示页面的可见部分(即使页面比屏幕大得多)
Qt有没有可以推荐的?或者任何其他可用于此且支持图像、表格和 CSS 布局的(苗条)工具?
欢迎任何想法和建议!
由于 Qt-support 的问题,我没有找到解决方案,但可以更新状态:
QWebKit 已经消失,但根据他们目前的计划,它不会在 Qt 5.6 中被删除。由于 QWebEngine 的打印功能最早会在 Qt 5.7 中提供,因此他们将在源码包中保留 QWebKit。
但是:它将仅作为源代码提供,因此必须手动编译才能使用。更有趣的是:Qt 的人对 QWebKit 本身并不确定。一个说,源代码将可用,但不能保证它可以编译并与更新的版本一起工作,另一个说,只要它被打包,它就会保持可编译状态(参见 http://blog.qt.io/blog/2015/12/18/qt-5-6-beta-released/ 的评论)