首页 > 解决方案 > 如何使用 django 在 xhtml2pdf 中显示图像和复选框

问题描述

我正在使用 Django 使用 xhtml2pdf 将 Html 转换为 pdf,这是我的代码

def render_to_pdf(template_src, context_dict={}):
    template = get_template(template_src)
    html  = template.render(context_dict)
    result = BytesIO()
    pdf = pisa.pisaDocument(BytesIO(html.encode("utf-8")), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf')
    return None

def myView(request):
    pdf = render_to_pdf(pdf_template, params)
    return HttpResponse(pdf, content_type='application/pdf')

到目前为止一切正常,但我还想在 pdf 上显示公司徽标和一些复选框,但这不起作用。

没有错误,没有错误的输出,只是空格代替图像和复选框。

知道如何在我的 pdf 中获取图像和复选框吗?

这是我的 HTML 文件

<tr>
    <td colspan="12" align="center" style="font-size:larger;">
       <img src="/static/assets/img/theme/vue.jpg">
       <input type="checkbox"> Orginal Receipt</td>        
       <u>Some Company</u>
       Phone: 123-456
       Website: www.example.com
   </td>
</tr>

图像和复选框显示在普通 html 模板中,但不显示在 pdf 中

标签: djangoxhtml2pdf

解决方案


首先,如果你想在你的仓库中引用一些被认为是静态文件的图像,你必须添加“链接回调”方法。另外,您可能需要运行“python manage.py collectstatic”。 您可以在文档中阅读有关它的更多信息

我在将图像放置在表格元素中时也遇到了一些问题。尝试找出另一种方法将图像放置在您想要的位置(div 等...) - 它对我有用


推荐阅读