[reportlab-users] Wordaxe 0.3.0, ReportLab 2.2, MultiBuild and splitting error
Henning von Bargen
H.vonBargen at t-p.com
Tue Nov 18 12:39:09 EST 2008
Thanks for your bug report, Harald.
I added it as item 2310279 to the wordaxe bug tracker at
http://sourceforge.net/tracker2/?func=detail&aid=2310279&group_id=105867&atid=642478
Can you perhaps create a simple test case?
Henning
> From: "Harald Armin Massa" <haraldarminmassa at gmail.com>
> Subject: Wordaxe 0.3.0, ReportLab 2.2,MultiBuild and splitting error
>
> Hello,
>
> on updating some projekt to RL 2.2; and wordaxe 0.3.0, I ran into some
> obscure wrapping / splitting bug.
>
> As it turned out:
>
> the SplitRoutine within NewParagraph get's problems when
> doc.multibuild is used.
>
> I tracked it down to:
>
> if not hasattr(self, "_lines"):
> # This can only happen when split has been called
> # without a previous wrap for this Paragraph.
> # From looking at doctemplate.py and frames.py,
> # I assume this is only the case if the free space
> # in the frame is not even enough for getSpaceBefore.
> # Thus we can safely return []
> #~ print "split without previous wrap"
> return []
>
> NewParagraph of Wordaxe relying on self._lines NOT being present when
> there was no "wrap" in the actual build pass, to return "I cannot
> split"
>
> BUT...
>
> in a multibuild, in the second build pass that self._lines is present
> from the first build pass ... , and _unused is an empty list (as some
> wraps from the build pass before have used up everything)
>
> So MY fix was in doctemplate multibuild:
>
> #clean up so multi-build does not go wrong - the frame
> #packer might have tacked an attribute onto some flowables
> for elem in story:
> if hasattr(elem, '_postponed'):
> del elem._postponed
> if hasattr(elem, '_lines'):
> del elem._lines
>
> to extend the "cleanup" part to also delete the _lines attribute of a
> NewParagraph; together with the _postponed attribut.
>
> So everything works fine ... but I am not sure if this is really the
> best approach, and the NewParagraph split/wrap is quite to challenging
> to really be sure.
>
> That's why I am posting this fix for others to enjoy and for more
> enlightened ones to check:)
>
> Harald
More information about the reportlab-users
mailing list