Reportlab - 如何在单词之间添加空格

5

我是一个文本:

elements.append(Paragraph(<font size=10>word1 word2</font>, styleSheet["Normal"]))

我想在单词1和单词2之间添加空格:

word1    word2

我该怎么做呢?

也许只需要 ' '.join([word1, word2])? - pkruk
这不起作用。它没有在word1和word2之间添加空格。 - Olga Donin
看起来你需要在它们之间加上一个\t制表符。 - martineau
嗯,也许这个示例会有帮助: ptext = '<font size=12>此致敬礼,</font>' Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 48)) - pkruk
它也不起作用。它只添加一个空格。 - Olga Donin
然后我们在行之间有间距,而不是在特定行中的单词之间有间距。 - Olga Donin
3个回答

11

我知道这有点晚了,但对我来说,添加不间断空格的 html 代码 &nbsp; 很有效。


你帮了我。谢谢。 - Elroum
 是用于行内单词之间的完美空格。但是,如果您想在一行中的第一个单词(或字符)之前添加多个空格,则需要进行一些解决方法,普通的 将无法实现。我的解决方法是添加一个小白色点,这样 就不是该行的第一个字符了... - sipi09

3

我怀疑这个问题没有简单的解决方法。

作为一种解决方法,你可以在段落中添加一个空白的(透明或背景颜色)1像素 x 1像素的图像,并将其缩放到所需的宽度。

<font size=10>word1<img src="../path/to/image" width="10" />word2</font>

另一种(繁琐的)解决方案是使用canvas.beginText(x,y)创建的textobjects自己布置段落。

textobject = canvas.beginText(x, y)
textobject.setWordSpace(10)
textobject.textLine("word1 word2")
... (setting other parameters such as font etc.)
canvas.drawText(textobject)

希望这能有所帮助。

0
def pad_text(text, num):
    text = str(text)
    num = int(num)
    text = text[:num]
    remaining = num - len(text)
    print(remaining)
    if (remaining == 0):
        return '<div>'+text+'</div>'
    else:
        res = '<div>'+text+ ' &nbsp;'*remaining +'</div>'
        return res

你可以使用这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接