方法:python-pdfkit 将网页(JS生成)转换为PDF

Posted

技术标签:

【中文标题】方法:python-pdfkit 将网页(JS生成)转换为PDF【英文标题】:Approach: python-pdfkit convert webpage(JS generated) into PDF 【发布时间】:2014-11-03 15:14:33 【问题描述】:

views.py

def download_as_pdf(request):
    # some stuff/function call to get updated(with data and JS) template and render it

    return render(request, temp)

def download(request):
    import pdfkit
    pdfkit.from_url('/download/', 'out.pdf', options='ignore-load-errors': None)
    return HttpResponse('DONE')

urls.py

url(r'^download/', views.download_as_pdf, name="download_pdf")

我想在 pdf 中打印 /download/ url 的所有内容(一些图表(JS 生成 - 流程图))。如果我把这两行

import pdfkit
pdfkit.from_url('/download/', 'out.pdf', options='ignore-load-errors': None)

download_as_pdf 中查看它在 pdf 中不打印任何内容(pdf 可以下载但为空) (我认为是因为模板渲染发生在这些语句之后,这就是为什么??)

我应该如何在 pdf 中进行 prit graph(我可以通过线程解决这个问题吗?如何?)或任何其他方法

【问题讨论】:

Pdfkit/wkhtmltopdf 不会处理 JS 渲染而不进行一些更改。你试过看这个吗? ***.com/questions/6949685/… 【参考方案1】:

这可能是因为 pdf 是在整个 javascript 加载之前呈现的。如果您引入 javascript 延迟,它将起作用。

 options = 
    'javascript-delay':'5000'
           

【讨论】:

以上是关于方法:python-pdfkit 将网页(JS生成)转换为PDF的主要内容,如果未能解决你的问题,请参考以下文章

如何用python抓取js生成的数据

利用canvas将网页元素生成图片并保存在本地

js的网页爬虫爬不到吗

Winform实现将网页生成图片的方法

为啥前端js把html文件中的table生成的excel文件 文件类型实际上是网页文件(.htm)

js中怎么让一个随机数在进入网页中只随机一次