14

我有一个要添加到 reportlab 框架的文本列表

style = getSampleStyleSheet()['Normal']
style.wordWrap = 'LTR'
style.leading = 12
for legend in legends:
    elements.append(Paragraph(str(legend),style))

如果图例太长,则末尾的文本根本不可见。在这种情况下如何引入换行符。

4

3 回答 3

23

这可能适用也可能不适用,但我刚刚了解到\n我通常用来在 Python 字符串中引入新行的内容被 ReportLab 的 Paragraph 对象忽略。

邮件列表中我了解到,在 Paragraph 中,您可以使用 HTML<br/>来引入新行。

这对我很有效。

于 2012-02-24T02:00:12.893 回答
13

正如PolyGeo所说,您可以使用<br />向段落添加新行。

将新行转换为<br />标签

replace('\n','<br />\n')

更新代码

 for legend in legends:
        content = str(legend).replace('\n','<br />\n')
        elements.append(Paragraph(content, style))
于 2013-03-22T12:40:51.080 回答
0
style.wordWrap = 'LTR'

抱歉,如果我将其误解为letter,但 Paragraph 本身是“word Wrapped”,与文档页面大小相关。

亚洲语言有“CJK”的用户指南值,可能您的设置根据其他内容(如亚洲语言分词)执行文本搜索终点线。将其设置为 None 应该做的事情。

于 2011-12-11T11:22:09.563 回答