最后我设法解决了它。但我不确定它是否是正确的方法。
非常感谢grc 提供了this 答案,我从那里创建了我的解决方案。
在 grc 的回答中,我创建了一个 afterFlowable 回调函数。
def afterFlowable(self,flowable):
if hasattr(flowable, 'cReport'):
cReport = getattr(flowable, 'cReport')
self.cReport = cReport
然后在为 r1 报告添加数据时,将创建一个自定义属性
elements.append(PageBreak())
elements[-1].cReport = 'r1'
为 r2 报告添加数据时使用相同的代码
elements.append(PageBreak())
elements[-1].cReport = 'r2'
然后在模板的onPage函数中
template = PageTemplate(id='test', frames=frame, onPage=headerAndFooter)
def headerAndFooter(canvas, doc):
canvas.saveState()
if cReport == 'r1':
Ph = Paragraph("""<para>r1 Report (continued)</para>""",styleH5)
w, h = Ph.wrap(doc.width, doc.topMargin)
Ph.drawOn(canvas, doc.leftMargin, doc.height+doc.topMargin)
请注意,我只是复制和粘贴部分代码...