From f18fdce33bd68d0772229d19cb08a7785002e549 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 13 Dec 2018 18:12:54 +0530 Subject: [PATCH] PDF Output: Do not fail if one of th efonts from the source document has no name metadata --- src/calibre/ebooks/pdf/render/fonts.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/pdf/render/fonts.py b/src/calibre/ebooks/pdf/render/fonts.py index c5011a8822..48b48fe919 100644 --- a/src/calibre/ebooks/pdf/render/fonts.py +++ b/src/calibre/ebooks/pdf/render/fonts.py @@ -181,8 +181,12 @@ class Font(object): self.metrics.sfnt(self.font_stream) def write_to_unicode(self, objects): - cmap = CMap(self.metrics.postscript_name, self.metrics.glyph_map, - compress=self.compress) + try: + name = self.metrics.postscript_name + except KeyError: + from calibre.utils.short_uuid import uuid4 + name = uuid4() + cmap = CMap(name, self.metrics.glyph_map, compress=self.compress) self.font_dict['ToUnicode'] = objects.add(cmap) def write_widths(self, objects):