From 2fe0ceb4c7aa1bec09ee5830a26378e76298ff23 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 31 Oct 2022 09:53:06 +0100 Subject: [PATCH] PDF: Fail gracefully on unknown font --- src/pretix/base/pdf.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index 5ba2da2c8c..5f437f5d41 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -827,6 +827,12 @@ class Renderer: if o['italic']: font += ' I' + try: + ad = getAscentDescent(font, float(o['fontsize'])) + except KeyError: # font not known, fall back + logger.warning(f'Use of unknown font "{font}"') + font = 'Open Sans' + align_map = { 'left': TA_LEFT, 'center': TA_CENTER, @@ -856,7 +862,6 @@ class Renderer: p = Paragraph(text, style=style) w, h = p.wrapOn(canvas, float(o['width']) * mm, 1000 * mm) # p_size = p.wrap(float(o['width']) * mm, 1000 * mm) - ad = getAscentDescent(font, float(o['fontsize'])) canvas.saveState() # The ascent/descent offsets here are not really proven to be correct, they're just empirical values to get # reportlab render similarly to browser canvas.