首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reportlab:使用platypus添加背景图像

reportlab:使用platypus添加背景图像
EN

Stack Overflow用户
提问于 2011-11-19 00:15:26
回答 1查看 6.1K关注 0票数 4

这与此post有一点关系

我正在尝试将一个图像放在背景上,并且我希望能够在它上面写文本。使用canvas.drawImage很有帮助,但这对我来说太低级了。

我的程序使用的是鸭嘴兽,但是canvas.drawImage是不同库的一部分。我已经能够用platypus.Image插入图片,但不知道如何将其作为背景。

任何建议都是很好的,

谢谢D

EN

回答 1

Stack Overflow用户

发布于 2011-11-19 00:44:27

在Platypus中创建页面模板时,可以通过命名参数onPage传递函数。在该函数中,您可以放置所有基本页面格式(页眉、页脚、水印、背景图像)。

下面是一个例子:

代码语言:javascript
复制
def AllPageSetup(canvas, doc):

    canvas.saveState()

    #header
    canvas.drawString(0.5 * inch, 8 * inch, doc.fund.name)
    canvas.drawRightString(10.5 * inch, 8 * inch, doc.report_info)

    #footers
    canvas.drawString(0.5 * inch, 0.5 * inch, 'Larry Co.')
    canvas.drawRightString(10.5 * inch, 0.5 * inch, 'Page %d' % (doc.page))

    canvas.setFont("Helvetica", 240)
    canvas.setStrokeGray(0.90)
    canvas.setFillGray(0.90)
    canvas.drawCentredString(5.5 * inch, 3.25 * inch, doc.watermark)

    canvas.restoreState()

doc = BaseDocTemplate(file_name)

doc.fund = fund # stores my fund object into the document for reference
doc.report_info = "%s %s" % (fund.current_report.date.isoformat(), version)
doc.watermark = 'DRAFT'

page_template = PageTemplate(id="fund_notes", onPage=AllPageSetup, pagesize=page_size)

#Now, every page will have headers, footers, and a watermark
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8185438

复制
相关文章

相似问题

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