p文章一中的示例pdf可以看出,我们再生成pdf文档的时候少不了会有页眉页脚的设置。在了解页眉页脚怎么弄之前我们先了解一下canvas
pdf文档首先就得有页面,是页面肯定得有布局和排版。这样就需要了解Platypus-"Page Layout and Typography Using Scripts"的缩写。它是一个高水平的页面布局库。
Platypus的整体设计可以认为有几个层次,自上而下,
这些是: • DocTemplates作为文档的最外层容器。
• PageTemplates作为各种页面布局的规格。
• Frames页面中可包含流动文本或图形的区域规格。
• Flowables对应"flowed into the document"流入文档的文本或图形元素(即图像、段落和表 格等内容,但不包括页脚或固定页面图形等内容)。
DocTemplate包含一个或多个PageTemplate,每个PageTemplate包含一个或多个Frame。Flowa bles 是指可以flowed(流入)Frame的东西,例如Paragraph或Table。 要使用platypus,你需要从DocTemplate类中创建一个文档,并向其build方法传递一个Flowables 列表。
比方我们先要建一个文档。
doc = SimpleDocTemplate("doc名称”)
建一个页面中可包含流动文本或图形的区域规格:
frame = Frame(doc.leftMargin, doc.bottomMargin, doc.width, doc.height -12* cm, leftPadding=-5 * mm, rightPadding=-5 * mm, id='Normal')
然后想到页面布局的规格。pagetemplate 可以放frames。
template = PageTemplate(id='Normal', frames=frame)
再将页面布局放到doc里
doc.addPageTemplates(template )。
下面就是flowable。可以是段落,可以是图表。
例如
content =[]
##add some flowables
(mulu_style=ParagraphStyle(name="mulu", fontName="PingFangSCMedium", fontSize=16, alignment=TA_LEFT))
title2_style 设置了样式:字体颜色,字体,字体大小,对齐方式,underline颜色。具体最终样子文章1去看
content.append(Paragraph("<font name=Simhei><strong>01.</strong></font>账户运作基本情况....................<font name=Simhei><strong>P1</strong></font>", mulu_style))content.append(Spacer(1, 10 * mm))content.append(Paragraph("<font name=Simhei><strong>02.</strong></font>账户资产配置明细....................<font name=Simhei><strong>P1</strong></font>", mulu_style))
doc.multiBuild(content)
这样就能生成一个文档,文档内容就是有两行文字