如何在django中将动态html页面转换为pdf?

时间:2016-03-23 01:58:36

标签: python html css django pdf

1)我解析了一些页面以获取信息。 2)由于信息难以分离,我将其安装到html页面并使用自定义css使其美观。 3)然后我尝试将其转换为pdf,以便将其提供给客户。

但所有pdf-convector都要求提供某些网址或文件等。例如:

def parse(request):
        done = csrf(request)
        if request.POST:
            USERNAME = request.POST.get('logins', '')
            PASSWORD = request.POST.get('password', '')
            dialogue_url = request.POST.get('links', '')
            total_pages = int(request.POST.get('numbers', ''))
            news = []
            news.extend(parse_one(USERNAME, PASSWORD, dialogue_url, total_pages))
            contex = {
                        "news" : news,
                    }
            done.update(contex)

        pageclan = render(request, 'marketing/parser.html', done)

        # create an API client instance
        client = pdfcrowd.Client(*** ***)

        # convert a web page and store the generated PDF to a variable. That is doesn't work. Convertor doesn't support such url.
        pdf = client.convertURI('pageclan')

         # set HTTP response headers
        response = HttpResponse(content_type="application/pdf")
        response["Cache-Control"] = "max-age=0"
        response["Accept-Ranges"] = "none"
        response["Content-Disposition"] = "attachment; filename=jivo_log.pdf"

        # send the generated PDF
        response.write(pdf)
        return response

有没有可以正常工作的工具?

1 个答案:

答案 0 :(得分:0)

来自PDFCrowd Python API documentation

  

您还可以转换原始HTML代码,只需使用convertHtml()方法而不是convertURI()

     

pdf = client.convertHtml("<head></head><body>My HTML Layout</body>")

这意味着您可以修改代码以将convertHtml方法与渲染页面(HTML字符串)一起使用:

pdf = client.convertHtml(pageclan.content)