Vincent Hennebert commented on FOP-2293:

Hi Seifeddine,

your patch breaks the tests I'm afraid.

In PageBreakingAlgorithm.handlePenaltyAt, I'm not sure why you are adding the 
glue there. You are back to the old problem where different layouts will select 
different variants which will override each other. This is actually what seems 
to happen if you run it on the empty-last-page.fo file I attached to my 
previous comment (which, BTW, still finishes on an empty page...).

Also, modifying the paragraph in the same time as the breaking algorithm is run 
is calling for trouble. The algorithm backtracks when it can't find a suitable 
set of page breaks (because of overfull or underfull pages), so you may end up 
adding the same element several times to the Knuth sequence.

In handleBestFitPenalty, doing the space resolution there is a nice try but it 
still doesn't work. For example it won't merge the space after the element that 
precedes the multi-switch and the space before the first child of a multi-case. 
You will end up with too much white space. I think you are better off leaving 
space resolution as it is currently done...


> Whitespace management extension
> -------------------------------
>                 Key: FOP-2293
>                 URL: https://issues.apache.org/jira/browse/FOP-2293
>             Project: Fop
>          Issue Type: New Feature
>          Components: general
>    Affects Versions: trunk
>            Reporter: Seifeddine Dridi
>            Priority: Minor
>              Labels: XSL-FO
>             Fix For: trunk
>         Attachments: FO_multi-switch_best-fit_ext_rev2.patch, 
> FO_multi-switch_best-fit_ext_rev3.patch, 
> FO_multi-switch_best-fit_ext_rev4.patch, 
> FO_multi-switch_best-fit_ext_rev5.patch, 
> FO_multi-switch_best-fit_ext_rev6.patch, 
> FO_multi-switch_best-fit_ext_rev7.patch, 
> FO_multi-switch_best-fit_ext_rev8.patch, 
> FO_multi-switch_best-fit_ext_rev9.patch, FO_multi-switch_test.fo, 
> FO_multi-switch_with_best-fit_extension.patch, bestfit.fo, doc.pdf, 
> empty-last-page.fo, multi-switch-testcases.zip, multi-switch_bestfit.fo, 
> multiple-feasible-nodes.fo, patch-rev1.1.patch, patch-rev1.patch, 
> patch-rev2.patch, patch.patch, two-valid-variants.fo
> I have been working on an extension for whitespace management, similar to 
> what's described here: 
> http://wiki.apache.org/xmlgraphics-fop/WhitespaceManagement
> The logic of the extension is very simple: the user defines a set of 
> alternatives that he wishes to insert at the end of a page, then if there is 
> enough space left, FOP will pick the alternative that best matches the user's 
> selection criteria (first fit, smallest fit, biggest fit).
> This is my first work on FOP and it took me almost 2 months to reach this 
> stage in development. But it's not the end of course, so I'm relying on your 
> feedback to improve it.
> Thank you

This message was sent by Atlassian JIRA

Reply via email to