У меня раньше была проблема, когда не отображались китайские символы, даже когда я указывал @font-face
для использования шрифта UTF-8. Оказывается, я также не могу отображать изображения ... поэтому мне кажется, что я не могу вставить ни один из файлов в мой pdf.
Это код, который я использую:
<code>def render_to_pdf(template_src, context_dict):
"""Function to render html template into a pdf file"""
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")),
dest=result,
encoding='UTF-8',
link_callback=fetch_resources)
if not pdf.err:
response = http.HttpResponse(result.getvalue(), mimetype='application/pdf')
return response
return HttpResponse('We had some errors<pre>%s
'% escape (html))
def fetch_resources (uri, rel):
импорт os.path
из настроек импорта django.conf
путь = os.path.join (
settings.STATIC_ROOT,
uri.replace (settings.STATIC_URL, ""))
Обратный путь
HTML
<img src="/static/images/bc_logo_bw_pdf.png" />
и
@font-face {
font-family: "Wingdings";
src: url("/static/fonts/wingdings.ttf");
}
Я посмотрел другие квесты на SO, но это не помогло. Также нет никаких исключений, происходящих в двух функциях. Также в функции fetch_resources
возвращенный путь был правильным полным путем к файлу, то есть /home/<user>/project/static/images/bc_logo_bw_pdf.png
и /home/<user>/project/static/fonts/wingdings.ttf
, и я не понимаю, что не так.
UPDATE
Каждый раз, когда я создаю PDF, я получаю это сообщение на консоли
No handlers could be found for logger "ho.pisa"
это может быть связано?
ОБНОВЛЕНИЕ № 2
Теперь шрифт работает, я совершил глупую ошибку ... У используемого мной шрифта не было китайского юникода. Но я по-прежнему не могу вставлять изображения в PDF, будь то JPEG, GIF или PNG.