如何在ReportLab中调整列到内容的大小?

前端之家收集整理的这篇文章主要介绍了如何在ReportLab中调整列到内容的大小?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用ReportLab在python中工作.我需要生成PDF格式的报告.数据从数据库中检索并插入表中.
这是简单的代码

from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate,Table,TableStyle
from reportlab.lib.units import inch
doc = SimpleDocTemplate("simple_table.pdf",pagesize=letter)
elements = []

data= [['00','01','02','03','04'],['10','Here is large field retrieve from database','12','13','14'],['20','21','22','23','24'],['30','31','32','Here is second value','34']]
t=Table(data)
columnWidth = 1.9*inch;
for x in range(5):
        t._argW[x]= cellWidth
elements.append(t)
doc.build(elements)

有三个问题:

>单元格中的冗长数据在一行中的另一个单元格上重叠.
>当我手动增加列宽时,例如cellWidth = 2.9 * inch;,页面不可见,不从左右滚动
>我不知道如何在单元格中附加数据,这意味着如果数据的大小很大,它应该附加到同一单元格中的下一行.

我是如何解决这个问题的?

最佳答案
对于初学者,我不会像你那样设置列大小.只需传递Table colWidths参数,如下所示:

Table(data,colWidths=[1.9*inch] * 5)

现在你的问题.如果未设置colWidth参数,reportlab将为您执行此操作并根据您的数据对列进行分隔.如果这不是您想要的,您可以将数据封装到Paragraph中,就像Bertrand所说的那样.以下是您的代码修改示例:

from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate,TableStyle,Paragraph
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
styles = getSampleStyleSheet()
doc = SimpleDocTemplate("simple_table.pdf",Paragraph('Here is large field retrieve from database',styles['Normal']),'34']]
t=Table(data)
elements.append(t)
doc.build(elements)

我想你会明白这个想法.

原文链接:https://www.f2er.com/css/427185.html

猜你在找的CSS相关文章