首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reportlab页面背景色(BaseDocTemplate)

reportlab页面背景色(BaseDocTemplate)
EN

Stack Overflow用户
提问于 2021-12-22 19:18:29
回答 1查看 28关注 0票数 0

我只想简单的设置页面的背景色。但是在报告实验室你应该用左手把右耳夹在膝盖下面.我在谷歌上搜索过,但是到处都很简单--用颜色创建Rect。但如何?

代码语言:javascript
复制
doc = BaseDocTemplate(buffer)

Elements=[]

#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')

Elements.append(Paragraph('HEADING',styles['Heading1']))
Elements.append(Paragraph('Lorem Ipsum Dolor', styles['Normal']))

doc.addPageTemplates([PageTemplate(id='TwoCol',frames=[frame1,frame2]), ])


doc.build(Elements)

我试过使用绘图,但是0,0不是页面的左底部坐标,而是绘图的左底部坐标。但左下角怎么画-不知道.

代码语言:javascript
复制
 draw = Drawing(500, 200)
 rectangle = Rect(0,0,100,100)
 color = PCMYKColor(15,9,0,8)
 rectangle.fillColor = color
 rectangle.strokeColor = color
 draw.add(rectangle)

 Elements.append(draw)

我发现,doc.width和doc.height很适合右上坐标.

EN

回答 1

Stack Overflow用户

发布于 2021-12-22 20:15:12

对我有效的解决办法是:

代码语言:javascript
复制
 Elements=[]

 def setBackground(canvas, document):
     color = PCMYKColor(15,9,0,8)
     canvas.setFillColor(color)
     canvas.rect(0,0,doc.width+doc.leftMargin+doc.rightMargin,doc.height+doc.topMargin+doc.bottomMargin, fill=True, stroke=False)

 #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')


 Elements.append(Paragraph('HEADING',styles['Heading1']))
 Elements.append(Paragraph('Lorem Ipsum Dolor', styles['Normal'])

 doc.addPageTemplates([PageTemplate(id='TwoCol',frames=[frame1,frame2],onPage=setBackground) ])


 #start the construction of the pdf
 doc.build(Elements)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70454114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档