[reportlab-users] Width of Preformatted?

Robin Becker robin at reportlab.com
Mon Jul 26 11:55:54 EDT 2010


On 26/07/2010 16:40, Michael Hipp wrote:

> I'm doing something like this:

>

> text = \

> """THE BUSINESS NAME

> 31 SOME ADDRESS

> DENVER, CO 12345

> 501-123-4567"""

> styles = getSampleStyleSheet()

> style = styles['Normal']

> cell = Preformatted(text, style)

>

> I need to get the actual width that will be taken up by that paragraph.

> But when I do:

>

> w,h = cell.wrap(1, 1,)

>

> It gives me something like 1,48. The second number is reasonable for the

> height, but why the bogus number for width?

>

> But if I try to do cell.minWidth() it says there's no such animal.

>

> How can I get the width of a Preformatted object?

>

> Thanks,

> Michael


I have a vague feeling that the wrap is bogus because this flowable just writes
whatevere you give it so it doesn't need to compute a width. Looking at the code
for preformatted it always returns what's given as the available width.


less negative we can compute using

from reportlab.pdfbase.pdfmetrics import stringWidth


fontSize=cell.style.fontSize
fontName=cell.style.fontName
w = max([stringWidth(line,fontName,fontSize) for line in cell.lines])

--
Robin Becker


More information about the reportlab-users mailing list