gpt4 book ai didi

python - 什么决定了 Reportlab 表格中的垂直空间?

转载 作者:太空狗 更新时间:2023-10-29 20:20:26 24 4
gpt4 key购买 nike

我在文档中定义了这个样式:

styles.add(ParagraphStyle(name='Table Header', font ='Helvetica-Bold',fontSize=16, alignment=TA_CENTER))

我用它来定义文本段落以进入每个表格的顶行(以便它们正确换行):

L2sub = [(Paragraph(L[0][0], styles['Table Header']))]

后来我添加表格的时候,也有定义样式的地方:

report.append(Table(data,style=[
('GRID',(0,0),(len(topiclist)-1,-1),0.5,colors.grey),
('FONT', (0,0),(len(topiclist)-1,0),'Helvetica-Bold',16),
('FONT', (0,1),(len(topiclist)-1,1),'Helvetica-Bold',12),
('ALIGN',(0,0),(-1,-1),'CENTER'),
('VALIGN',(0,0),(-1,-1),'MIDDLE'),
('SPAN',(0,0),(len(topiclist)-1,0)),
]))

我的问题是:定义第一行单元格垂直高度的设置在哪里?我遇到了一些问题,文本对于单元格而言太大和/或在单元格中设置得太低,但我无法确定是什么原因造成的,也无法确定如何修复它。我已经改变了两种尺寸,但我无法让单元格成为除了所有相同高度之外的任何东西。当我只是将文本而不是段落放入单元格时,表格 def'n 工作得很好,但段落导致了问题。

最佳答案

我不相信 TableStyle 中有允许您更改行高的设置。当您创建新的 Table 对象时会给出该测量值:

Table(data, colwidths, rowheights)

colwidthsrowheights 是测量值的列表,如下所示:

from reportlab.lib.units import inch
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph
from reportlab.platypus import Table
from reportlab.lib import colors

# Creates a table with 2 columns, variable width
colwidths = [2.5*inch, .8*inch]

# Two rows with variable height
rowheights = [.4*inch, .2*inch]

table_style = [
('GRID', (0, 1), (-1, -1), 1, colors.black),
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('ALIGN', (1, 1), (1, -1), 'RIGHT')
]

style = getSampleStyleSheet()

title_paragraph = Paragraph(
"<font size=13><b>My Title Here</b></font>",
style["Normal"]
)
# Just filling in the first row
data = [[title_paragraph, 'Random text string']]

# Now we can create the table with our data, and column/row measurements
table = Table(data, colwidths, rowheights)

# Another way of setting table style, using the setStyle method.
table.setStyle(tbl_style)

report.append(table)

colwidthsrowheights 可以更改为适合内容所需的任何度量。 colwidths 从左到右读取,rowheights 从上到下读取。

如果您知道所有表格行的高度都相同,您可以使用这个漂亮的快捷方式:

rowheights = [.2*inch] * len(data)

这会为您的 data 变量中的每一行提供一个类似 [.2*inch, .2*inch, ...] 的列表。

关于python - 什么决定了 Reportlab 表格中的垂直空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com