[reportlab-users] Handling of too long entries in Table
Robin Becker
reportlab-users@reportlab.com
Tue, 15 Oct 2002 15:47:40 +0100
In article <200210151555.54908.w.richert@gmx.net>, Willi Richert <w.richert@gmx.net> writes
>Hi,
>
>I tried the following solution:
>- data is a 2-dim array with strings in it
>- For each data-element I generate a Paragraph object and see which size it
>is.
>- Paragraph has the member getActualLineWidths0() which shall return a list of
>the line widths.
>
>But: When I try to do this I get:
>raceback (most recent call last):
> File "movatisreport.py", line 135, in ?
> t = tf.getTable(data)
> File "movatisreport.py", line 85, in getTable
> w=p.getActualLineWidths0()
> File "/usr/lib/python2.2/site-packages/reportlab/platypus/paragraph.py",
>line 737, in getActualLineWidths0
> w.append(self.width - frag.extraSpace)
>AttributeError: 'tuple' object has no attribute 'extraSpace'
>
>The frag contains. e.g. the following at runtime:
>(177.11000000000001, ['Customer']),
>which of course has no extraSpace member.
>
>Is this a bug? If not, is it possible to get the width of the splitted
>paragraph differently?
>
>This problem can't be so difficult.
>
>Thanks,
>willi
......
well this is an experimental method as is indicated by the 0 at the end of the name also whoever
wrote it didn't appreciate that we have two forms of broken line.
try this
def getActualLineWidths0(self):
"""Convenience function; tells you how wide each line
actually is. For justified styles, this will be
the same as the wrap width; for others it might be
useful for seeing if paragraphs will fit in spaces."""
assert hasattr(self, 'width'), "Cannot call this method before wrap()"
if self.blPara.kind:
func = lambda frag, w=self.width: w - frag.extraSpace
else:
func = lambda frag, w=self.width: w - frag[0]
return map(func,self.blPara.lines)
--
Robin Becker