Search code examples
pythonpdfreportlab

How to create a bulleted list in ReportLab


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...


Solution

  • 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))