diff --git a/src/calibre/ebooks/pdf/html_writer.py b/src/calibre/ebooks/pdf/html_writer.py index c9a57f745b..de025f47be 100644 --- a/src/calibre/ebooks/pdf/html_writer.py +++ b/src/calibre/ebooks/pdf/html_writer.py @@ -374,7 +374,7 @@ class PDFOutlineRoot(object): return self.root_item -def add_toc(pdf_parent, toc_parent, anchor_locations, name_anchor_map): +def add_toc(pdf_parent, toc_parent, anchor_locations, name_anchor_map, log): for child in toc_parent: title, frag = child.title, child.frag try: @@ -383,10 +383,11 @@ def add_toc(pdf_parent, toc_parent, anchor_locations, name_anchor_map): else: loc = anchor_locations[frag] except Exception: + log.warn('Could not find anchor location for ToC entry: {} with href: {}'.format(title, frag)) loc = AnchorLocation(1, 0, 0, 0) pdf_child = pdf_parent.create(title, loc.pagenum, True, loc.left, loc.top, loc.zoom) if len(child): - add_toc(pdf_child, child, anchor_locations, name_anchor_map) + add_toc(pdf_child, child, anchor_locations, name_anchor_map, log) def convert(opf_path, opts, metadata=None, output_path=None, log=default_log, cover_data=None): @@ -423,7 +424,7 @@ def convert(opf_path, opts, metadata=None, output_path=None, log=default_log, co fix_links(pdf_doc, anchor_locations, name_anchor_map, opts.pdf_mark_links, log) if toc and len(toc): - add_toc(PDFOutlineRoot(pdf_doc), toc, anchor_locations, name_anchor_map) + add_toc(PDFOutlineRoot(pdf_doc), toc, anchor_locations, name_anchor_map, log) if cover_data: add_cover(pdf_doc, cover_data, page_layout, opts)