summaryrefslogtreecommitdiffstats
path: root/src/webenginequick
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginequick')
-rw-r--r--src/webenginequick/api/qquickwebengineview.cpp14
-rw-r--r--src/webenginequick/api/qquickwebengineview_p_p.h6
-rw-r--r--src/webenginequick/doc/src/webengineframe.qdoc24
3 files changed, 35 insertions, 9 deletions
diff --git a/src/webenginequick/api/qquickwebengineview.cpp b/src/webenginequick/api/qquickwebengineview.cpp
index f6bd38780..0ff182c7a 100644
--- a/src/webenginequick/api/qquickwebengineview.cpp
+++ b/src/webenginequick/api/qquickwebengineview.cpp
@@ -1318,16 +1318,17 @@ void QQuickWebEngineViewPrivate::runJavaScript(
}
void QQuickWebEngineViewPrivate::printToPdf(const QString &filePath, const QPageLayout &layout,
- const QPageRanges &ranges)
+ const QPageRanges &ranges, quint64 frameId)
{
- adapter->printToPDF(layout, ranges, filePath);
+ adapter->printToPDF(layout, ranges, filePath, frameId);
}
void QQuickWebEngineViewPrivate::printToPdf(
std::function<void(QSharedPointer<QByteArray>)> &&callback, const QPageLayout &layout,
- const QPageRanges &ranges)
+ const QPageRanges &ranges, quint64 frameId)
{
- adapter->printToPDFCallbackResult(std::move(callback), layout, ranges);
+ adapter->printToPDFCallbackResult(std::move(callback), layout, ranges, /*colorMode*/ true,
+ /*useCustomMargins*/ true, frameId);
}
void QQuickWebEngineViewPrivate::didPrintPageToPdf(const QString &filePath, bool success)
@@ -1586,7 +1587,7 @@ void QQuickWebEngineView::printToPdf(const QString& filePath, PrintedPageSizeId
QPageLayout pageLayout(layoutSize, layoutOrientation, QMarginsF(0.0, 0.0, 0.0, 0.0));
QPageRanges ranges;
d->ensureContentsAdapter();
- d->adapter->printToPDF(pageLayout, ranges, filePath);
+ d->printToPdf(filePath, pageLayout, ranges, WebContentsAdapter::kUseMainFrameId);
#else
Q_UNUSED(filePath);
Q_UNUSED(pageSizeId);
@@ -1613,7 +1614,8 @@ void QQuickWebEngineView::printToPdf(const QJSValue &callback, PrintedPageSizeId
callback.call(args);
};
- d->printToPdf(std::move(wrappedCallback), pageLayout, ranges);
+ d->printToPdf(std::move(wrappedCallback), pageLayout, ranges,
+ WebContentsAdapter::kUseMainFrameId);
#else
Q_UNUSED(pageSizeId);
Q_UNUSED(orientation);
diff --git a/src/webenginequick/api/qquickwebengineview_p_p.h b/src/webenginequick/api/qquickwebengineview_p_p.h
index 5a968aaa4..988a2f0b1 100644
--- a/src/webenginequick/api/qquickwebengineview_p_p.h
+++ b/src/webenginequick/api/qquickwebengineview_p_p.h
@@ -97,10 +97,10 @@ public:
const std::function<void(const QVariant &)> &callback) override;
void didFetchDocumentMarkup(quint64, const QString&) override { }
void didFetchDocumentInnerText(quint64, const QString&) override { }
- void printToPdf(const QString &filePath, const QPageLayout &layout,
- const QPageRanges &ranges) override;
+ void printToPdf(const QString &filePath, const QPageLayout &layout, const QPageRanges &ranges,
+ quint64 frameId) override;
void printToPdf(std::function<void(QSharedPointer<QByteArray>)> &&callback,
- const QPageLayout &layout, const QPageRanges &ranges) override;
+ const QPageLayout &layout, const QPageRanges &ranges, quint64 frameId) override;
void didPrintPageToPdf(const QString &filePath, bool success) override;
bool passOnFocus(bool reverse) override;
void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override;
diff --git a/src/webenginequick/doc/src/webengineframe.qdoc b/src/webenginequick/doc/src/webengineframe.qdoc
index a2368479a..7df4a1d2b 100644
--- a/src/webenginequick/doc/src/webengineframe.qdoc
+++ b/src/webenginequick/doc/src/webengineframe.qdoc
@@ -97,3 +97,27 @@
For more information about injecting scripts, see \l {Script Injection}.
For an alternative way to inject scripts, see WebEngineView::userScripts.
*/
+
+/*!
+ \qmlmethod void webEngineFrame::printToPdf(string filePath)
+
+ Prints the frame's current content to a PDF document and stores it
+ under \a filePath. The resulting document will have A4 page size and
+ portrait orientation.
+
+ This method issues an asynchronous request for printing the web page into a
+ PDF and returns immediately. To be informed about the result of the
+ request, connect to the signal \l WebEngineView::pdfPrintingFinished().
+
+ \sa WebEngineView::pdfPrintingFinished()
+*/
+
+/*!
+ \qmlmethod void webEngineFrame::printToPdf(variant callback)
+
+ Prints the frame's current content to a PDF document and returns it in a byte array. The
+ resulting document will have A4 page size and portrait orientation.
+
+ The \a callback must take a string parameter. This string will contain the document's data upon
+ successful printing and an empty string otherwise.
+*/