[reportlab-users] Understanding Wordwrap, esp. in tables
    Robin Becker 
    robin at reportlab.com
       
    Wed Nov 14 10:04:02 EST 2007
    
    
  
Andrew Smart wrote:
>> what is left oriented wordwrapping are we talking bidi etc etc.
> 
> "Left"-oriented wordwrapping:
> -----------------------
> This is a long sentence 
> which has a left 
> oriented word wrapping.
> -----------------------
> 
> "Block"-oriented wordwrapping:
> -----------------------
> This is a long sentence 
> Which    has   a   left 
> Oriented  word wrapping.
> -----------------------
> 
> The difference is how the left-over space is spent: between the
> words or at the end of the line. 
> 
>> Table cells know nothing about wrapping; they know about text 
>> lines and flowables (but not simultaneously. Paragraphs just 
>> about know how to break lines at spaces or at <br/> tags. We 
>> don't split inside words and I don't think we do right to 
>> left although others have done both.
> 
> Ok, understood. 
> 
> Regards,
> Andrew
......
Paragraphs can do both the above. The attributes values in the styles are rather 
old fashioned though.
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
I think the TA stands for "text align", but it's pretty stupid to have these 
numeric constants rather than some sensible string values. If you set a 
paragraphs style alignment attribute to one of these you'll get differing behaviour.
Again be aware that everything in python is by reference so if you do
sty=ParagraphStyle(......,alignment=TA_LEFT)
P0 = Paragraph('aaaa',style=sty)
sty.alignment=TA_RIGHT
P1=Paragraph('bbbbb',style=sty)
then it's highly likely both paragraphs will get right aligned since both have a 
reference to the same style. Instead of re-use just make a new style with the 
first as parent ie
sty = ParagraphStyle(parent=sty,.......,alignment=TA_RIGHT)
etc etc
-- 
Robin Becker
    
    
More information about the reportlab-users
mailing list