2ページ目から始まるヘッダーとフッターを持つreportlabを使用してPDFを生成しようとしています。
スレッドを読みました: ReportlabCanvasオブジェクトにページ分割を追加 し、ReportLabの番号のないページを追加します
これらのスレッドの関数を使用して、 canvas.showPage()でタイトルページを正常に閉じ、 doc.build(Story、onFirstPage = myFirstPage、onLaterPages = myLaterPages) を使用してヘッダー/フッターを正常に開始でき ます。
ただし、canvas.showPage()を閉じると、ヘッダーとフッターは2ページではなく3ページから始まります。
コード:
def firstPage(canvas,doc):
canvas.setFont('Times-Bold',40)
canvas.drawString(inch, pageHeight-(3*inch), 'docTitle1') #w,h,txt
canvas.drawString(2*inch, pageHeight-(4*inch), 'docTitle2')
canvas.showPage() #force pagebreak
def laterPages(canvas, doc):
canvas.saveState()
canvas.setFont('Times-Roman',9)
canvas.setStrokeColorRGB(2,2,2) #169,169,169)
canvas.drawString(0.5*inch, pageHeight-(0.75*inch), 'header1')
canvas.drawString(pageWidth-inch, pageHeight-(0.75*inch), 'header2')
canvas.drawCentredString(pageWidth/2, 0.65*inch, 'footer1')
canvas.drawCentredString(pageWidth/2, 0.5*inch, 'footer2')
canvas.drawString(pageWidth-inch, 0.6*inch, `doc.page`) #page number
canvas.restoreState()
def build_pdf(elements, doc_name):
doc = SimpleDocTemplate(doc_name)
doc.build(elements, onFirstPage=firstPage, onLaterPages=laterPages)
elements = [title, table1, spacer]
doc_name = 'myPDF.pdf'
build_pdf(elements, doc_name)
最初のページでの描画を停止し、onLaterPagesを2ページ目から開始するにはどうすればよいですか?