[
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