summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2018-01-22 15:49:16 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-23 16:29:49 +0000
commit3cec2ccb0ffdd41a41ab55d4c1ba88d4866e71d1 (patch)
tree8bd6a7097dfcc70b68dd9fada419080e8ae21b7a /src/webenginewidgets
parentdabc1069d6c39bd8342b446361226b63bd571cf9 (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.cpp7
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();
}