diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py
index e1b3f50b6..10b7cc8b4 100644
--- a/src/pretix/base/services/invoices.py
+++ b/src/pretix/base/services/invoices.py
@@ -182,19 +182,23 @@ def _invoice_generate_german(invoice, f):
textobject = canvas.beginText(25 * mm, (297 - 15) * mm)
textobject.setFont('OpenSansBd', 8)
textobject.textLine(pgettext('invoice', 'Invoice from').upper())
- textobject.moveCursor(0, 5)
- textobject.setFont('OpenSans', 10)
- textobject.textLines(invoice.invoice_from.strip())
canvas.drawText(textobject)
+ p = Paragraph(invoice.invoice_from.strip().replace('\n', '
\n'), style=styles['Normal'])
+ p.wrapOn(canvas, 70 * mm, 50 * mm)
+ p_size = p.wrap(70 * mm, 50 * mm)
+ p.drawOn(canvas, 25 * mm, (297 - 17) * mm - p_size[1])
+
textobject = canvas.beginText(25 * mm, (297 - 50) * mm)
textobject.setFont('OpenSansBd', 8)
textobject.textLine(pgettext('invoice', 'Invoice to').upper())
- textobject.moveCursor(0, 5)
- textobject.setFont('OpenSans', 10)
- textobject.textLines(invoice.invoice_to.strip())
canvas.drawText(textobject)
+ p = Paragraph(invoice.invoice_to.strip().replace('\n', '
\n'), style=styles['Normal'])
+ p.wrapOn(canvas, 85 * mm, 50 * mm)
+ p_size = p.wrap(85 * mm, 50 * mm)
+ p.drawOn(canvas, 25 * mm, (297 - 52) * mm - p_size[1])
+
textobject = canvas.beginText(125 * mm, (297 - 50) * mm)
textobject.setFont('OpenSansBd', 8)
if invoice.is_cancellation:
@@ -259,18 +263,25 @@ def _invoice_generate_german(invoice, f):
width=25 * mm, height=25 * mm,
preserveAspectRatio=True, anchor='n')
+ if invoice.event.settings.show_date_to:
+ p_str = (
+ str(invoice.event.name) + '\n' + _('{from_date}\nuntil {to_date}').format(
+ from_date=invoice.event.get_date_from_display(),
+ to_date=invoice.event.get_date_to_display())
+ )
+ else:
+ p_str = (
+ str(invoice.event.name) + '\n' + invoice.event.get_date_from_display()
+ )
+
+ p = Paragraph(p_str.strip().replace('\n', '
\n'), style=styles['Normal'])
+ p.wrapOn(canvas, 65 * mm, 50 * mm)
+ p_size = p.wrap(65 * mm, 50 * mm)
+ p.drawOn(canvas, 125 * mm, (297 - 17) * mm - p_size[1])
+
textobject = canvas.beginText(125 * mm, (297 - 15) * mm)
textobject.setFont('OpenSansBd', 8)
textobject.textLine(_('Event').upper())
- textobject.moveCursor(0, 5)
- textobject.setFont('OpenSans', 10)
- textobject.textLine(str(invoice.event.name))
- if invoice.event.settings.show_date_to:
- textobject.textLines(
- _('{from_date}\nuntil {to_date}').format(from_date=invoice.event.get_date_from_display(),
- to_date=invoice.event.get_date_to_display()))
- else:
- textobject.textLine(invoice.event.get_date_from_display())
canvas.drawText(textobject)
canvas.restoreState()