PDF: Fail gracefully on unknown font

This commit is contained in:
Raphael Michel
2022-10-31 09:53:06 +01:00
parent 4cba292b57
commit 2fe0ceb4c7

View File

@@ -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.