How to create a bulleted list in ReportLab

gerdemb picture gerdemb · Apr 14, 2009 · Viewed 8.5k times · Source

How can I create a bulleted list in ReportLab? The documentation is frustratingly vague. I am trying:

text = ur '''
<para bulletText="&bull;">
item 1
</para>
<para bulletText="&bull;">
item 2
</para>
'''
Story.append(Paragraph(text,TEXT_STYLE))

But I keep getting errors like list index out of range. It seems that I can't put more than one <para></para> in a single call to Paragraph()? I also tried setting TEXT_STYLE.bulletText="&bull;" but that doesn't work either...

Answer

Jarret Hardie picture Jarret Hardie · Apr 14, 2009

The bulletText argument is actually a constructor to the Paragraph object, not the <para> tag :-) Try this:

story.append(Paragraph(text, TEXT_STYLE, bulletText='-'))

Have a look at the examples on page 68 (page 74 now, in 2012) of the ReportLab Documentation, though. The convention in ReportLab seems to be to use the <bullet> tag, and the docs do warn that you can have only one per Paragraph instance. We render our bullets in ReportLab like so:

story.append(Paragraph('<bullet>The rain in spain</bullet>', TEXT_STYLE))