我正在尝试使用python中的reportlab创建报告。
以下是问题出现之前的相关行:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.pagesizes import landscape
c = canvas.Canvas(pdf_file_name, pagesize=landscape(letter))
这是我的python脚本中的第53行:
c.drawImage(350, 50, width=None,height=None)
我收到以下错误:
Traceback (most recent call last):
File "report_test.py", line 59, in <module>
import_data(data_file)
File "report_test.py", line 29, in import_data
generate_certificate(email, agent_id, pdf_file_name)
File "report_test.py", line 53, in generate_certificate
c.drawImage(350, 50, width=None,height=None)
TypeError: drawImage() takes at least 4 arguments (5 given)
我只看到4个参数。我错过了什么?
答案 0 :(得分:1)
传递给任何实例方法的第一个参数是实例本身,按约定称为self
。在这种情况下,Canvas
对象c
作为第一个参数传递。这个加上你明确传递的四个参数,就会产生五个。
但是,似乎五个人超过四个,它说它至少需要四个,对吗?那么困扰是什么,艾玛?看来此错误消息是错误的(即错误)。可能真正抱怨的是你没有指定要绘制的图像。这个(文件名或ImageReader
对象)应该是第一个参数。
答案 1 :(得分:0)
您错过了第一个参数,该参数应该是ImageReader
个对象或文件名。