Reportlab - 如果段落对于一行太长,如何引入换行符

时间:2010-09-28 18:44:51

标签: python pdf-generation newline reportlab

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

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

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

3 个答案:

答案 0 :(得分:15)

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

mailing list我了解到在Paragraph中你可以使用HTML <br/>来引入新行。

这对我很有用。

答案 1 :(得分:6)

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

将新行转换为<br />代码

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

更新了代码

 for legend in legends:
        content = str(legend).replace('\n','<br />\n')
        elements.append(Paragraph(content, style))

答案 2 :(得分:0)

style.wordWrap = 'LTR'

很抱歉,如果我误解为 letter ,但Paragraph本身就是“自动换行”,与文档页面大小相关。

对于亚洲语言,有'CJK'的用户指南价值,可能您的设置会根据其他内容搜索终点线,例如亚洲语言分词。将它设置为无应该做的事情。