我在頁面上使用功能和頁面模板,使頭對我的文檔頁面的一個子集:ReportLab的:數據頭信息
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()
這個偉大的工程,但則傳遞過程變量(每個頁面的部分改變)是序列中的最後一個,因爲這個功能不是真的叫,直到最終版本(我認爲這是如何有用)。我需要的是做到這一點,使價值是在網頁上的價值。如果我可以在我寫頁面的時候繪製它,那也可以。這是我嘗試在那:
####################################################################################
# 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)<=2:
headerrow = ''.join(['Grade ', course, ' Overview'])
else:
headerrow = ''.join([course, ' Overview'])
report.append(Paragraph(headerrow, styles["Overview Title"]))
report.append(Spacer(1, 16))
GridInfo = []
topics = topiclist(course)
for topic in topics:
report.append(Paragraph(topic, styles["Overview Sub"]))
report.append(Spacer(1, 8))
subtopics = subtopiclist(course, topic)
sublist = []
for subtopic in subtopics:
report.append(Paragraph(''.join([r'<bullet>&bull</bullet>',subtopic]), styles["Overview Table"]))
這不會引發錯誤或任何東西,但它似乎並不實際繪製任何東西,無論是。
感謝您的幫助!
afterPage或afterDrawPage可能會涉及,但我不知道如何構建這些來使用當前頁面的信息 – DeltaG 2013-02-17 12:46:06
您可以提供更多關於第一次嘗試的'course'變量的上下文。它如何/在哪裏設置/更改?你有一個包含'HeaderOverview'需要使用的課程的列表嗎? – grc 2013-03-01 12:44:33
我正在循環設置課程列表,每次我編寫新課程的頁面時都會調用此函數。在循環遍歷整個列表之後,我有一組頁面,並且課程變量會更改每個頁面或每個其他頁面,以反映頁面上的信息。 – DeltaG 2013-03-01 16:38:49