0

私はPDFを生成するためにreportlabを使用しています。ここで私はデータベースからプロファイルを取得しています。データベースに印刷している間、すべてのプロファイルが次のページに表示されます。このため、ページ座標を増やしながら値を印刷することはできません。

def reportlab(request):

    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename=somefilename.pdf'
    buffer = BytesIO()

    # Draw things on the PDF. Here's where the PDF generation happens.
    # See the ReportLab documentation for the full list of functionality.
    child = Child_detail.objects.all()
    for child1 in child:
        name = child1.name
        p = canvas.Canvas(buffer)
        p.drawString(500, 400, name)
        p.showPage()
        p.save()
    pdf = buffer.getvalue()
    buffer.close()
    response.write(pdf)
    return response
4

1 に答える 1

0

おそらく、キャンバスの設定と保​​存をループの外に移動したいので、Canvas の単一のインスタンスを使用することになります

p = canvas.Canvas(buffer)
child = Child_detail.objects.all()
for child1 in child:
    name = child1.name
    p.drawString(500, 400, name)
    p.showPage()
p.save()
于 2012-09-20T08:37:04.467 に答える