From 3491ab4ab15a1aa8c1d221958b6fbcfbcd042f18 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 11 Nov 2012 13:45:24 +0530 Subject: [PATCH] E-book viewer: When printing, resepect the specified page range. Fixes #1074220 (Trying to select the page to print will actually print the whole book) --- src/calibre/gui2/viewer/printing.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/viewer/printing.py b/src/calibre/gui2/viewer/printing.py index f860edb12c..95a2fcdce5 100644 --- a/src/calibre/gui2/viewer/printing.py +++ b/src/calibre/gui2/viewer/printing.py @@ -54,6 +54,8 @@ class Printing(QObject): pr.height()/zoomy)) evaljs = self.mf.evaluateJavaScript loop = QEventLoop(self) + pagenum = 0 + from_, to = printer.fromPage(), printer.toPage() first = True for path in self.iterator.spine: @@ -74,10 +76,12 @@ class Printing(QObject): ''') while True: - if not first: - printer.newPage() - first = False - self.mf.render(painter) + pagenum += 1 + if (pagenum >= from_ and (to == 0 or pagenum <= to)): + if not first: + printer.newPage() + first = False + self.mf.render(painter) nsl = evaljs('paged_display.next_screen_location()').toInt() if not nsl[1] or nsl[0] <= 0: break evaljs('window.scrollTo(%d, 0)'%nsl[0])