Reportlab画布图像未显示

时间:2012-10-22 11:55:13

标签: python reportlab

背景

我正在编写一些代码,使用SimpleDocTemplatereportlab.platypus.SimpleDocTemplate)在ReportLab中设置共享文档“模板”[common header and footer]。下面的代码段是一个函数,它将作为SimpleDocTemplatebuild(...)参数的值传递到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)

更多信息

  • 页面/画布已设置为A4横向尺寸
  • 我已确认logo_filename是有效路径,并且该图像存在于文件系统中的该位置
  • Reportlab不会引发任何异常

问题

  • 我的线条和字符串渲染正常,但图像在生成的PDF中不可见

我看过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无效的原因感到困惑。

0 个答案:

没有答案