Robert Meyer updated FOP-1840:

    Attachment: output-balance5.pdf

I spent 5 minutes looking at this and found that the balancing code is not 
called for the table at the end of the first page. This is because as Luis 
said, the content fills the entire first page and therefore does not need to be 
balanced. The new balancing code gets called only twice which is for the first 
table containing the TITLE, and for the remaining rows on the second page. This 
may mean a problem exists elsewhere in the layout engine as it is placing too 
much content in the second column before moving to another page.

I have attached a PDF (output-balance5.pdf) using the old balancing code for 
comparison and you can see that it has the same issue as unfortunately it is 
out of the algorithms hands. If I get the chance, I will take a look at this 
other issue to see if it is an easy fix or something more involved.
> [PATCH] Region-Body Column balancing incorrect if content is table with header
> ------------------------------------------------------------------------------
>                 Key: FOP-1840
>                 URL: https://issues.apache.org/jira/browse/FOP-1840
>             Project: Fop
>          Issue Type: Improvement
>          Components: page-master/layout
>    Affects Versions: 1.0
>         Environment: Operating System: All
> Platform: PC
>            Reporter: a.kovacs
>            Assignee: fop-dev
>         Attachments: b49801_dirty_hack.patch, b49801.fo, 
> balance-2-expected.pdf, balance-2.fo, balance-2.pdf, balance-3.fo.xml, 
> balance-4-edited.fo.xml, balance-4.fo.xml, balance-4-none.fo.xml, 
> balance-4.pdf, balance-5.fo, balancing-fos.zip, fix.diff, fo.xml, 
> output-balance5.pdf, patch.diff, test-after.pdf, test-before.pdf
> To reproduce bug please do the following:
> Use:
> <fo:region-body region-name="PageBody" column-count="2" />
> Fill the region-body with content like :
> <fo:block span="none" > ...(content is table with header) ..
> <fo:block span="all"> ... (one line (summary)) ..
> If the content is made of normal blocks the columns are balanced before the 
> span="all" summary line.
> like:
> 123456    456789
> 234567    567890
> 345678    678901
> Summary: 1234567890
> If the content is a table without headers the columns are balanced correct. 
> like:
> 123456    456789
> 234567    567890
> 345678    678901
> Summary: 1234567890
> If the content is a table with header the columns are not balanced correct. 
> (the right one is shorter.)
> Header    Header
> 123456    567890
> 234567    678901
> 345678    
> 456789
> Summary: 1234567890
> The "computeDemerits()" algorithm is wrong in class 
> "BalancingColumnBreakingAlgorithm".
> The "fullLen" value is to short. Exactly the replicated header width is 
> missing. In the "par" list the header is contained only once although the 
> header is displayed in every column. (in the example twice)
> Solution could be to place the header as many times in the "par" list as many 
> columns exist, or to count the existing one header as many times as needed.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to