我試圖用這個片段來生成模板PDF:有沒有辦法使用django模板生成包含非ASCII字符的pdf格式的比薩?
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
if not pdf.err:
return http.HttpResponse(result.getvalue(), mimetype='application/pdf')
except Exception('PDF error')
所有非拉丁字符的顯示不正確,模板和視圖使用UTF-8編碼保存的。
我試着將視圖保存爲ANSI,然後保存爲用戶unicode(html,「UTF-8」),但它會引發TypeError。
另外我想也許這是因爲默認字體莫名其妙地不支持utf-8 ,所以根據比薩文檔,我嘗試在樣式部分設置模板體中的fontface。
這仍然沒有結果。
有沒有人有一些想法如何解決這個問題?
替換後得到pdf完整的不可讀數據, 檢查瞭解決方案,該方法與我使用的沒有多大差別,但我仍然使用html.encode(「ISO-8859-1」)對其進行測試拋出: 「拉丁-1」編解碼器無法編碼字符u'\ ufeff'在位置0:序號不在範圍(256)「 與編碼(」UTF-8「)它返回pdf,但與我一樣之前有過 - 非ascii符號仍然沒有正確渲染。 – mihailt 2009-10-28 13:51:09
@mihailt你找到了解決方案嗎? – 2014-05-09 20:05:46
正好加上這個:'encoding ='UTF-8''解決了我編碼波蘭字符的問題 – andi 2014-08-22 20:58:00