Как получить доступ к холсту и SimpleDocTemplate одновременно с reportlab - PullRequest
0 голосов
/ 08 апреля 2019

Я действительно надеюсь, что я просто тупой ... пальцы скрещены, это легко исправить!(Я новичок в лаборатории отчетов)

Я определяю документ с помощью:

doc = SimpleDocTemplate("hello.pdf",pagesize=A4,
                        rightMargin=50,leftMargin=50,
                        topMargin=50,bottomMargin=50)

Затем я хочу кое-что сделать с холстом:

def basicInfoTopRight(infostrs,c,role):
    xpos = 550
    ypos = 800
    prevPosY = ypos
    c.setFont("Helvetica", 18)

    namestr = infostrs[0].lower().capitalize() + " " + infostrs[1].lower().capitalize()
    c.drawRightString(xpos,ypos,namestr)
    prevPosY-=20
    if role:
        c.setFont("Helvetica", 13)
        c.drawRightString(xpos,prevPosY,infostrs[2])
        c.setFont("Helvetica", 12)
        for x in range(3, len(infostrs)):
            prevPosY-=14
            c.drawRightString(xpos,prevPosY,infostrs[x])
    return

Кажется достаточно простым.Но потом я понимаю, что у меня нет холста для передачи (c в определении basicInfoTopRight), когда я писал эту функцию, она использовала:

c= Canvas('hello.pdf', pagesize=A4)

Так что проблема в том, что я не могу иметьбыстрый и легкий доступ к холсту ... Я попробовал:

c = doc.canvas

Но не повезло!Я получаю следующую ошибку:

AttributeError: 'SimpleDocTemplate' object has no attribute 'canvas'

Так куда же я уронил мяч?

...