编程语言
首页 > 编程语言> > 如何让子弹直接出现在python的reportlab包中缩进列表的文本旁边?

如何让子弹直接出现在python的reportlab包中缩进列表的文本旁边?

作者:互联网

我正在使用reportlab 2.6的ListFlowable制作带有彩色圆圈项目符号的项目符号列表.但是,我希望子弹出现在文本旁边,而不是与前面的非缩进文本对齐.我试图打开ListFlowable源代码,但我找不到那么多.这就是我所拥有的:

from reportlab.platypus import Paragraph, ListFlowable, ListItem, SimpleDocTemplate, Frame
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.colors import CMYKColor

doc = SimpleDocTemplate("SOtest.pdf")
styles = getSampleStyleSheet()
Story = []
Story.append(Paragraph("Header Text, I dont want the bullets directly below the H"
                       ,styles['Normal']))
my_list = ListFlowable(
    [
        ListItem(Paragraph("Line 1",styles['Normal'])
                 ,bulletColor = CMYKColor(0.81, 0.45, 0.53, 0.23)
                 ,value = 'circle'
                 ),
        ListItem(Paragraph("Line 2",styles['Normal'])
                 ,bulletColor = CMYKColor(0.81, 0.45, 0.53, 0.23)
                 ,value = 'circle'
                 )
        ],
    bulletType='bullet',
    start='circle'
    )

Story.append(my_list)
doc.build(Story)

此代码导致:

但我希望它看起来像:

我手动编辑了第二张图像以获得所需的效果.

我想在列表中列出一个列表,得到一个缩进的子弹,但后来我不知道如何使文本更接近子弹.

解决方法:

只需将leftIndent参数传递给ListItem即可.

my_list = ListFlowable([
    ListItem(Paragraph("Line 1", styles['Normal']),
         leftIndent=35, value='circle',
         bulletColor=CMYKColor(0.81, 0.45, 0.53, 0.23)
    ),
    ListItem(Paragraph("Line 2", styles['Normal']),
         leftIndent=35, value='circle',
         bulletColor=CMYKColor(0.81, 0.45, 0.53, 0.23))
],
bulletType='bullet',
start='circle',
leftIndent=10
)

编辑:
您必须设置ListFlowable的leftIndent以定义项目符号和文本之间的空间.

标签:python,reportlab,bulletedlist
来源: https://codeday.me/bug/20190625/1285823.html