首页 > 解决方案 > django - 使用reportlab在循环条件下生成多个PDF文件

问题描述

我在一个 django 项目中,并尝试使用 reportlab 在循环条件下生成多个 PDF 文件。

视图.py

def pdftest(request, *args, **kwargs):
    if request.method == 'POST':
        for x in range(0, 3):
            response = HttpResponse(content_type='application/pdf')
            buffer = BytesIO()
            doc = SimpleDocTemplate(buffer, pagesize=portrait(letter))
            elements = []
            ptext = 'Hellow World! --- %s' %x
            styles=getSampleStyleSheet()
            elements.append(Paragraph(ptext, styles['Normal']))
            doc.build(elements)
            response['Content-Disposition'] = 'attachment; filename="{}"'.format('test.pdf')
            pdf = buffer.getvalue()
            buffer.close()
            response.write(pdf)
            return response
    context = {}
    context['title'] = 'PDF TEST'
    return render(request, 'companies/pdftest.html', context)

但我的程序只生成一个 PDF。你对这个问题有任何想法吗?

标签: djangopdfreportlab

解决方案


您在return response循环的第一遍调用,所以显然您的程序永远不会到达第二遍或第三遍。


推荐阅读