Elmi Elmi - 16 days ago 9
C++ Question

QWebEngine: print a page?

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
?

Answer

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.

Comments