Dan Caprioara created FOP-2816:
----------------------------------
Summary: The property keep-together.within-page='always' implies
keep-together.within-column='always' (there should be a difference)
Key: FOP-2816
URL: https://issues.apache.org/jira/browse/FOP-2816
Project: FOP
Issue Type: Bug
Components: layout/page
Affects Versions: 2.3
Reporter: Dan Caprioara
This is an example: A document having two columns and as series of small
sections, called steps. Each of the "step" block has the attributes:
{code:java}
keep-together.within-column="auto"
keep-together.within-page="always"
{code}
The "step" at the end of the first column should break on the two columns, as
it has {{keep-together.within-column="auto"}}. Instead it moves completely to
the second column.
In fact it behaves as the column breaks and page breaks are considered by FOP
to be the same thing.
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<fo:root
xml:lang="dflt"
xmlns:chfox="http://www.oxygenxml.com/chemistry/extensions/fop"
xmlns:css="http://www.w3.org/1998/CSS"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">
<fo:layout-master-set>
<!-- Page: csdefault-->
<fo:page-sequence-master
master-name="csdefault">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference
blank-or-not-blank="any"
master-reference="spm-csdefault"
odd-or-even="any"
page-position="any"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:simple-page-master
master-name="spm-csdefault"
page-height="11in"
page-width="8.5in">
<fo:region-body
border-bottom-color="red"
border-bottom-style="solid"
border-bottom-width="2pt"
border-left-color="red"
border-left-style="solid"
border-left-width="2pt"
border-right-color="red"
border-right-style="solid"
border-right-width="2pt"
border-top-color="red"
border-top-style="solid"
border-top-width="2pt"
column-count="2"
margin-bottom="1in"
margin-left="1in"
margin-right="1in"
margin-top="1in"/>
<fo:region-before
extent="1in"
region-name="sc-before"/>
<fo:region-after
extent="1in"
region-name="sc-after"/>
<fo:region-start
extent="1in"
region-name="sc-start"/>
<fo:region-end
extent="1in"
region-name="sc-end"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence
force-page-count="no-force"
id="last-page-sequence"
line-height-shift-adjustment="disregard-shifts"
master-reference="csdefault">
<fo:flow
flow-name="xsl-region-body">
<fo:block
font-family="DEFAULT_SERIF_FONT"
font-size="2em">
<fo:block
font-style="italic">The step should not break on two pages, but
should break on two
columns . </fo:block>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
<fo:block-container
border-bottom-color="blue"
border-bottom-style="solid"
border-bottom-width="1pt"
border-left-color="blue"
border-left-style="solid"
border-left-width="1pt"
border-right-color="blue"
border-right-style="solid"
border-right-width="1pt"
border-top-color="blue"
border-top-style="solid"
border-top-width="1pt"
keep-together.within-column="auto"
keep-together.within-page="always"
margin-left="0"
margin-right="0">
<fo:block
end-indent="0"
start-indent="0"> This is a step with some text content that should
wrap somehow on
multiple lines. </fo:block>
</fo:block-container>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)