[jira] [Updated] (FOP-1840) [PATCH] Region-Body Column balancing incorrect if content is table with header

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (FOP-1840) [PATCH] Region-Body Column balancing incorrect if content is table with header

Simon Steiner (Jira)

     [ https://issues.apache.org/jira/browse/FOP-1840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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