【发布时间】:2015-07-21 22:26:25
【问题描述】:
我正在使用 Django 和 Reportlab 生成 pdf 文件。有时用户会使用 Reportlab 确定为无效的字符,我得到这个:
ValueError:段落中的 xml 解析器错误(伪造的
除了限制用户输入之外,还有什么办法可以避免这种情况?
这是代码的精简版:
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")
【问题讨论】: