Andreas Delmelle wrote:
> On 18 Jun 2009, at 20:26, Simon Pepping wrote:
> Hi Simon, Vincent,
>> <snip />
>> I get the feeling that this means that you are planning to relaunch
>> line breaking while in the page breaking phase.


>> Is that possible?

That’s what I am currently trying to figure out. Getting the index of
the last element on the previous page is not too difficult, restarting
element generation and resetting all applicable variables is harder.

> What I was wondering too, and why I somehow believe that suspending
> line-breaking and starting the page-breaking phase earlier is likely to
> be 'easier' to implement (even though the required changes would impact
> a lot more classes). It would basically come down to extending the
> approach that is currently taken when dealing with span-changes or
> forced page- or column-breaks: exit the line-breaking loop, start
> page-breaking for the element-list up to that point, and return later to
> continue with the line-breaking. Currently, this approach always uses
> separate PageBreakingAlgorithm instances, but I don't think it would be
> very hard to re-use the same PBA and append the new elements to its
> 'current paragraph'.

Until page breaking has been done you don’t know where the paragraph
will be broken. So you don’t know how far in the element generation you
must go.

>> It is a bit strange that changing IPD would waste CPU cycles, as it
>> could be achieved by the simpler of two strategies, best-fit versus
>> total-fit.

Theoretically speaking it shouldn’t, in practice the code is not
designed to switch back and forth from line generation to page
generation. Throwing the elements away and re-creating them with the new
page width in mind appears to be simpler to achieve, and should be good
enough for this short-term solution.

>> But maybe implementing best-fit next to total-fit would be
>> more than a simple solution.
>> I agree that it would be an improvement to have even a partial
>> solution for the changing IPD feature. Good luck with this necessary
>> job.

Thanks :-)


Reply via email to