Reportlab - how to introduce line break if the paragraph is too long for a line

后端 未结 3 597
北海茫月
北海茫月 2020-12-19 02:15

I have a list of text to be added to a reportlab frame

style = getSampleStyleSheet()[\'Normal\']
style.wordWrap = \'LTR\'
style.leading = 12
for legend in le         


        
相关标签:
3条回答
  • 2020-12-19 02:46
    style.wordWrap = 'LTR'
    

    Sorry if I misunderstood this as letter, but Paragraph itself is "word wrapped", in relation to document pagesize also.

    There's userguide value of 'CJK' for Asian language, possibly your setting do the text to search for finishing line according to something else, like Asian language word splitting. Set it to None should do the thing.

    0 讨论(0)
  • 2020-12-19 02:47

    As PolyGeo says, you can use <br /> to add new lines to a Paragraph.

    Convert new lines to <br /> tags

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

    Updated code

     for legend in legends:
            content = str(legend).replace('\n','<br />\n')
            elements.append(Paragraph(content, style))
    
    0 讨论(0)
  • 2020-12-19 03:06

    This may or may not apply but I just learned that \n which I normally use to introduce new lines in Python strings gets ignored by the Paragraph object of ReportLab.

    From a mailing list I learned that inside Paragraph you can use HTML's <br/> to introduce the new line instead.

    That works well for me.

    0 讨论(0)
提交回复
热议问题