Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reportlab - How to add space between words

I have a text:

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

I want to add space between word1 and word2:

word1    word2

How I can do this?

like image 694
Olga Donin Avatar asked Dec 10 '22 22:12

Olga Donin


2 Answers

I know I am a little late on this but adding the html for non-breaking space &nbsp; worked for me.

like image 126
Don Guernsey Avatar answered Dec 28 '22 06:12

Don Guernsey


I doubt there is an easy solution for it.

As a workaround you could try adding a blank (transperent or background color) 1px x 1px image in your paragraph and scale it to the desired width.

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

Another (tedious) solution would be to layout your paragraph yourself with textobjects created by canvas.beginText(x, y).

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

Hope this helps.

like image 43
Denis Avatar answered Dec 28 '22 07:12

Denis