如何将HTML Django页面呈现为PDF?

时间:2016-11-15 00:27:47

标签: html django pdf

我有一项任务是使用动态数据呈现HTML页面并将其转换为PDF,但是,我在实现它时遇到了问题。

def makepdf(request):
    if request.POST:
        chatvs = Competirors.objects.get(id = int(request.POST.get('competitor', '')))
        jivo_staff = Manager.objects.get(id = int(request.POST.get('manager', '')))

        business = Field.objects.get(id = int(request.POST.get('filed', '')))

        business = business.link.all().order_by('?')[0:3]        

        context = {
            "chatvs" : chatvs,
            "jivo_staff" : jivo_staff,
            "business" : business,
        }

        tmpl = get_template('marketing/jivopdf.html', )
        html = tmpl.render(context)

        # and i have a problem there with pdfkit

我使用的是Pdfcrowd API,但它会削减所有CSS样式并且看起来不太好看。至于vvwkhtmltopdf / pdfkit - 我不知道如何使它成为一个呈现的HTML页面,因为它只访问url / file / string。

有没有办法渲染准备好的HTML页面?

2 个答案:

答案 0 :(得分:0)

很难说不知道你得到的错误。

但是我可以从你的代码中看到,如果这是你真正的代码。看起来像Competirors.objects.get中的拼写错误,可能应该被命名为竞争对手。

如果您从表单获取POST数据,则不应直接使用它。 永远不要相信用户输入...

答案 1 :(得分:0)

我建议你试试weasyprint