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

时间:2014-12-05 19:29:59

标签: python reportlab

有没有办法在ReportLab的段落中插入回车符?我试图将“\ n”连接到我的段落字符串,但这不起作用。

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

我想这样做,因为我将名字放入单元格并想要控制单元格中一行上有多少名称(理想情况下为1)。一个单元格可以包含多个名称,但在该单元格中我希望每个名称都在其自己的行上,因此需要插入新行。

在某些时候我得到一个可流动到大的框架错误(我认为它与表太大或有太多的合并行有关)。我能想到的唯一方法就是在一个单元格中每行只有一个名称,这样我就可以根据名称的数量来限制表格大小,并将表格分成更小的表格。

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

2 个答案:

答案 0 :(得分:3)

Paragraph是reportlab中的Flowable。换行符不会以您希望的方式在可流动的内部工作。如果您的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

答案 1 :(得分:2)

如果您想要开始一个新段落(无论您是否在表中),您都可以使用<br/>标签。这对你也有用:

Title = Paragraph("Title" + "<br/>" + "Page", myStyle)

(信用:Reportlab - how to introduce line break if the paragraph is too long for a line