从QWebKit到QWebEngine的迁移似乎比Qt人员声称的要复杂得多。使用QWebKit,我可以很容易地通过
QWebView->print(&printer);对于QWebEngine类,QWebEngine视图不提供方法print()。他们的浏览器示例使用了一个名为QWebEngineFrame的类,它提供了一个方法print() --但是整个QWebEngineFrame并没有在任何地方定义!
因此,我的问题是:如何使用QWebEngine打印页面
发布于 2015-09-22 08:40:38
我认为使用QWebEngineView::render方法是正确的,因为QWebEngineView是一个QWidget。它接受油漆设备作为第一个参数,您可以在那里传递QPrinter进行打印。
Update:如果您可以使用Qt的最新版本,那么在QT5.8中添加了一个用于打印页面的新功能:
void QWebEnginePage::print(QPrinter *printer, FunctorOrLambda resultCallback);实际上,它首先打印到具有QPrinter设置的临时PDF。
下面是Qt 文档的链接。
您也可以在我们的博客中了解到这一点。
发布于 2016-05-05 12:17:01
我提供以下代码(一段时间):
QTextEdit *textEdit = new QTextEdit;
ui.myWebView->page()->toHtml([textEdit](const QString &result){ textEdit->setHtml(result); });
textEdit->print(somerinter);
textEdit->deleteLater();发布于 2016-07-13 12:25:00
Qt5.7包括QWebEngine的to文件中的打印支持。
使用printToPdf函数在pdf文件中导出当前页面。示例:
const QString fileName = QFileDialog::getSaveFileName(0,
tr("Save pdf"),
".",
tr("PDF Files (*.pdf)"));
if (fileName.isEmpty()) {
return;
}
ui->webView->page()->printToPdf(fileName);https://stackoverflow.com/questions/32711901
复制相似问题