Ari*_*ion 3 python reportlab paragraph
我有一个从数据库动态提取的文本块,在提供给用户之前放在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)
Run Code Online (Sandbox Code Playgroud)
但是,这在这里不起作用,因为我只有一个大的段落.
DTi*_*ing 12
很确定你想要改变的是领先的.从第6章的用户手册.
要获得双倍行距文本,请使用高导程.如果将autoLeading(默认为"off")设置为"min"(使用观察到的前导即使小于指定值)或"max"(使用较大的观察值和指定值),则尝试通过以下方式确定线路上的前导行基础.如果行包含不同的字体大小等,这可能很有用.
前导在第2章中定义:
行间距(领先)
一行开始的点与下一行开始的点之间的垂直偏移称为前导偏移.
因此,尝试不同的领导值,例如:
style = getSampleStyleSheet()['Normal']
style.leading = 24
Run Code Online (Sandbox Code Playgroud)