Reportlab - 如何在段落过长时插入换行
我有一段文字需要添加到一个reportlab的框架里。
style = getSampleStyleSheet()['Normal']
style.wordWrap = 'LTR'
style.leading = 12
for legend in legends:
elements.append(Paragraph(str(legend),style))
如果说明文字太长,最后的文字就完全看不见了。那在这种情况下,怎么才能换行呢?
3 个回答
0
style.wordWrap = 'LTR'
抱歉,如果我把这个理解成了字母,但段落本身是“自动换行”的,这也和文档的页面大小有关。
对于亚洲语言,有一个用户指南的设置叫做 'CJK',可能你的设置是根据其他东西来决定文本的换行,比如亚洲语言的分词。把它设置为 None 应该就能解决这个问题。
14
正如PolyGeo所说,你可以使用<br />
来在段落中添加换行。
将换行符转换为<br />
标签
replace('\n','<br />\n')
更新后的代码
for legend in legends:
content = str(legend).replace('\n','<br />\n')
elements.append(Paragraph(content, style))
29
这可能适用,也可能不适用,但我刚刚了解到,在Python字符串中我通常用来换行的\n
在ReportLab的段落对象中是被忽略的。
我从一个邮件列表上了解到,在段落中你可以使用HTML的<br/>
来换行。
这样对我来说效果很好。