Ich verwende Django und Reportlab, um PDF-Dateien zu generieren. Gelegentlich wird ein Benutzer ein Zeichen verwenden, die Reportlab ungültig sein bestimmt, und ich bekomme diese:Reportlab verarbeitet nicht & und <
Valueerror: XML-Parser-Fehler (falsche < oder &) Absatz ...
Gibt es eine Möglichkeit zu vermeiden Sie dies, außer die Eingabe vom Benutzer zu beschränken?
Hier ist eine abgespeckte Version des Codes:
def generate_report(request, obj_id):
obj = Model.objects.get(pk=obj_id)
width, height = letter
styles = getSampleStyleSheet()
doc = SimpleDocTemplate(settings.MEDIA_ROOT + "/pdf/" + str(obj.id) + ".pdf", pagesize=letter,rightMargin=72,leftMargin=72,topMargin=160,bottomMargin=100)
Story = []
Story.append('Title', h1))
text = obj.test_to_display
for line in text.splitlines():
Story.append(Spacer(1,0.1*inch))
p = Paragraph(line, style)
Story.append(p)
doc.build(Story)
return HttpResponseRedirect("/media/pdf/" + str(obj.id) + ".pdf")