new branch with possible paragraph measurement fixes

Robin Becker <[email protected]>
Newsgroups gmane.comp.python.reportlab.user
Message-ID <[email protected]>
The existing paragraph code has problems doing its width measurements. Consider

Paragraph("
<span fontName=\'Courier\'>Hello</span> World.<ondraw name="_onDrawFunc" 
label="end"/>",style)

where style sets up Helvetica 10 points as the base font; this ought to measure

stringWidth('Hello','Courier',10)+stringWidth(' World.','Helvetica',10)

ie 61.67; however, in our paragraph implementation it is thought to measure 
64.89 because we have a poor idea of which space to use so we measure a Courier 
10 space instead of Helvetica 10.

I have made a branch called para-measure-fix which attempts to fix this issue 
and I would ask interested parties to try this branch out. It includes an extra 
test in tests/test_platypus_breaking.py which attempts to check this.

You can see the results here

https://www.reportlab.com/static/test_platypus_paragraph_line_lengths-current.pdf

https://www.reportlab.com/static/test_platypus_paragraph_line_lengths-fixed.pdf

the modified test is here

https://www.reportlab.com/static/test_platypus_breaking.py

The branch code also allows some space shrinkage for tight paragraphs using a 
new rl_settings parameter spaceShrinkage (a value of 0.05 will allow spaces to 
be shrunk by 5%).
-- 
Robin Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.