我正在尝试在使用 ReportLab 制作的报告中添加一个简单的“y 页 x”。我发现了这篇关于它的旧帖子,但也许六年后出现了更直接的东西?^^;
我也找到了这个食谱,但是当我使用它时,生成的 PDF 缺少图像..
Joril
问问题
7744 次
3 回答
11
我能够从 ActiveState 实现 NumberedCanvas 方法。这很容易做到,并没有改变我现有的代码。我所要做的就是添加 NumberedCanvas 类并在构建我的文档时添加 canvasmaker 属性。我还更改了“x of y”显示位置的测量值:
self.doc.build(pdf)
变成了
self.doc.build(pdf, canvasmaker=NumberedCanvas)
doc是 BaseDocTemplate ,pdf是我的可流动元素列表。
于 2009-03-12T18:54:30.960 回答
4
使用 doc.multiBuild
并在页眉方法(由“onLaterPages =”定义)中:
global TOTALPAGES
if doc.page > TOTALPAGES:
TOTALPAGES = doc.page
else:
canvas.drawString(270 * mm, 5 * mm, "Seite %d/%d" % (doc.page,TOTALPAGES))
于 2011-10-13T18:32:55.823 回答
1
只是为你挖掘一些代码,我们使用这个:
SimpleDocTemplate(...).build(self.story,
onFirstPage=self._on_page,
onLaterPages=self._on_page)
现在self._on_page
是一个为每个页面调用的方法,例如:
def _on_page(self, canvas, doc):
# ... do any additional page formatting here for each page
print doc.page
于 2009-03-12T11:29:03.463 回答