The migration from QWebKit
to QWebEngine
seems to be much more complicated than Qt guys claimed. With QWebKit I could print a webpage easily via
QWebView->print(&printer);
With QWebEngine
class QWebEngine
view does not provide a method print()
. Their browser example uses a class named QWebEngineFrame
which offers a method print()
- but the whole QWebEngineFrame
is not defined anywhere!
So my question: how do I print a page using QWebEngine
?
I think the correct way to use QWebEngineView::render
method because QWebEngineView
is a QWidget
. It accepts paint device as a first argument and you may pass QPrinter
there for printing.
Update: If you can use the latest version of Qt, in Qt 5.8 a new function for printing page was added:
void QWebEnginePage::print(QPrinter *printer, FunctorOrLambda resultCallback);
Actually it first prints to temp PDF with QPrinter
settings.
Here is the link to Qt docs.
You can read about this in our blog also.