python-ReportLab LongTable LayoutError:页面太大
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-ReportLab LongTable LayoutError:页面太大,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2013字,纯文字阅读大概需要3分钟。
内容图文
![python-ReportLab LongTable LayoutError:页面太大](/upload/InfoBanner/zyjiaocheng/656/be13eb1130914363824d42c9ef9a7ead.jpg)
我使用LongTables显示表格数据,但是当行高超过页面高度时,它崩溃
File "c:\edat\19_with_edm\fiods\..\fiods\reporting\pdf_utils.py", line 1497, in build_table
doc.build(story, canvasmaker=NumberedCanvas)
File "C:\Python27\lib\site-packages\reportlab\platypus\doctemplate.py", line 880, in build
self.handle_flowable(flowables)
File "C:\Python27\lib\site-packages\reportlab\platypus\doctemplate.py", line 793, in handle_flowable
raise LayoutError(ident)
LayoutError: Flowable <LongTable@0x018DB0A8 30 rows x 20 cols> with cell(0,0) containing
'Eq\nLvl\nD'(756.0 x 967.6) too large on page 2 in frame 'edat_table_frame'(756.0 x 504.0*) of template 'edat_page_template'
解决方法:
该错误看起来像是您尝试格式化表格,如果框架在单个页面中,则超出限制.我用“表”和“长表”测试了一个代码,只要您不尝试同时格式化第一页和第二页,它将在多页上显示数据.
示例代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from reportlab.platypus import SimpleDocTemplate, Table, LongTable, TableStyle, BaseDocTemplate, Frame, Paragraph, NextPageTemplate, PageTemplate
from reportlab.lib.pagesizes import letter, inch
from reportlab.lib import colors
def testPdf():
doc = BaseDocTemplate("testpdf.pdf",pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=18, showBoundary=True)
width, height = letter
print width
print height
elements = []
datas = []
for x in range(1,50):
datas.append(
[x,x+1]
)
t=LongTable(datas)
tTableStyle=[
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]
t.setStyle(TableStyle(tTableStyle))
elements.append(t)
frameT = Frame(doc.leftMargin, doc.bottomMargin, doc.width, doc.height, id='normal')
doc.addPageTemplates([PageTemplate(id='OneCol',frames=frameT)])
doc.build(elements)
if __name__ == '__main__':
testPdf()
如果您使用以下方式格式化表格:
tTableStyle=[
('SPAN',(0,0),(0,38), #span over the frame limit
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]
然后,您将遇到此错误.我想说最好的方法可能是手动格式化表格,但我希望有更好的解决方案.
内容总结
以上是互联网集市为您收集整理的python-ReportLab LongTable LayoutError:页面太大全部内容,希望文章能够帮你解决python-ReportLab LongTable LayoutError:页面太大所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。