Как создать маркированный список в ReportLab - PullRequest
6 голосов
/ 14 апреля 2009

Как я могу создать маркированный список в ReportLab? Документация разочаровывающе расплывчата. Я пытаюсь:

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

Но я продолжаю получать ошибки вроде list index out of range. Кажется, я не могу поставить более одного <para></para> за один вызов Paragraph()? Я также попытался установить TEXT_STYLE.bulletText="&bull;", но это тоже не работает ...

Ответы [ 2 ]

7 голосов
/ 15 апреля 2009

Аргумент bulletText на самом деле является конструктором объекта Paragraph, а не тегом <para> :-) Попробуйте это:

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

Взгляните на примеры на стр. 68 (стр. 74 сейчас, в 2012 г.) документации ReportLab . В ReportLab принято использовать тег <bullet>, и документы предупреждают, что у вас может быть только один экземпляр на Paragraph. Мы отображаем наши маркеры в ReportLab следующим образом:

story.append(Paragraph('<bullet>The rain in spain</bullet>', TEXT_STYLE))
4 голосов
/ 01 марта 2011

Самые последние версии ReportLab имеют объекты ListFlowable и ListItem (см. Главу 9 текущего руководства пользователя).

...