mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
PDF: Add support for line height (#3066)
Co-authored-by: Raphael Michel <michel@rami.io>
This commit is contained in:
committed by
GitHub
parent
7b301b6027
commit
b4e372ce04
@@ -848,12 +848,17 @@ class Renderer:
|
||||
'center': TA_CENTER,
|
||||
'right': TA_RIGHT
|
||||
}
|
||||
# lineheight display differs from browser canvas. This calc is just empirical values to get
|
||||
# reportlab render similarly to browser canvas.
|
||||
# for backwards compatability use „uncorrected“ lineheight of 1.0 instead of 1.15
|
||||
lineheight = float(o['lineheight']) * 1.15 if 'lineheight' in o else 1.0
|
||||
style = ParagraphStyle(
|
||||
name=uuid.uuid4().hex,
|
||||
fontName=font,
|
||||
fontSize=float(o['fontsize']),
|
||||
leading=float(o['fontsize']),
|
||||
autoLeading="max",
|
||||
leading=lineheight * float(o['fontsize']),
|
||||
# for backwards compatability use autoLeading if no lineheight is given
|
||||
autoLeading='off' if 'lineheight' in o else 'max',
|
||||
textColor=Color(o['color'][0] / 255, o['color'][1] / 255, o['color'][2] / 255),
|
||||
alignment=align_map[o['align']]
|
||||
)
|
||||
@@ -882,8 +887,15 @@ class Renderer:
|
||||
if o.get('downward', False):
|
||||
canvas.translate(float(o['left']) * mm, float(o['bottom']) * mm)
|
||||
canvas.rotate(o.get('rotation', 0) * -1)
|
||||
p.drawOn(canvas, 0, -h - ad[1] / 2)
|
||||
p.drawOn(canvas, 0, -h - ad[1] / 2.5)
|
||||
else:
|
||||
if lineheight != 1.0:
|
||||
# lineheight adds to ascent/descent offsets, just empirical values again to get
|
||||
# reportlab to render similarly to browser canvas
|
||||
ad = (
|
||||
ad[0],
|
||||
ad[1] + (lineheight - 1.0) * float(o['fontsize']) * 1.05
|
||||
)
|
||||
canvas.translate(float(o['left']) * mm, float(o['bottom']) * mm + h)
|
||||
canvas.rotate(o.get('rotation', 0) * -1)
|
||||
p.drawOn(canvas, 0, -h - ad[1])
|
||||
|
||||
Reference in New Issue
Block a user