diff options
Diffstat (limited to 'src/webenginequick')
| -rw-r--r-- | src/webenginequick/api/qquickwebengineview.cpp | 14 | ||||
| -rw-r--r-- | src/webenginequick/api/qquickwebengineview_p_p.h | 6 | ||||
| -rw-r--r-- | src/webenginequick/doc/src/webengineframe.qdoc | 24 |
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. +*/ |
