如何使用Reportlab在单个段落中的行之间添加空格

|| 我有一段文本是从数据库中动态提取的,并在提供给用户之前以PDF格式放置。文本被放置在衬砌的背景上,就像记事本纸一样。我想对文本进行间隔,以便每条背景线之间只有一行文本。 我能够使用以下代码在段落之间创建垂直间距(用于生成PDF的另一部分)。
    style = getSampleStyleSheet()[\'Normal\']
    style.fontName = \'Helvetica\'
    style.spaceAfter = 15
    style.alignment = TA_JUSTIFY

    story = [Paragraph(choice.value,style) for choice in chain(context[\'question1\'].itervalues(),context[\'question2\'].itervalues())]
    generated_file = StringIO()
    frame1 = Frame(50,100,245,240, showBoundary=0)
    frame2 = Frame(320,100,245,240, showBoundary=0)
    page_template = PageTemplate(frames=[frame1,frame2])
    doc = BaseDocTemplate(generated_file,pageTemplates=[page_template])
    doc.build(story)
但是,这在这里不起作用,因为我只有一个很大的段落。
已邀请:
可以肯定,您要更改的内容是领先的。摘自第6章的用户手册。 要获取双倍间距的文本,请使用高 领导。如果您设定 autoLeading(默认\“ off \”)为 \“ min \”(即使 小于指定的大小)或\“ max \”(使用 观察和指定的较大者) 然后尝试确定 逐行领导。 如果这些行 包含不同的字体大小等。 领导在第2章中已定义: 行间间距(领先) 点之间的垂直偏移 在哪一行开始,哪里 下次开始称为领导 偏移量。 因此,请尝试使用不同的Leading值,例如:
style = getSampleStyleSheet()[\'Normal\']
style.leading = 24
添加导致ParagraphStyle
orden = ParagraphStyle(\'orden\')
orden.leading = 14
orden.borderPadding = 10
orden.backColor=colors.gray
orden.fontSize = 14
产生PDF
buffer = BytesIO()
p = canvas.Canvas(buffer, pagesize=letter)

text = Paragraph(\"TEXT Nro 0001\", orden)
text.wrapOn(p,500,10)
text.drawOn(p, 45, 200)


p.showPage()
p.save()
pdf = buffer.getvalue()
buffer.close()
结果

要回复问题请先登录注册