如何在 ReportLab 段落中插入回车?

20 浏览
0 Comments

如何在 ReportLab 段落中插入回车?

有没有一种方法可以在ReportLab的段落中插入换行符?我尝试将\"\\n\"连接到我的段落字符串中,但这并没有起作用。

Title = Paragraph("Title" + "\n" + "Page", myStyle)

我要这样做是因为我正在将姓名放入单元格,想要控制单元格中有多少个姓名位于同一行(理想情况下为1)。一个单元格可以包含多个姓名,但在该单元格中,我希望每个姓名都单独占用一行,因此需要插入新行。

在某个时候,我会得到“流可过大以致于框架错误”的错误(我认为这与表格过大或有太多合并行有关)。我唯一可以想到的方法是在单元格中每行只有一个姓名,这样我可以根据姓名数量限制表格大小并将表格分成较小的表格。

似乎必须有更简洁的方法来做到这一点。有什么建议吗?

admin 更改状态以发布 2023年5月21日
0
0 Comments

Paragraph 是 reportlab 中的可流动文本。在流动文本内部,换行字符不会按照您预想的方式工作。如果您的 Paragraph 在表格中(正如您所建议的那样),您可以考虑创建一个没有可流动文本的单元格。例如,您可以这样做:

data = [['Title\nPage', 'Name', 'Exists'],  # note the newline character
        ['', 'George', 'True']]
t = Table(data, style=style_)
...

上面的示例将使第一个数据单元格高度为两行(但仍然属于同一个单元格)。

如果您确实需要保留 Paragraph 可流动文本的样式,您可以在同一个单元格中插入两个段落:

title1 = Paragraph("Title", myStyle)
title2 = Paragraph("Page", myStyle)
cell = [title1, title2]               # put this in a single cell of your table

0
0 Comments

如果您想开始一个新段落(无论您是否在表格中),都可以使用
标签。这也适用于您:

Title = Paragraph("Title" + "" + "Page", myStyle)

(来源:Reportlab - 如果段落太长而无法在一行中断行

0