Canvas 实例没有属性 'drawCenteredString'
Canvas instance has no attribute 'drawCenteredString'
我在以下代码的某处收到错误。我已经三次检查我的文件路径,我相信它们是正确的。我正在学习一个相当过时的教程,所以我仔细检查了文档,它似乎是正确的。
代码:
# Import data cleaning packages.
import csv
# Import pdf filling packages.
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.pagesizes import landscape
from reportlab.platypus import Image
data_file = '/Users/josephnardone/Desktop/python/data.csv'
def import_data(data_file):
attendee_data = csv.reader(open(data_file,'rb'))
for row in attendee_data:
last_name = row[0]
first_name = row[1]
pdf_file_name = last_name + '_' + first_name + '.pdf'
generate_certificate(first_name, last_name, pdf_file_name)
def generate_certificate(first_name, last_name, pdf_file_name):
attendee_name = first_name + ' ' + last_name
c = canvas.Canvas(pdf_file_name, pagesize = landscape(letter))
# PDF Header Text
c.setFont('Helvetica', 30, leading = None)
c.drawCenteredString(415, 500, 'Invitation to My Party')
c.setFont('Helvetica',15, leading = None)
c.drawCenteredString(415, 450, attendee_name)
c.showPage()
c.save()
import_data(data_file)
错误:
Traceback (most recent call last):
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 36, in <module>
import_data(data_file)
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 19, in import_data
generate_certificate(first_name, last_name, pdf_file_name)
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 27, in generate_certificate
c.drawCenteredString(415, 500, 'Invitation to My Party')
AttributeError: Canvas instance has no attribute 'drawCenteredString'
[Finished in 0.2s]
发现教程中的错误。问题已解决,generate_certificate 的双倍定义,请参见下面的解决方案:
def import_data(data_file):
attendee_data = csv.reader(open(data_file,'rb'))
for row in attendee_data:
last_name = row[0]
first_name = row[1]
pdf_file_name = last_name + '_' + first_name + '.pdf'
def generate_certificate(first_name, last_name, pdf_file_name):
attendee_name = first_name + ' ' + last_name
c = canvas.Canvas(pdf_file_name, pagesize = landscape(letter))
我在以下代码的某处收到错误。我已经三次检查我的文件路径,我相信它们是正确的。我正在学习一个相当过时的教程,所以我仔细检查了文档,它似乎是正确的。
代码:
# Import data cleaning packages.
import csv
# Import pdf filling packages.
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.pagesizes import landscape
from reportlab.platypus import Image
data_file = '/Users/josephnardone/Desktop/python/data.csv'
def import_data(data_file):
attendee_data = csv.reader(open(data_file,'rb'))
for row in attendee_data:
last_name = row[0]
first_name = row[1]
pdf_file_name = last_name + '_' + first_name + '.pdf'
generate_certificate(first_name, last_name, pdf_file_name)
def generate_certificate(first_name, last_name, pdf_file_name):
attendee_name = first_name + ' ' + last_name
c = canvas.Canvas(pdf_file_name, pagesize = landscape(letter))
# PDF Header Text
c.setFont('Helvetica', 30, leading = None)
c.drawCenteredString(415, 500, 'Invitation to My Party')
c.setFont('Helvetica',15, leading = None)
c.drawCenteredString(415, 450, attendee_name)
c.showPage()
c.save()
import_data(data_file)
错误:
Traceback (most recent call last):
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 36, in <module>
import_data(data_file)
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 19, in import_data
generate_certificate(first_name, last_name, pdf_file_name)
File "/Users/josephnardone/Desktop/python/pdf_gen.py", line 27, in generate_certificate
c.drawCenteredString(415, 500, 'Invitation to My Party')
AttributeError: Canvas instance has no attribute 'drawCenteredString'
[Finished in 0.2s]
发现教程中的错误。问题已解决,generate_certificate 的双倍定义,请参见下面的解决方案:
def import_data(data_file):
attendee_data = csv.reader(open(data_file,'rb'))
for row in attendee_data:
last_name = row[0]
first_name = row[1]
pdf_file_name = last_name + '_' + first_name + '.pdf'
def generate_certificate(first_name, last_name, pdf_file_name):
attendee_name = first_name + ' ' + last_name
c = canvas.Canvas(pdf_file_name, pagesize = landscape(letter))