From 4f5380f413a8a5e89ee57f301a9d6010eac92ad4 Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
Date: Fri, 6 Jul 2018 15:11:49 +0200
Subject: [PATCH] Add PrintMe example

This example shows how to do simple printing with
print preview.

Task-number: QTBUG-53745
Change-Id: I4b1adbb9847b72928a988b5687fb13c84bb987cd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
 .../webenginewidgets/printme/data/data.qrc    |   7 ++
 .../webenginewidgets/printme/data/icon.svg    |  24 ++++
 .../webenginewidgets/printme/data/index.html  |  24 ++++
 .../webenginewidgets/printme/data/style.css   |  72 +++++++++++
 .../printme/doc/images/printme-example.png    | Bin 0 -> 42074 bytes
 .../printme/doc/src/printme.qdoc              |  98 +++++++++++++++
 examples/webenginewidgets/printme/main.cpp    |  76 ++++++++++++
 .../webenginewidgets/printme/printhandler.cpp | 115 ++++++++++++++++++
 .../webenginewidgets/printme/printhandler.h   |  79 ++++++++++++
 examples/webenginewidgets/printme/printme.pro |   9 ++
 .../webenginewidgets/webenginewidgets.pro     |   7 +-
 11 files changed, 509 insertions(+), 2 deletions(-)
 create mode 100644 examples/webenginewidgets/printme/data/data.qrc
 create mode 100644 examples/webenginewidgets/printme/data/icon.svg
 create mode 100644 examples/webenginewidgets/printme/data/index.html
 create mode 100644 examples/webenginewidgets/printme/data/style.css
 create mode 100644 examples/webenginewidgets/printme/doc/images/printme-example.png
 create mode 100644 examples/webenginewidgets/printme/doc/src/printme.qdoc
 create mode 100644 examples/webenginewidgets/printme/main.cpp
 create mode 100644 examples/webenginewidgets/printme/printhandler.cpp
 create mode 100644 examples/webenginewidgets/printme/printhandler.h
 create mode 100644 examples/webenginewidgets/printme/printme.pro

diff --git a/examples/webenginewidgets/printme/data/data.qrc b/examples/webenginewidgets/printme/data/data.qrc
new file mode 100644
index 000000000..a9c76cc7e
--- /dev/null
+++ b/examples/webenginewidgets/printme/data/data.qrc
@@ -0,0 +1,7 @@
+<RCC>
+    <qresource prefix="/">
+        <file>index.html</file>
+        <file>style.css</file>
+        <file>icon.svg</file>
+    </qresource>
+</RCC>
diff --git a/examples/webenginewidgets/printme/data/icon.svg b/examples/webenginewidgets/printme/data/icon.svg
new file mode 100644
index 000000000..b90ff26dd
--- /dev/null
+++ b/examples/webenginewidgets/printme/data/icon.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+    width="94px" height="94px" viewBox="0 0 94 94" enable-background="new 0 0 94 94" xml:space="preserve">
+<g>
+    <circle fill="none" cx="47" cy="47" r="47"/>
+        <g>
+            <path fill="#46A2DA" d="M47,92.979c-11.779,0-23.559-4.484-32.526-13.451C-3.461,61.591-3.461,32.409,14.472,14.474
+                        C32.41-3.463,61.592-3.461,79.526,14.473c17.935,17.936,17.935,47.119,0.002,65.054l-0.002,0.001
+                        C70.559,88.495,58.779,92.979,47,92.979z"/>
+        </g>
+        <path fill="#80C342" d="M93,47C93,21.595,72.405,1,47,1C34.297,1,22.797,6.149,14.473,14.473l65.054,65.054
+                C87.851,71.203,93,59.703,93,47z"/>
+        <g>
+            <path fill="#46A2DA" d="M47,65c-4.808,0-9.328-1.873-12.728-5.272c-7.018-7.019-7.018-18.438,0-25.456
+                        C37.672,30.873,42.192,29,47,29s9.328,1.873,12.728,5.272c7.018,7.019,7.018,18.438,0,25.456C56.328,63.127,51.808,65,47,65z"/>
+            <path fill="#FFFFFF" d="M62.248,59.919c6.671-7.858,6.312-19.644-1.105-27.061C57.237,28.953,52.118,27,47,27
+                        c-5.118,0-10.237,1.953-14.142,5.858c-7.81,7.81-7.81,20.474,0,28.284C36.763,65.047,41.882,67,47,67
+                        c4.379,0,8.752-1.441,12.372-4.3L77.88,81.209c0.989-0.895,1.935-1.837,2.843-2.814L62.248,59.919z M35.686,58.314
+                        c-6.238-6.238-6.238-16.389,0-22.627C38.708,32.664,42.726,31,47,31c4.274,0,8.292,1.664,11.314,4.686
+                        c6.238,6.238,6.238,16.389,0,22.627C55.292,61.336,51.274,63,47,63C42.726,63,38.708,61.336,35.686,58.314z"/>
+        </g>
+</g>
+</svg>
diff --git a/examples/webenginewidgets/printme/data/index.html b/examples/webenginewidgets/printme/data/index.html
new file mode 100644
index 000000000..cf286e85a
--- /dev/null
+++ b/examples/webenginewidgets/printme/data/index.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang="en">
+   <head>
+      <meta charset="utf-8">
+      <title>PrintMe</title>
+      <link rel="stylesheet" type="text/css" href="style.css">
+      <script>
+      function printNow() {
+         window.print();
+      }
+      </script>
+   </head>
+   <body>
+      <form class="form">
+         <img class="logo" src="icon.svg" alt="qtwebengine">
+         <div class="header">
+            <h1>Hello Paper World!</h1>
+            <h2>Press Ctrl+p to print with print preview</h2>
+            <h2>Press Ctrl+Shift+p to print without print preview</h2>
+            <h2>Click the button to print using JavaScript</h2>
+            <p class="button" onclick="printNow()">Print Now</p>
+      </form>
+   </body>
+</html>
diff --git a/examples/webenginewidgets/printme/data/style.css b/examples/webenginewidgets/printme/data/style.css
new file mode 100644
index 000000000..cf6a2b7bf
--- /dev/null
+++ b/examples/webenginewidgets/printme/data/style.css
@@ -0,0 +1,72 @@
+html,body {
+     height:100%;
+     width:100%;
+     margin:0;
+}
+ body {
+     display:flex;
+}
+ .logo {
+     width: 75px;
+     height: 75px;
+     float: left;
+     margin: 20px 20px 0px 20px;
+     -webkit-animation:spin 8s linear infinite;
+}
+ @-webkit-keyframes spin {
+     100% {
+         -webkit-transform: rotate(360deg);
+    }
+}
+ .header {
+     display: inline
+}
+ .form {
+     width: 480px;
+     height: 170px;
+     background: -webkit-linear-gradient(bottom, #ddd, #fff);
+     border: 1px solid #999;
+     border-radius: 12px;
+     color: #46a;
+     font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
+     font-size: 14px;
+     font-style: italic;
+     font-weight: bold;
+     margin: auto;
+     padding: 10px;
+     position: relative;
+     line-height: 26px;
+     text-decoration: none;
+     -webkit-box-shadow: 0px 0px 5px #444;
+}
+ h1 {
+     padding-left:40px;
+     color: #46a2da;
+}
+ h2 {
+     color: #80c342;
+     font-size: 13px;
+     margin-top: -20px;
+}
+ span {
+     margin-left: 20px;
+}
+ .button{
+     display: inline-block;
+     background: #46a2da;
+     width: 100px;
+     height: 30px;
+     padding: 0px;
+     text-align: center;
+     font-weight: bold;
+     color: #ffffff;
+     text-decoration: none;
+     border: 1px solid #999;
+     margin-left: 190px;
+}
+ .button:hover {
+    background-color: #46a200
+}
+ .button:active {
+     background-color: #3e8e41;
+}
diff --git a/examples/webenginewidgets/printme/doc/images/printme-example.png b/examples/webenginewidgets/printme/doc/images/printme-example.png
new file mode 100644
index 0000000000000000000000000000000000000000..a636972fd5a1539ec41965305420d1810c92b86c
GIT binary patch
literal 42074
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
HOhEq&SNjX(

literal 0
HcmV?d00001

diff --git a/examples/webenginewidgets/printme/doc/src/printme.qdoc b/examples/webenginewidgets/printme/doc/src/printme.qdoc
new file mode 100644
index 000000000..d05d5147b
--- /dev/null
+++ b/examples/webenginewidgets/printme/doc/src/printme.qdoc
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+   \example webenginewidgets/printme
+    \title WebEngine Widgets PrintMe Example
+    \ingroup webengine-widgetexamples
+    \brief Demonstrates how to print web pages using Qt WebEngine Widgets.
+
+    \image printme-example.png
+
+    \e PrintMe demonstrates how to use the \l{QWebEnginePage} and
+    \l{QPrintDialog} classes to print a web page. Further, it shows how
+    to implement print preview by using the \l{QPrintPreviewDialog} class.
+    For completeness, it also illustrates how to trigger a printing request
+    within JavaScript.
+
+    \include examples-run.qdocinc
+
+    \section1 Simple HTML Page
+
+    In this example, we create an internal HTML page that is added as a resource
+    collection file (.qrc). The page shows only a small HTML message box that
+    explains how to trigger printing by using keyboard shortcuts or clicking a
+    button. The button has the JavaScript \c{onclick} event attribute that calls
+    the JavaScript \c{window.print()} function.
+
+    \quotefromfile webenginewidgets/printme/data/index.html
+    \skipto <html
+    \printuntil html>
+
+    \section1 Main Function
+
+    In the \c main function, we first instantiate a QWebEngineView and set the
+    URL to our internal HTML page. Next, we create a \c PrintHandler instance
+    and pass the requested page. For convenience, we also create keyboard
+    shortcuts that can be used to call a print dialog or print preview dialog.
+
+    \quotefromfile webenginewidgets/printme/main.cpp
+    \skipto QWebEngineView view
+    \printto return
+
+    \section1 Print Handler
+
+    In the \c{PrintHandler} function, we first implement \c{printPreview()},
+    where we instantiate \l{QPrinter} together with \l{QPrintPreviewDialog}.
+    We need the \l{QPrintPreviewDialog::paintRequested} handle to generate a
+    set of preview pages.
+
+    \quotefromfile webenginewidgets/printme/printhandler.cpp
+    \skipto PrintHandler::printPreview(
+    \printuntil /^\}/
+
+    Now we can implement the \c{PrintHandler::printDocument()} slot, which is
+    called in response to the \l{QPrintPreviewDialog::paintRequested} signal.
+
+    \quotefromfile webenginewidgets/printme/printhandler.cpp
+    \skipto PrintHandler::printDocument(
+    \printuntil /^\}/
+
+    To do actual painting on a printer, we call the \l{QWebEnginePage::print()}
+    function. Because this call blocks the main event loop, we need to create
+    a local one. We begin the local event loop by calling
+    \l{QEventLoop::exec()}. When the local event loop terminates,
+    we check for \c{result} and report any errors that occurred.
+
+    The last function we implement, \c{PrintHandler::print()}, is trivial,
+    because it simply opens \l{QPrintDialog} and calls the previously
+    implemented \c{PrintHandler::printDocument()}.
+
+    \quotefromfile webenginewidgets/printme/printhandler.cpp
+    \skipto PrintHandler::print(
+    \printuntil /^\}/
+*/
diff --git a/examples/webenginewidgets/printme/main.cpp b/examples/webenginewidgets/printme/main.cpp
new file mode 100644
index 000000000..e4d6d9dc8
--- /dev/null
+++ b/examples/webenginewidgets/printme/main.cpp
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of The Qt Company Ltd nor the names of its
+**     contributors may be used to endorse or promote products derived
+**     from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "printhandler.h"
+#include <QApplication>
+#include <QShortcut>
+#include <QWebEngineView>
+
+int main(int argc, char *argv[])
+{
+    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+    QApplication app(argc, argv);
+
+    QWebEngineView view;
+    view.setUrl(QUrl(QStringLiteral("qrc:/index.html")));
+    view.resize(1024, 750);
+    view.show();
+
+    PrintHandler handler;
+    handler.setPage(view.page());
+
+    auto printPreviewShortCut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_P), &view);
+    auto printShortCut = new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_P), &view);
+
+    QObject::connect(printPreviewShortCut, &QShortcut::activated, &handler, &PrintHandler::printPreview);
+    QObject::connect(printShortCut, &QShortcut::activated, &handler, &PrintHandler::print);
+
+    return app.exec();
+}
diff --git a/examples/webenginewidgets/printme/printhandler.cpp b/examples/webenginewidgets/printme/printhandler.cpp
new file mode 100644
index 000000000..d8c4fc177
--- /dev/null
+++ b/examples/webenginewidgets/printme/printhandler.cpp
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of The Qt Company Ltd nor the names of its
+**     contributors may be used to endorse or promote products derived
+**     from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "printhandler.h"
+#include <QEventLoop>
+#include <QPrintDialog>
+#include <QPrinter>
+#include <QPainter>
+#include <QPrintPreviewDialog>
+#include <QWebEnginePage>
+
+PrintHandler::PrintHandler(QObject *parent)
+    : QObject(parent)
+{
+
+}
+
+void PrintHandler::setPage(QWebEnginePage *page)
+{
+    Q_ASSERT(!m_page);
+    m_page = page;
+    connect(m_page, &QWebEnginePage::printRequested, this, &PrintHandler::printPreview);
+}
+
+void PrintHandler::print()
+{
+    QPrinter printer(QPrinter::HighResolution);
+    QPrintDialog dialog(&printer, m_page->view());
+    if (dialog.exec() != QDialog::Accepted)
+        return;
+    printDocument(&printer);
+}
+
+void PrintHandler::printDocument(QPrinter *printer)
+{
+    QEventLoop loop;
+    bool result;
+    auto printPreview = [&](bool success) { result = success; loop.quit(); };
+    m_page->print(printer, std::move(printPreview));
+    loop.exec();
+    if (!result) {
+        QPainter painter;
+        if (painter.begin(printer)) {
+            QFont font = painter.font();
+            font.setPixelSize(20);
+            painter.setFont(font);
+            painter.drawText(QPointF(10,25),
+                             QStringLiteral("Could not generate print preview."));
+
+            painter.end();
+        }
+    }
+}
+
+void PrintHandler::printPreview()
+{
+    if (!m_page)
+        return;
+    if (m_inPrintPreview)
+        return;
+    m_inPrintPreview = true;
+    QPrinter printer;
+    QPrintPreviewDialog preview(&printer, m_page->view());
+    connect(&preview, &QPrintPreviewDialog::paintRequested,
+            this, &PrintHandler::printDocument);
+    preview.exec();
+    m_inPrintPreview = false;
+}
diff --git a/examples/webenginewidgets/printme/printhandler.h b/examples/webenginewidgets/printme/printhandler.h
new file mode 100644
index 000000000..69b71f4a8
--- /dev/null
+++ b/examples/webenginewidgets/printme/printhandler.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of The Qt Company Ltd nor the names of its
+**     contributors may be used to endorse or promote products derived
+**     from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PRINTHANDLER_H
+#define PRINTHANDLER_H
+
+#include <QObject>
+
+QT_BEGIN_NAMESPACE
+class QPainter;
+class QPrinter;
+class QWebEnginePage;
+QT_END_NAMESPACE
+
+class PrintHandler : public QObject
+{
+    Q_OBJECT
+public:
+    PrintHandler(QObject *parent = nullptr);
+    void setPage(QWebEnginePage *page);
+
+public slots:
+    void print();
+    void printPreview();
+    void printDocument(QPrinter *printer);
+
+private:
+    QWebEnginePage *m_page = nullptr;
+    bool m_inPrintPreview = false;
+};
+
+#endif // PRINTHANDLER_H
diff --git a/examples/webenginewidgets/printme/printme.pro b/examples/webenginewidgets/printme/printme.pro
new file mode 100644
index 000000000..15b3959d5
--- /dev/null
+++ b/examples/webenginewidgets/printme/printme.pro
@@ -0,0 +1,9 @@
+QT += webenginewidgets printsupport
+
+HEADERS   = printhandler.h
+SOURCES   = main.cpp \
+            printhandler.cpp
+RESOURCES = data/data.qrc
+
+target.path = $$[QT_INSTALL_EXAMPLES]/webenginewidgets/printme
+INSTALLS += target
diff --git a/examples/webenginewidgets/webenginewidgets.pro b/examples/webenginewidgets/webenginewidgets.pro
index 20c7ead50..0d47aac80 100644
--- a/examples/webenginewidgets/webenginewidgets.pro
+++ b/examples/webenginewidgets/webenginewidgets.pro
@@ -1,5 +1,5 @@
 include($$QTWEBENGINE_OUT_ROOT/src/core/qtwebenginecore-config.pri) # workaround for QTBUG-68093
-QT_FOR_CONFIG += webenginecore
+QT_FOR_CONFIG += webenginecore webenginecore-private
 
 TEMPLATE=subdirs
 
@@ -7,7 +7,6 @@ SUBDIRS += \
     minimal \
     contentmanipulation \
     cookiebrowser \
-    html2pdf \
     simplebrowser \
     stylesheetbrowser \
     videoplayer \
@@ -16,6 +15,10 @@ SUBDIRS += \
 qtConfig(webengine-geolocation): SUBDIRS += maps
 qtConfig(webengine-webchannel): SUBDIRS += markdowneditor
 
+qtConfig(webengine-printing-and-pdf) {
+    SUBDIRS += printme html2pdf
+}
+
 qtConfig(webengine-spellchecker):!qtConfig(webengine-native-spellchecker):!cross_compile {
     SUBDIRS += spellchecker
 } else {
-- 
GitLab