我想在 Reportlab 中生成两列页面。附加程序(改编自各种示例)生成两列两页,然后生成单列页。
我尝试为第一页和后续页面创建多个页面模板。这不会改变输出。
from reportlab.platypus import SimpleDocTemplate, Frame, Paragraph
from reportlab.platypus import Spacer, PageTemplate, NextPageTemplate
from reportlab.lib.styles import getSampleStyleSheet
styles = getSampleStyleSheet()
doc = SimpleDocTemplate ("try.pdf")
style = styles["Normal"]
#Two Columns
frame1 = Frame(doc.leftMargin, doc.bottomMargin,
doc.width/2-6, doc.height, id='col1')
frame2 = Frame(doc.leftMargin+doc.width/2+6, doc.bottomMargin,
doc.width/2-6, doc.height, id='col2')
doc.addPageTemplates(PageTemplate(id='TwoCol', frames=[frame1,frame2]))
Story = []
Story.append (NextPageTemplate(['TwoCol']))
for rec in range (1, 200):
line = ("<para><b>Paragraph %s:</b> " % rec)
line += "This is the text of the paragraph. More text of the paragraph."
line += " Even more text.</para>\n"
p = Paragraph(line, style)
Story.append(p)
doc.build (Story)
我在“Story.append(p)”之后添加了以下内容,看看它是否是一种解决方法:
if rec % 40 == 0:
Story.append (NextPageTemplate(['TwoCol']))
现在,第 1 页和第 2 页是两列,第 3 页是一列,第 4 页和第 5 页是两列。