为 Reportlab 中的每一列设置不同的大小

Set different size for each columns in Reportlab

我在 python 中使用 Reportlab。现在我正在尝试自定义每个列宽。因为有些列需要小宽度而不是其他列。有什么方法可以让每一列都可以自定义吗?

目前从图片上看,我想把Partname列的宽度加宽,tax、Style p等设置小宽度

views.py

columns = [
        {'title': 'Part No', 'field': 'partno'},
        {'title': 'Part Name', 'field': 'partname'},
        {'title': 'Style P', 'field': 'style'},
        {'title': 'Standard P', 'field': 'standardpack'},
        {'title': 'Unit Per Car', 'field': 'unit'},
        {'title': 'Quantity PCS', 'field': 'quantity'},
        {'title': 'Tax', 'field': 'tax'},
        {'title': 'Unit Price', 'field': 'price'},
        {'title': 'Amount', 'field': 'amount'},
    ]

    table_data = [[col['title'] for col in columns]]
    
        table_row = [str(tr.part.partno),tr.part.partname,
                     tr.part.stylepack, tr.part.standardpack,tr.part.unit, tr.quantity, tr.part.tax, tr.part.price, tr.amount]
        table_data.append(table_row)

    table = Table(table_data, repeatRows=1, colWidths=[150,150])
    table.setStyle(TableStyle([
        ('BOX', (0, 0), (-1, -1), 0.20, colors.dimgrey),
        ('FONT', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('INNERGRID', (0, 0), (-1, -1), 0.1, colors.black),     
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
        ('FONTSIZE', (0, 0), (-1, -1), 10),      
    ]))
    elements.append(table)

您可以这样申请:

from reportlab.lib.units import inch

 colWidths=(1.2*inch, 1.2*inch, 2.4*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch, 1.2*inch)