0

WeasyPrint を使用して PDF を作成しています。PDF は簡単に 120 ページを超え、レンダリングに最大 2 分かかる場合があります。これが発生している間、ページはフリーズしているように見え、応答しません。セロリを調べていますが、そこに着くまでプログレスバーを実装したいと思います:

完璧な解決策: どうにかして PDF エクスポートの現在のステータスを取得し、進行状況バーに表示します

許容される解決策: PDF がブラウザーの表示に表示されるまで、または PDF 自体がダウンロードされるまでに最大 2 分かかる可能性があることをユーザーに伝える、動くプログレス バーを表示します。

何か案は?ありがとう!

現在のviews.py:

def course_view(request):
    students = Student.objects.filter(student_courseid__course_accid = request.user.userprofile.course_accid)

    html_template = get_template('student/student_pdf_all.html')
    rendered_html = html_template.render({'student': students}, request)
    pdf_file = HTML(string=rendered_html, base_url=request.build_absolute_uri()).write_pdf(stylesheets=[CSS(settings.STATIC_ROOT +  '/css/pdf.css')])

    http_response = HttpResponse(pdf_file, content_type='application/pdf')
    filename = str(request.user.userprofile.course_accid) + ".pdf"

    http_response['Content-Disposition'] = 'filename="{}"'.format(filename)

    return http_response
4

1 に答える 1