如何将整个表格与 Python Reportlab 库对齐?

Posted

技术标签:

【中文标题】如何将整个表格与 Python Reportlab 库对齐?【英文标题】:How to align a entire table with the Python Reportlab Library? 【发布时间】:2015-12-04 11:39:15 【问题描述】:

使用 reportlab 3.1.44 我试图将表格向左对齐(页面上的整个表格,而不是单元格)。 这是我的代码:

from reportlab.platypus import SimpleDocTemplate
from reportlab.platypus.tables import Table, TableStyle 
from reportlab.lib import colors 
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT

doc = SimpleDocTemplate('sample2.pdf', showBoundary=1) 
t = Table(
    (('','North','South','East','West'), 
    ('Quarter 1',100,200,300,400), 
    ('Quarter 2',100,400,600,800), 
    ('Total',300,600,900,'1,200')),

    (72,36,36,36,36), 
    (24,16,16,18)
) 

t.setStyle( 
    TableStyle([ 
        ('HALIGN',(0,0),(-1,-1),'LEFT'),\
        ('GRID', (0,0), (-1,-1), 0.25, colors.red, None, (2,2,1)), 
        ('BOX', (0,0), (-1,-1), 0.25, colors.blue), 
    ]) 
)
t.alignment = TA_LEFT
story = [t] 
doc.build(story) 

它仍然与中心对齐。任何想法如何解决这个问题?

【问题讨论】:

【参考方案1】:

显然 TableStyle 方法不起作用。 这是我的工作方式:

t = Table((('','North','South','East','West'), 
('Quarter 1',100,200,300,400), 
('Quarter 2',100,400,600,800), 
('Total',300,600,900,'1,200')), 
(72,36,36,36,36), 
(24, 16,16,18) 
,hAlign='LEFT')

【讨论】:

还有t.hAlign = 'LEFT' 而不是t.alignment = TA_LEFT。几乎和你写的一样

以上是关于如何将整个表格与 Python Reportlab 库对齐?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ReportLab 中制作一个简单的表格

Python Reportlab 分表以适应不同的页面

如何将Reportlab与基于Django Class的View相结合?

Python Reportlab PDF - 在页面上居中文本

如何在reportlab中手动将新页面添加到PDF文档?

Python reportlab用画布保存到指定位置