From efac50df463a5081dac925023356c31b6880eaf2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 2 Sep 2012 15:13:12 +0530 Subject: [PATCH] PDF Output: Do not error out when generating an outline which points to pages that have been removed. Fixes #1044799 (Private bug) --- src/calibre/ebooks/pdf/outline_writer.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/calibre/ebooks/pdf/outline_writer.py b/src/calibre/ebooks/pdf/outline_writer.py index c89f2d9f41..64d11f0208 100644 --- a/src/calibre/ebooks/pdf/outline_writer.py +++ b/src/calibre/ebooks/pdf/outline_writer.py @@ -47,14 +47,19 @@ class Outline(object): for child in toc: page, ypos = self.get_pos(child) text = child.text or _('Page %d')%page + if page >= self.page_count: + page = self.page_count - 1 cn = parent.create(text, page, True) self.add_children(child, cn) def __call__(self, doc): self.pos_map = dict(self.pos_map) + self.page_count = doc.page_count() for child in self.toc: page, ypos = self.get_pos(child) text = child.text or _('Page %d')%page + if page >= self.page_count: + page = self.page_count - 1 node = doc.create_outline(text, page) self.add_children(child, node)