Reportlab: заголовок с данными со страницы

m используя функцию на странице и шаблон страницы, чтобы сделать заголовки для подмножества страниц в моем документе:

templates.append(PageTemplate(id='Overview', frames=frame, onPage=HeaderOverview))

Функция заголовка для этого шаблона:

################################
# Function HeaderOverview - header for overview page
def HeaderOverview(canvas,doc):
    canvas.saveState()
    headboxh = 15
    headboxx = 20
    headboxy = 730
    headboxw = 570
    canvas.rect(headboxx, headboxy, headboxw, headboxh, fill=1)  
    canvas.setFillColor(colors.black)
    canvas.setFont("Helvetica", 14)
    canvas.setFillColor(colors.white)

    canvas.drawString(headboxx + 15,headboxy+.25*headboxh,"Mathematics")
    textWidth = stringWidth("Mathematics", "Helvetica", 12) 
    canvas.setFont("Helvetica", 12)
    canvas.drawString(headboxw - 15 - textWidth,headboxy+.25*headboxh,course)

    canvas.restoreState()

Это прекрасно работает, за исключением того, что переменная курса, которая 'Переданный s (который изменяется с каждой страницей в разделе) является последним в последовательности, так как эта функция 'на самом деле не вызывается до окончательной сборки (я думаю, чтос как это работает). Мне нужно сделать это так, чтобы значение было значением, котороена странице. Если бы я мог нарисовать это, когда я пишу саму страницу, этоЯ тоже буду в порядке. Вот'Вот моя попытка:

####################################################################################
# Function makeGradeOverview(course): makes Overview chart for grade
#
def makeGradeOverview(canvas, course):
    report.append(NextPageTemplate("Overview"))
    report.append(PageBreak())

    headboxh = 50
    headboxx = 20
    headboxy = 600#730
    headboxw = 540

    canvas.saveState()
    canvas.setFont("Helvetica", 12)
    textWidth = stringWidth(course, "Helvetica", 12)
    canvas.drawString(headboxw - 15 - textWidth,headboxy+.25*headboxh,course)
    canvas.restoreState()
    # put course name as title
    if len(course)

Ответы на вопрос(1)

Ваш ответ на вопрос