diff options
author | Gehad elrobey <gehadelrobey@gmail.com> | 2015-08-11 22:50:27 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2015-08-15 15:04:11 +0300 |
commit | 59eddc62594d2c8003349812456befeef82e1bc2 (patch) | |
tree | 643223aba830729321b8a5e69aa257efd929a874 /printer.cpp | |
parent | 0ced68f15d57fe7487ec7286fb0e2358dd604092 (diff) | |
download | subsurface-59eddc62594d2c8003349812456befeef82e1bc2.tar.gz |
Printing: export border to templates
As there is a problem with sizing the borders in QWebView, "vw" sizing is not
working as supposed with border-width, As a workaround we export border-width
dynamically, so that border-width is relatively the same for all page sizes.
The border-width is equal to the page width / 1000 which gives a nice range
for borders for A0 - A5 papers, Also prevent drawing zero pixel borders
and use 1 px borders as the minimum border.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Diffstat (limited to 'printer.cpp')
-rw-r--r-- | printer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/printer.cpp b/printer.cpp index 635778042..115b17526 100644 --- a/printer.cpp +++ b/printer.cpp @@ -3,6 +3,7 @@ #include "statistics.h" #include "helpers.h" +#include <algorithm> #include <QtWebKitWidgets> #include <QPainter> #include <QWebElementCollection> @@ -150,6 +151,8 @@ void Printer::print() pageSize.setWidth(printerPtr->pageRect(QPrinter::Inch).width() * dpi); webView->page()->setViewportSize(pageSize); webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); + // export border width with at least 1 pixel + templateOptions->border_width = std::max(1, pageSize.width() / 1000); webView->setHtml(t.generate()); if (printOptions->color_selected && printerPtr->colorMode()) { printerPtr->setColorMode(QPrinter::Color); |