Python 分页符后出现Reportlab错误
我正在设计一个双面打印的两页表单。添加分页符后,出现以下错误:Python 分页符后出现Reportlab错误,python,reportlab,Python,Reportlab,我正在设计一个双面打印的两页表单。添加分页符后,出现以下错误: File "f:\Dropbox\pms\pms_reports.py", line 450, in <module> a = Key_card1() File "f:\Dropbox\pms\pms_reports.py", line 441, in __init__ doc.build(elements) File "c:\Python34\Lib\site-packages\reportlab\pl
File "f:\Dropbox\pms\pms_reports.py", line 450, in <module>
a = Key_card1()
File "f:\Dropbox\pms\pms_reports.py", line 441, in __init__
doc.build(elements)
File "c:\Python34\Lib\site-packages\reportlab\platypus\doctemplate.py", line 1171, in build
BaseDocTemplate.build(self,flowables, canvasmaker=canvasmaker)
File "c:\Python34\Lib\site-packages\reportlab\platypus\doctemplate.py", line 927, in build
self.handle_flowable(flowables)
File "c:\Python34\Lib\site-packages\reportlab\platypus\doctemplate.py", line 775, in handle_flowable
self.handle_keepWithNext(flowables)
File "c:\Python34\Lib\site-packages\reportlab\platypus\doctemplate.py", line 742, in handle_keepWithNext
while i<n and flowables[i].getKeepWithNext(): i += 1
builtins.TypeError: getKeepWithNext() missing 1 required positional argument: 'self'
文件“f:\Dropbox\pms\pms\u reports.py”,第450行,在
a=钥匙卡1()
文件“f:\Dropbox\pms\pms\u reports.py”,第441行,在\uu init中__
文档生成(元素)
文件“c:\Python34\Lib\site packages\reportlab\platypus\doctemplate.py”,第1171行,内部版本
BaseDocTemplate.build(self、flowables、canvasmaker=canvasmaker)
文件“c:\Python34\Lib\site packages\reportlab\platypus\doctemplate.py”,第927行,内部版本
自身手柄可流动(可流动)
文件“c:\Python34\Lib\site packages\reportlab\platypus\doctemplate.py”,第775行,在handle\u flowable中
自身手柄(可流动)
文件“c:\Python34\Lib\site packages\reportlab\platypus\doctemplate.py”,第742行,在handle\u keepWithNext中
当我时,我试着去理解错误,我想这里面有问题
doc=SimpleDocTemplate(“key\u card.pdf”,pagesize=A4)
。问题可能是参数“key\u card.pdf”。我不确定
编辑:可能,BaseDocTemplate.build(self,flowables,canvasmaker=canvasmaker)
问题是关于连接到doc.build(elements)中元素的“flowables”参数
解决方案->元素。追加(PageBreak)应该是元素。追加(PageBreak())我转换了创建pageTemplate和框架的代码,并使用BaseDoctTemplate,得到了完全相同的错误。当我注释掉分页符时,所有的打印都没有错误(除了没有分页符)。我想我找到了元素。append(分页符)
应该是元素。append(分页符())
。我在谷歌上搜索了“缺少1个必需的位置参数:'self'”,发现这些参数在类初始化时应该小心;)你完全正确。我不知道为什么我没有看到它。如果你把你的评论作为回答,我会接受的谢谢
from reportlab.lib.pagesizes import A4, landscape
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, PageBreak
from reportlab.lib.styles import getSampleStyleSheet
class Key_card1():
def __init__(self, start_date=datetime.now(), room="1",
end_date=datetime.now()+timedelta(days=1), password = "999999"):
stylesheet = getSampleStyleSheet()
doc = SimpleDocTemplate("key_card.pdf", pagesize=A4)
if password == "999999":
password = str(random.randint(10000,99999))
roomno = "Room" + room
w_text = []
w_text.append(Paragraph("To use the wireless broadband…:",stylesheet["BodyText"]))
w_text.append(Paragraph("User id: <b>" + roomno + "</b>", stylesheet["BodyText"]))
w_text.append(Paragraph("Password: <b>" + password + "</b>", stylesheet["BodyText"]))
message_text = []
message_text.append(Paragraph("Our current menus ...", stylesheet["BodyText"]))
message_text.append(Paragraph("Our restaurant can get very busy ...",stylesheet["BodyText"]))
message_text.append(Paragraph("Your shower has a safety device to...", stylesheet["BodyText"]))
message_text .append(Paragraph("Please do not hesitate to call...",stylesheet["BodyText"]))
elements=[]
table_data = [(w_text, message_text)]
the_table = Table(table_data)
the_table.setStyle(TableStyle([('VALIGN',(0,0),(-1,-1),'MIDDLE')]))
elements.append(the_table)
elements.append(PageBreak)
#Cover page
logo= "y:\marketing\priory_master_logo bw.jpg"
im = Image(logo, 3*cm, 1.258*cm)
cover_data = []
cover_data.append(im)
cover_data.append(Paragraph("Room number : " + room, stylesheet["BodyText"]))
left_cell =[]
left_cell.append(Paragraph(" ", stylesheet["BodyText"]))
table_data1 = [(left_cell, cover_data)]
the_table1 = Table(table_data1)
the_table1.setStyle(TableStyle([('VALIGN',(0,0),(-1,-1),'MIDDLE')]))
elements.append(the_table1)
doc.build(elements)