From 194bda9f3b14b7d63de9f317182cc9403ec18f24 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 14 Feb 2016 11:37:58 +0530 Subject: [PATCH] Debug output for which fonts are used by the PDF engine --- src/calibre/ebooks/pdf/render/engine.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/pdf/render/engine.py b/src/calibre/ebooks/pdf/render/engine.py index c54b05707c..c4b8a16c9e 100644 --- a/src/calibre/ebooks/pdf/render/engine.py +++ b/src/calibre/ebooks/pdf/render/engine.py @@ -245,13 +245,19 @@ class PdfEngine(QPaintEngine): gi = GlyphInfo(*self.qt_hack.get_glyphs(point, text_item)) if not gi.indices: return - name = hash(gi.name) - if name not in self.fonts: + metrics = self.fonts.get(gi.name) + if metrics is None: + from calibre.utils.fonts.utils import get_all_font_names try: - self.fonts[name] = self.create_sfnt(text_item) + names = get_all_font_names(gi.name, True) + names = ' '.join('%s=%s'%(k, names[k]) for k in sorted(names)) + except Exception: + names = 'Unknown' + self.debug('Loading font: %s' % names) + try: + self.fonts[gi.name] = metrics = self.create_sfnt(text_item) except UnsupportedFont: return super(PdfEngine, self).drawTextItem(point, text_item) - metrics = self.fonts[name] for glyph_id in gi.indices: try: metrics.glyph_map[glyph_id] = metrics.full_glyph_map[glyph_id]