ReportLab で作成したレポートに単純な「ページ x/y」を追加しようとしています。この古い記事を見つけましたが、6 年後にはもっと簡単なものが出てきたのではないでしょうか? ^^; このレシピ
も
見つけましたが、使用すると、結果の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 に答える