我正在尝试使用reportlab 生成一个PDF,该PDF 的页眉和页脚从第二页开始。
我阅读了线程: 在 ReportLab 中添加分页符到 Reportlab 画布对象 和非编号页面
使用这些线程中的函数,我可以使用 canvas.showPage()成功关闭标题页,并且可以使用doc.build(Story, onFirstPage=myFirstPage, onLaterPages=myLaterPages) 成功启动页眉/页脚 。
但是,当我关闭canvas.showPage()时,我的页眉和页脚从第三页开始,而不是第二页。
代码:
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 从第二页开始?