首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QWebEngine:打印一页?

QWebEngine:打印一页?
EN

Stack Overflow用户
提问于 2015-09-22 08:20:13
回答 4查看 8.3K关注 0票数 10

QWebKitQWebEngine的迁移似乎比Qt人员声称的要复杂得多。使用QWebKit,我可以很容易地通过

代码语言:javascript
复制
QWebView->print(&printer);

对于QWebEngine类,QWebEngine视图不提供方法print()。他们的浏览器示例使用了一个名为QWebEngineFrame的类,它提供了一个方法print() --但是整个QWebEngineFrame并没有在任何地方定义!

因此,我的问题是:如何使用QWebEngine打印页面

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-22 08:40:38

我认为使用QWebEngineView::render方法是正确的,因为QWebEngineView是一个QWidget。它接受油漆设备作为第一个参数,您可以在那里传递QPrinter进行打印。

Update:如果您可以使用Qt的最新版本,那么在QT5.8中添加了一个用于打印页面的新功能:

代码语言:javascript
复制
void QWebEnginePage::print(QPrinter *printer, FunctorOrLambda resultCallback);

实际上,它首先打印到具有QPrinter设置的临时PDF。

下面是Qt 文档的链接。

您也可以在我们的博客中了解到这一点。

票数 10
EN

Stack Overflow用户

发布于 2016-05-05 12:17:01

我提供以下代码(一段时间):

代码语言:javascript
复制
    QTextEdit *textEdit = new QTextEdit;
    ui.myWebView->page()->toHtml([textEdit](const QString &result){ textEdit->setHtml(result); });
    textEdit->print(somerinter);
    textEdit->deleteLater();
票数 3
EN

Stack Overflow用户

发布于 2016-07-13 12:25:00

Qt5.7包括QWebEngine的to文件中的打印支持。

使用printToPdf函数在pdf文件中导出当前页面。示例:

代码语言:javascript
复制
const QString fileName = QFileDialog::getSaveFileName(0,
                                                tr("Save pdf"),
                                                ".",
                                                tr("PDF Files (*.pdf)"));
if (fileName.isEmpty()) {
    return;
}
ui->webView->page()->printToPdf(fileName);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32711901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档