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

use*_*797 5 python reportlab

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

Title = Paragraph("Title" + "\n" + "Page", myStyle)
Run Code Online (Sandbox Code Playgroud)

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

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

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

πόδ*_*κύς 6

AParagraphFlowable在 reportlab 中。换行符不会以您希望的方式在 flowable 中工作。如果您Paragraph在表格中(如您所建议的那样),您可能会考虑创建一个没有流动的单元格。例如,您可以这样做:

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

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

但是,如果您确实需要保留 Flowable 的样式Paragraph,则可以在同一个单元格中插入两个段落:

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


num*_*tus 6

如果你想开始一个新的段落(不管你是否在表格中),你可以使用<br/>标签。这也适用于您:

Title = Paragraph("Title" + "<br/>" + "Page", myStyle)
Run Code Online (Sandbox Code Playgroud)

(信用:Reportlab - 如果段落对于一行来说太长,如何引入换行符

  • `&lt;br&gt;` 将引发 `ValueError: paraparser: syntax error: No content allowed in br tag` 但是 `&lt;br/&gt;` 或 `&lt;br /&gt;` [两者](/sf/ 462741/673991) 工作正常。 (2认同)