私は pisa を使用して、django アプリケーションで html から pdf を生成しています。私のビューコードは次のとおりです
if request.method == 'POST':
return write_to_pdf(request.POST['convert'], { }, 'file')
convert は、pdf ファイルに書き込む値を取得する TextArea です。
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))
ただし、生成された pdf には、TextArea に次のような強調されたギリシャ文字がある場合に問題があります。
ά έ
エンコーディングを変更しようとしましたが、何もしませんでした。どんな助けでも大歓迎です。