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

27,717

Solution 1

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.

Solution 2

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))
Share:
27,717
Vinod
Author by

Vinod

Want to be an expert in Programming

Updated on March 23, 2020

Comments

  • Vinod
    Vinod over 4 years

    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 legends:
        elements.append(Paragraph(str(legend),style))
    

    If the legend is too long, the text at the end is not visible at all. How to introduce line breaks in this situation.