[reportlab-users] Re: Problem with row&column spanning code not calculating table h eights

David Fraser reportlab-users@reportlab.com
Thu, 16 Oct 2003 20:28:39 +0200


Henning von Bargen wrote:

>Andy Robinson wrote:
>
>  
>
>>I will reiterate by the "real world" guidelines I always give
>>to make sure you get reasonable tables in the month you need them.
>>    
>>
>
>  
>
>>(1) work out and explicitly specify your widths
>>(2) let it work out the heights, unless there is a good
>>reason why it can't; if it can't, then provide some heights.
>>(3) if doing big data sets which will span several pages,
>>make lots of one-row or few-row tables and put them
>>after each other in the story.  It's easier on your brain.
>>
>>Best Regards,
>>
>>Andy
>>    
>>
>
>According to (3), I can still offer my patch for tables.py
>(in my own project I named the class "LongTable" instead of "Table")
>that calculates only the necessary row-heights for the current page
>and thus works in O(nRows) compared to the normal "Table" O(nRows^2) run
>time.
>Using this "LongTable" class (only a few lines changed comparing to "Table"
>class)
>would eliminate the need for (3) in real-world multi-page tables
>and also allows using Paragraph instances for every cell value without
>significant
>performance issues.
>
>I also made some modifications to paragraph.py which are more suitable for
>tables.
>1. When line-wrapping, try line-breaking not only at " " spaces,
>    but on inner-word "-" characters, too.
>2. When a word is too long to fit into one line and it does not contain any
>"-",
>    put as many characters as possible into the line and the rest into the
>next line.
>
>These modifications are valuable for the german language, where very long
>words
>are nothin unusual.
>
>Try running some table layouts with data like
>"supercalifragilisticexlialigetic"
>or some German words like "Entwicklungshilfeministerium" etc., and you'll
>see the difference.
>
>Best regards,
>Henning
>  
>
This sounds great. It really sounds like having an ability to select 
algorithms for table layout would work well, so you could choose 
something like this if neccessary.

Thanks!
David