使用xhtml2pdf将图像输出为pdf

时间:2011-11-02 08:48:31

标签: python django pisa xhtml2pdf

我关注了这篇文章:django - pisa : adding images to PDF output并使用了fetch_resources。 除了缺少图像外,PDF文件可以正常生成。

这是我的代码:

def fetch_resources(uri, rel):
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
    return path

def render_to_pdf(template_src, context_dict, filename):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), 
                            dest=result, 
                            link_callback=fetch_resources )
    if not pdf.err:
        response = HttpResponse(result.getvalue(), mimetype='application/pdf')
        response['Content-Disposition'] = 'attachment; filename=' + filename
        return response
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

这是我的模板:

<p><img src="{{ copyright.digital_signature.url }}"></p>

我确信“copyright.digital_signature.url”是正确的,因为它可以在浏览器上正确显示图像。 这意味着PIL已经安装好了吗?

有人可以帮我解决问题吗?非常感谢你!

0 个答案:

没有答案