From 6aee1ee41f0595686be2d2b136a7e642361e471b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 4 Feb 2018 19:45:00 +0100 Subject: [PATCH] Stip HTML from text in PDFs except for
, make
not break things --- src/pretix/plugins/ticketoutputpdf/ticketoutput.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py index 5a8c85178b..6607a19f0b 100644 --- a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py +++ b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py @@ -1,9 +1,11 @@ import copy import logging +import re import uuid from collections import OrderedDict from io import BytesIO +import bleach from django.contrib.staticfiles import finders from django.core.files import File from django.core.files.storage import default_storage @@ -242,8 +244,14 @@ class PdfTicketOutput(BaseTicketOutput): textColor=Color(o['color'][0] / 255, o['color'][1] / 255, o['color'][2] / 255), alignment=align_map[o['align']] ) - - p = Paragraph(self._get_text_content(op, order, o) or "", style=style) + text = re.sub( + "]*>", "
", + bleach.clean( + self._get_text_content(op, order, o) or "", + tags=["br"], attributes={}, styles=[], strip=True + ) + ) + p = Paragraph(text, style=style) 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']))