Reportlab - ListFlowable,从给定的字符串列表生成Listitem

时间:2015-10-27 09:39:33

标签: python reportlab

这是我的第一篇StackOverflow帖子,所以如果我犯了任何标记错误或任何类似错误,我想道歉。

这是我正在进行的当前项目: 我正在开发一个Django Web应用程序,负责根据用户的动态输入生成审计报告。用户可以选择引用文件的变体。

我目前面临的问题如下:

我想生成列表中给出的静态元素的清单。 这是我到目前为止的代码。

def generateList(list_of_bullets):
    styles = getSampleStyleSheet()
    t1 = ListFlowable([
         for element in list_of_bullets:
             ListItem(Paragraph(element, styles['Normal']), bulletColor=CMYKColor(0.81,0.45,0.53,0.23), value='circle')
   )], bulletType='bullet', start='circle')
   story.append(t1)

PyCharm报告ListFlowable上预期的表达式([< -

下面的代码工作得很好

def get_bullet_list():
    styles = getSampleStyleSheet()
    t1 = ListFlowable([ListItem(Paragraph("Sample Text", styles['Normal']), bulletColor=CMYKColor(0.81, 0.45, 0.53, 0.23), value='circle')], bulletType='bullet', start='circle')

所以我的问题是:我有没有办法动态地将ListItems附加到ListFlowable?

1 个答案:

答案 0 :(得分:1)

由于#python @ irc.freenode.org上有一位善意的用户,我想出了如何动态执行此操作。

以下代码经过测试并有效。

def makeBulletList(list):
    styles=getSampleStyleSheet()
    style=styles['Normal']
    table=ListFlowable([ListItem(Paragraph(x, style), leftIndent=35, bulletColor='black', value='circle') for x in list], bulletType='bullet')
    return table