背景
我正在编写一些代码,使用SimpleDocTemplate
(reportlab.platypus.SimpleDocTemplate
)在ReportLab中设置共享文档“模板”[common header and footer]。下面的代码段是一个函数,它将作为SimpleDocTemplate
或build(...)
参数的值传递到onFirstPage
onLaterPages
方法中。
def setup_header_and_footer(canvas, doc):
"""
...edited out...
"""
canvas.line(0 * mm, 174 * mm, 297 * mm, 174 * mm)
logo_filename = settings.STATIC_ROOT + os.sep + "images/huqas_logo.jpg"
canvas.drawImage(logo_filename, 20 * mm, 45 * mm)
canvas.drawRightString(287 * mm, 200 * mm, "<edited out>")
canvas.drawString(20 * mm, 15 * mm, "Generated on %s" % datetime.now().strftime("%A %d %B %Y %I:%M:%S %p"))
canvas.line(0 * mm, 20 * mm, 297 * mm, 20 * mm)
更多信息
问题
我看过this question,但我仍然不明白为什么画布在调用例如canvas.line(0 * mm, 174 * mm, 297 * mm, 174 * mm)
时“表现”但在调用canvas.drawImage("file name", 20 * mm, 45 * mm)
时失败。我也搜索了文档无济于事。我错过了什么?
更新
从canvas.drawImage(logo_filename, 20 * mm, 45 * mm)
更改为canvas.drawInlineImage(logo_filename, 20 * mm, 45 * mm)
似乎可“解决”问题[不更改任何其他代码行]。我仍然对drawImage
无效的原因感到困惑。