7

使用 ReportLab,我想渲染一个大字体的文本块。现在,我的代码将文本放在一个段落中,这样它就可以被自动换行。但是,文本在渲染时会被挤在一起。

似乎没有考虑我为 Paragraph 对象指定的高度。我可以添加段落的属性来解决这个问题吗?

我的代码如下:

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch 
from reportlab.platypus import Paragraph
from  reportlab.lib.styles import ParagraphStyle
from reportlab.lib.enums import TA_CENTER

doc = canvas.Canvas('test.pdf')
p = ParagraphStyle('test')
p.textColor = 'black'
p.borderColor = 'black'
p.borderWidth = 1
p.alignment = TA_CENTER
p.fontSize = 100

para = Paragraph("THIS IS A REALLY LONG AND BIG STRING OF TEXT RIGHT HERE!!!!!", p)
para.wrapOn(doc,1200,1000)
para.drawOn(doc, 0.5*inch, 6*inch)
doc.save()
4

1 回答 1

6

答案是将前导属性设置为 120:

p.leading = 120

默认情况下,样式的 fontSize 为 10,前导值为 12。leading 参数指定从一个文本行前进到下一个文本行时向下移动的距离。

于 2013-03-13T11:01:31.327 回答