Понимание onFirstPage / onLaterPages в методе сборки Platypus - PullRequest
0 голосов
/ 03 апреля 2019

Я написал некоторый код ReportLab, используя примеры, которые я нашел здесь , чтобы добавить номера страниц, в частности, создать функцию addPageNumber, переданную при построении аргументов метода build.Техника, очевидно, используется во многих других контекстах, но похоже, что аргументы onFirstPage / onLaterPages едва документированы.Они, очевидно, принимают функцию, и эта функция принимает два параметра, обычно называемые canvas и doc, но для того, чтобы правильно прокомментировать мой код, я должен предоставить небольшое объяснение механизма.

def addPageNumber(canvas, doc):
    page_num = canvas.getPageNumber()
    text = "Page #%s" % page_num
    canvas.drawRightString(200*mm, 20*mm, text)

doc.build(Story, onFirstPage=addPageNumber, onLaterPages=addPageNumber)

Хотя я всегда вижу объект canvas, который передается в качестве первого аргумента, который используется во всех примерах кода, doc, похоже, никогда не используется.Может кто-нибудь объяснить, для чего он предназначен и какой это тип объекта?И какие значения передаются методом сборки при вызове функции для аргументов canvas и doc?

Спасибо!

R.

...