diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2018-01-22 15:49:16 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-01-23 16:29:49 +0000 |
commit | 3cec2ccb0ffdd41a41ab55d4c1ba88d4866e71d1 (patch) | |
tree | 8bd6a7097dfcc70b68dd9fada419080e8ae21b7a /src/webenginewidgets | |
parent | dabc1069d6c39bd8342b446361226b63bd571cf9 (diff) |
Use correct margins when printing with QPrinter
Margins were applied two times: PrintViewManagerQt included them when
rendering to a temporary PDF, then QPrinter applied them when printing.
This patch changes the parameters of PDF generation to not contain the
area of margins. This way the user-provided QPrinter can handle it
without any kind of customization.
Task-number: QTBUG-65715
Change-Id: Ie32785857e5195aa21c6e2ccb7ebd1e6f6ecd954
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 438e3ea24..3f585cf78 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -106,8 +106,8 @@ static bool printPdfDataOnPrinter(const QByteArray& data, QPrinter& printer) return false; } - QRect printerPageRect = printer.pageRect(); - PdfiumDocumentWrapperQt pdfiumWrapper(data.constData(), data.size(), printerPageRect.size()); + QSize pageSize = printer.pageRect().size(); + PdfiumDocumentWrapperQt pdfiumWrapper(data.constData(), data.size(), pageSize); int toPage = printer.toPage(); int fromPage = printer.fromPage(); @@ -155,7 +155,8 @@ static bool printPdfDataOnPrinter(const QByteArray& data, QPrinter& printer) if (currentImage.isNull()) return false; - painter.drawImage(printerPageRect, currentImage, currentImage.rect()); + // Painting operations are automatically clipped to the bounds of the drawable part of the page. + painter.drawImage(QRect(0, 0, pageSize.width(), pageSize.height()), currentImage, currentImage.rect()); if (printedPages < pageCopies - 1) printer.newPage(); } |