我正在使用 pisa 在 django 应用程序中从 html 生成 pdf。我的查看代码如下
if request.method == 'POST':
return write_to_pdf(request.POST['convert'], { }, 'file')
其中 convert 是一个 TextArea ,我从中获得要写在我的 pdf 文件上的值
write_to_pdf
def fetch_resources(uri, rel):
path = '%s/media/pdf/' % RHOMBUS_PATH
return path
def write_to_pdf(template_data, context_dict, filename):
print template_data
template = Template(template_data)
context = Context(context_dict)
html = template.render(context)
print html
result = StringIO.StringIO()
pdf = pisa.CreatePDF(html.encode('UTF-8'), result, link_callback=fetch_resources, encoding='UTF-8')
print result.getvalue()
if not pdf.err:
response = http.HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s.pdf' % filename
response.write(result.getvalue())
return response
return http.HttpResponse('Problem creating PDF: %s' % cgi.escape(html))
当 TextArea 有希腊重音字符时,生成的 pdf 虽然有问题,例如
ά έ
等我尝试更改编码但没有。任何帮助,将不胜感激。