使用 reportlab 生成 pdf

Generate pdf with reportlab

在尝试使用 python-reportlab 创建 pdf 的 django 项目中。

from reportlab.pdfgen import canvas
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'

p = canvas.Canvas(response)
p.drawString(10, 800, "Name")
p.drawString(10, 900, "Address")
p.drawString(10, 1000, "School")
p.showPage()
p.save()

输出pdf时只显示Name,其他两个字符串怎么了?

"Address" 和 "School" 的坐标只是在页面之外。 reportlab 坐标系的原点是左下角,x 坐标向右,y 坐标向上。请尝试以下操作:

p.drawString(10, 800, "Name")
p.drawString(10, 790, "Address")
p.drawString(10, 780, "School")

所以这行得通。只是给 y 坐标较小的值。根据您的需要尝试使用这些值。

p = canvas.Canvas(response)
p.drawString(10,750,'Name')
p.drawString(10,650,'Address')
p.drawString(10,550,"School")
p.showPage()
p.save()