ReportLab 中的编号列表

Numbered list in ReportLab

我想使用 reportlab 打印缩进的编号列表。

我要打印的内容

Welcome to my list

  1. List item
  2. List item
  3. List item

Thanks for reading

我的报告实验室模板:

from reportlab.pdfgen import canvas
canvas = canvas.Canvas("mypdf.pdf", pagesize=letter)
canvas.drawString(inch, inch, "Hello")
canvas.save()

我无法从 reportlab 用户指南中获取示例来处理我的 canvas。如何将此列表打印到我的 pdf 文件中?

将以下导入添加到脚本的开头应该可以解决您收到的错误:

from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch

此外,如下所示设置 bottomup 参数将使文本从页面右上角开始。

canvas = canvas.Canvas("mypdf.pdf", pagesize=letter, bottomup=0)

以下示例应按照您的描述创建 PDF:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch

canvas = canvas.Canvas("mypdf.pdf", pagesize=letter, bottomup=0)
items = [
    "List item one",
    "List item two",
    "List item three",
]
text_object = canvas.beginText(inch, inch)
text_object.textLine("Welcome to my list")
for index, item in enumerate(items):
    text_object.textLine("   {}. {}".format(index + 1, item))
text_object.textLine("Thanks or reading")
canvas.drawText(text_object)
canvas.save()