Patch submitted by Georg Datterl, applied with some modifications (mainly Checkstyle issues) git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@738514 13f79535-47bb-0310-9956-ffa450edef68tags/fop-1_0
int PR_X_WIDOW_CONTENT_LIMIT = 271; | int PR_X_WIDOW_CONTENT_LIMIT = 271; | ||||
/** Property constant - FOP proprietary: limit for orphan content in lists and tables */ | /** Property constant - FOP proprietary: limit for orphan content in lists and tables */ | ||||
int PR_X_ORPHAN_CONTENT_LIMIT = 272; | int PR_X_ORPHAN_CONTENT_LIMIT = 272; | ||||
/** | |||||
* Property constant - FOP proprietary: disable balancing of columns in | |||||
* multi-column layouts. | |||||
*/ | |||||
int PR_X_DISABLE_COLUMN_BALANCING = 273; | |||||
/** Number of property constants defined */ | /** Number of property constants defined */ | ||||
int PROPERTY_COUNT = 272; | |||||
int PROPERTY_COUNT = 273; | |||||
// compound property constants | // compound property constants | ||||
m.addEnum("all", getEnumProperty(EN_ALL, "ALL")); | m.addEnum("all", getEnumProperty(EN_ALL, "ALL")); | ||||
m.setDefault("none"); | m.setDefault("none"); | ||||
addPropertyMaker("span", m); | addPropertyMaker("span", m); | ||||
// fox:disable-column-balancing | |||||
m = new EnumProperty.Maker(PR_X_DISABLE_COLUMN_BALANCING); | |||||
m.useGeneric(genericBoolean); | |||||
m.setInherited(true); | |||||
m.setDefault("false"); | |||||
addPropertyMaker("fox:disable-column-balancing", m); | |||||
} | } | ||||
private void createLeaderAndRuleProperties() { | private void createLeaderAndRuleProperties() { |
propertyAttributes.add("widow-content-limit"); | propertyAttributes.add("widow-content-limit"); | ||||
propertyAttributes.add("orphan-content-limit"); | propertyAttributes.add("orphan-content-limit"); | ||||
propertyAttributes.add("internal-destination"); | propertyAttributes.add("internal-destination"); | ||||
propertyAttributes.add("disable-column-balancing"); | |||||
} | } | ||||
/** | /** |
import java.awt.Color; | import java.awt.Color; | ||||
import org.xml.sax.Locator; | |||||
import org.apache.fop.apps.FOPException; | import org.apache.fop.apps.FOPException; | ||||
import org.apache.fop.datatypes.Length; | import org.apache.fop.datatypes.Length; | ||||
import org.apache.fop.datatypes.Numeric; | import org.apache.fop.datatypes.Numeric; | ||||
import org.apache.fop.fo.properties.CommonRelativePosition; | import org.apache.fop.fo.properties.CommonRelativePosition; | ||||
import org.apache.fop.fo.properties.KeepProperty; | import org.apache.fop.fo.properties.KeepProperty; | ||||
import org.apache.fop.fo.properties.SpaceProperty; | import org.apache.fop.fo.properties.SpaceProperty; | ||||
import org.xml.sax.Locator; | |||||
/** | /** | ||||
* Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block"> | * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block"> | ||||
private int whiteSpaceCollapse; | private int whiteSpaceCollapse; | ||||
private Numeric widows; | private Numeric widows; | ||||
private int wrapOption; | private int wrapOption; | ||||
private int disableColumnBalancing; | |||||
// Unused but valid items, commented out for performance: | // Unused but valid items, commented out for performance: | ||||
// private CommonAccessibility commonAccessibility; | // private CommonAccessibility commonAccessibility; | ||||
// private CommonAural commonAural; | // private CommonAural commonAural; | ||||
whiteSpaceCollapse = pList.get(PR_WHITE_SPACE_COLLAPSE).getEnum(); | whiteSpaceCollapse = pList.get(PR_WHITE_SPACE_COLLAPSE).getEnum(); | ||||
widows = pList.get(PR_WIDOWS).getNumeric(); | widows = pList.get(PR_WIDOWS).getNumeric(); | ||||
wrapOption = pList.get(PR_WRAP_OPTION).getEnum(); | wrapOption = pList.get(PR_WRAP_OPTION).getEnum(); | ||||
disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum(); | |||||
} | } | ||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
return this.lineHeightShiftAdjustment; | return this.lineHeightShiftAdjustment; | ||||
} | } | ||||
/** | |||||
* @return the "fox:disable-column-balancing" property, one of | |||||
* {@link Constants#EN_TRUE}, {@link Constants#EN_FALSE} | |||||
*/ | |||||
public int getDisableColumnBalancing() { | |||||
return disableColumnBalancing; | |||||
} | |||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
public CharIterator charIterator() { | public CharIterator charIterator() { | ||||
return NullCharIterator.getInstance(); | return NullCharIterator.getInstance(); |
package org.apache.fop.fo.flow; | package org.apache.fop.fo.flow; | ||||
import org.xml.sax.Locator; | |||||
import org.apache.fop.apps.FOPException; | import org.apache.fop.apps.FOPException; | ||||
import org.apache.fop.datatypes.Length; | |||||
import org.apache.fop.datatypes.Numeric; | import org.apache.fop.datatypes.Numeric; | ||||
import org.apache.fop.fo.FONode; | import org.apache.fop.fo.FONode; | ||||
import org.apache.fop.fo.FObj; | import org.apache.fop.fo.FObj; | ||||
import org.apache.fop.fo.properties.CommonMarginBlock; | import org.apache.fop.fo.properties.CommonMarginBlock; | ||||
import org.apache.fop.fo.properties.KeepProperty; | import org.apache.fop.fo.properties.KeepProperty; | ||||
import org.apache.fop.fo.properties.LengthRangeProperty; | import org.apache.fop.fo.properties.LengthRangeProperty; | ||||
import org.xml.sax.Locator; | |||||
/** | /** | ||||
* Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block-container"> | * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block-container"> | ||||
private int overflow; | private int overflow; | ||||
private Numeric referenceOrientation; | private Numeric referenceOrientation; | ||||
private int span; | private int span; | ||||
private int disableColumnBalancing; | |||||
private int writingMode; | private int writingMode; | ||||
// Unused but valid items, commented out for performance: | // Unused but valid items, commented out for performance: | ||||
// private int intrusionDisplace; | // private int intrusionDisplace; | ||||
referenceOrientation = pList.get(PR_REFERENCE_ORIENTATION).getNumeric(); | referenceOrientation = pList.get(PR_REFERENCE_ORIENTATION).getNumeric(); | ||||
span = pList.get(PR_SPAN).getEnum(); | span = pList.get(PR_SPAN).getEnum(); | ||||
writingMode = pList.get(PR_WRITING_MODE).getEnum(); | writingMode = pList.get(PR_WRITING_MODE).getEnum(); | ||||
disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum(); | |||||
} | } | ||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
return this.span; | return this.span; | ||||
} | } | ||||
/** | |||||
* @return the "fox:disable-column-balancing" property, one of | |||||
* {@link Constants#EN_TRUE}, {@link Constants#EN_FALSE} | |||||
*/ | |||||
public int getDisableColumnBalancing() { | |||||
return disableColumnBalancing; | |||||
} | |||||
/** @return the "writing-mode" property */ | /** @return the "writing-mode" property */ | ||||
public int getWritingMode() { | public int getWritingMode() { | ||||
return writingMode; | return writingMode; |
import org.apache.commons.logging.Log; | import org.apache.commons.logging.Log; | ||||
import org.apache.commons.logging.LogFactory; | import org.apache.commons.logging.LogFactory; | ||||
import org.apache.fop.area.Area; | import org.apache.fop.area.Area; | ||||
import org.apache.fop.area.BlockParent; | import org.apache.fop.area.BlockParent; | ||||
import org.apache.fop.fo.pagination.Flow; | import org.apache.fop.fo.pagination.Flow; | ||||
} | } | ||||
int span = EN_NONE; | int span = EN_NONE; | ||||
int disableColumnBalancing = EN_FALSE; | |||||
if (curLM instanceof BlockLayoutManager) { | if (curLM instanceof BlockLayoutManager) { | ||||
span = ((BlockLayoutManager)curLM).getBlockFO().getSpan(); | span = ((BlockLayoutManager)curLM).getBlockFO().getSpan(); | ||||
disableColumnBalancing = ((BlockLayoutManager) curLM).getBlockFO() | |||||
.getDisableColumnBalancing(); | |||||
} else if (curLM instanceof BlockContainerLayoutManager) { | } else if (curLM instanceof BlockContainerLayoutManager) { | ||||
span = ((BlockContainerLayoutManager)curLM).getBlockContainerFO().getSpan(); | span = ((BlockContainerLayoutManager)curLM).getBlockContainerFO().getSpan(); | ||||
disableColumnBalancing = ((BlockContainerLayoutManager) curLM) | |||||
.getBlockContainerFO().getDisableColumnBalancing(); | |||||
} | } | ||||
int currentSpan = context.getCurrentSpan(); | int currentSpan = context.getCurrentSpan(); | ||||
if (currentSpan != span) { | if (currentSpan != span) { | ||||
if (span == EN_ALL) { | |||||
context.setDisableColumnBalancing(disableColumnBalancing); | |||||
} | |||||
log.debug("span change from " + currentSpan + " to " + span); | log.debug("span change from " + currentSpan + " to " + span); | ||||
context.signalSpanChange(span); | context.signalSpanChange(span); | ||||
SpaceResolver.resolveElementList(returnList); | SpaceResolver.resolveElementList(returnList); |
private int pendingKeepWithNext = BlockLevelLayoutManager.KEEP_AUTO; | private int pendingKeepWithNext = BlockLevelLayoutManager.KEEP_AUTO; | ||||
private int pendingKeepWithPrevious = BlockLevelLayoutManager.KEEP_AUTO; | private int pendingKeepWithPrevious = BlockLevelLayoutManager.KEEP_AUTO; | ||||
private int disableColumnBalancing; | |||||
/** | /** | ||||
* Copy constructor for creating child layout contexts. | * Copy constructor for creating child layout contexts. | ||||
* @param parentLC the parent layout context to copy from | * @param parentLC the parent layout context to copy from | ||||
this.pendingKeepWithNext = parentLC.pendingKeepWithNext; | this.pendingKeepWithNext = parentLC.pendingKeepWithNext; | ||||
this.pendingKeepWithPrevious = parentLC.pendingKeepWithPrevious; | this.pendingKeepWithPrevious = parentLC.pendingKeepWithPrevious; | ||||
// Copy other fields as necessary. | // Copy other fields as necessary. | ||||
this.disableColumnBalancing = parentLC.disableColumnBalancing; | |||||
} | } | ||||
/** | /** | ||||
/** | /** | ||||
* Sets (Copies) the stack limits in both directions from another layout context. | * Sets (Copies) the stack limits in both directions from another layout context. | ||||
* @param context the layout context to taje the values from | |||||
* @param context the layout context to take the values from | |||||
*/ | */ | ||||
public void setStackLimitsFrom(LayoutContext context) { | public void setStackLimitsFrom(LayoutContext context) { | ||||
setStackLimitBP(context.getStackLimitBP()); | setStackLimitBP(context.getStackLimitBP()); | ||||
+ (breakAfter != Constants.EN_AUTO ? "break-after" : "") + "]"; | + (breakAfter != Constants.EN_AUTO ? "break-after" : "") + "]"; | ||||
} | } | ||||
/** | |||||
* Returns whether the column balancer should be disabled before a spanning block | |||||
* | |||||
* @return one of {@link Constants#EN_TRUE}, {@link Constants#EN_FALSE} | |||||
*/ | |||||
public int getDisableColumnBalancing() { | |||||
return disableColumnBalancing; | |||||
} | |||||
/** | |||||
* Sets whether the column balancer should be disabled before a spanning block | |||||
* | |||||
* @param disableColumnBalancing the value of the fox:disable-column-balancing property | |||||
* @see #getDisableColumnBalancing() | |||||
*/ | |||||
public void setDisableColumnBalancing(int disableColumnBalancing) { | |||||
this.disableColumnBalancing = disableColumnBalancing; | |||||
} | |||||
} | } | ||||
if (childLC.getNextSpan() != Constants.NOT_SET) { | if (childLC.getNextSpan() != Constants.NOT_SET) { | ||||
//Next block list will have a different span. | //Next block list will have a different span. | ||||
nextSequenceStartsOn = childLC.getNextSpan(); | nextSequenceStartsOn = childLC.getNextSpan(); | ||||
needColumnBalancing = (childLC.getNextSpan() == Constants.EN_ALL); | |||||
needColumnBalancing = childLC.getNextSpan() == Constants.EN_ALL | |||||
&& childLC.getDisableColumnBalancing() == Constants.EN_FALSE; | |||||
} | } | ||||
if (needColumnBalancing) { | if (needColumnBalancing) { | ||||
AbstractBreaker.log.debug( | AbstractBreaker.log.debug( |
documents. Example: the fix of marks layering will be such a case when it's done. | documents. Example: the fix of marks layering will be such a case when it's done. | ||||
--> | --> | ||||
<release version="FOP Trunk" date="TBD"> | <release version="FOP Trunk" date="TBD"> | ||||
<action context="Layout" dev="VH" type="add" fixes-bug="46315" due-to="Georg Datterl"> | |||||
Added extension to disable column balancing before blocks spanning the whole page, in | |||||
multiple-column documents. | |||||
</action> | |||||
<action context="Renderers" dev="JM" type="add"> | <action context="Renderers" dev="JM" type="add"> | ||||
AFP Output: Bilevel images in resource groups as generated as hard page segments | AFP Output: Bilevel images in resource groups as generated as hard page segments | ||||
(instead of image objects) for better interoperability with older IPDS environments | (instead of image objects) for better interoperability with older IPDS environments |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
Licensed to the Apache Software Foundation (ASF) under one or more | |||||
contributor license agreements. See the NOTICE file distributed with | |||||
this work for additional information regarding copyright ownership. | |||||
The ASF licenses this file to You under the Apache License, Version 2.0 | |||||
(the "License"); you may not use this file except in compliance with | |||||
the License. You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
--> | |||||
<!-- $Id$ --> | |||||
<testcase> | |||||
<info> | |||||
<p> | |||||
This test checks fox:disable-column-balancing. | |||||
</p> | |||||
</info> | |||||
<fo> | |||||
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" | |||||
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" | |||||
font-size="10pt" line-height="12pt"> | |||||
<fo:layout-master-set> | |||||
<fo:simple-page-master page-height="250pt" page-width="200pt" master-name="page"> | |||||
<fo:region-body margin-right="3pt" margin-left="3pt" margin-bottom="14pt" | |||||
margin-top="8pt" column-count="2"/> | |||||
</fo:simple-page-master> | |||||
</fo:layout-master-set> | |||||
<!-- sequence 1: column balancing disabled --> | |||||
<fo:page-sequence master-reference="page" background-color="#AAAAAA"> | |||||
<fo:flow flow-name="xsl-region-body" background-color="#80F010" | |||||
fox:disable-column-balancing="true"> | |||||
<fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA | |||||
AAA</fo:block> | |||||
<fo:block background-color="#20E020">BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB | |||||
BBB BBB</fo:block> | |||||
<fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC | |||||
CCC CCC</fo:block> | |||||
<fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD DDD DDD DDD DDD DDD | |||||
DDD DDD</fo:block> | |||||
<fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE | |||||
EEE EEE EEE EEE</fo:block> | |||||
<fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF FFF FFF FFF FFF FFF | |||||
FFF FFF FFF FFF</fo:block> | |||||
<fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG GGG GGG GGG GGG GGG | |||||
GGG</fo:block> | |||||
<fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH | |||||
HHH HHH</fo:block> | |||||
<fo:block background-color="#B07090">III III III III III III III III III III III | |||||
III III III III III III III III III III III</fo:block> | |||||
<fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ | |||||
JJJ JJJ JJJ JJJ JJJ</fo:block> | |||||
<fo:block span="all" id="span1" background-color="#C050B0">KKK KKK KKK KKK KKK KKK | |||||
KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK | |||||
KKK</fo:block> | |||||
<fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL | |||||
LLL LLL LLL</fo:block> | |||||
<fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM MMM MMM MMM | |||||
MMM</fo:block> | |||||
<fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN | |||||
NNN NNN</fo:block> | |||||
<fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO OOO OOO OOO OOO | |||||
OOO</fo:block> | |||||
<fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP PPP PPP PPP PPP | |||||
PPP</fo:block> | |||||
<fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ QQQ QQQ | |||||
QQQ</fo:block> | |||||
<fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR | |||||
RRR RRR</fo:block> | |||||
<fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS SSS SSS SSS SSS SSS | |||||
SSS SSS</fo:block> | |||||
<fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT | |||||
TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT</fo:block> | |||||
<fo:block span="all" id="span2" background-color="#20B050">UUU UUU UUU UUU UUU UUU | |||||
UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU | |||||
UUU UUU UUU UUU</fo:block> | |||||
<fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV | |||||
VVV</fo:block> | |||||
<fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW WWW WWW WWW | |||||
WWW</fo:block> | |||||
<fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX | |||||
XXX XXX XXX</fo:block> | |||||
<fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY YYY YYY YYY YYY YYY | |||||
YYY YYY</fo:block> | |||||
<fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ | |||||
ZZZ ZZZ ZZZ ZZZ</fo:block> | |||||
</fo:flow> | |||||
</fo:page-sequence> | |||||
<!-- sequence 2: column balancing enabled --> | |||||
<fo:page-sequence master-reference="page" initial-page-number="1" background-color="#AAAAAA"> | |||||
<fo:flow flow-name="xsl-region-body" background-color="#80F010" | |||||
fox:disable-column-balancing="false"> | |||||
<fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA AAA AAA AAA | |||||
AAA</fo:block> | |||||
<fo:block background-color="#20E020">BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB | |||||
BBB</fo:block> | |||||
<fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC | |||||
CCC</fo:block> | |||||
<fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD DDD DDD DDD DDD | |||||
DDD</fo:block> | |||||
<fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE | |||||
EEE EEE</fo:block> | |||||
<fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF FFF FFF FFF FFF FFF | |||||
FFF FFF</fo:block> | |||||
<fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG GGG GGG GGG | |||||
GGG</fo:block> | |||||
<fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH | |||||
HHH HHH</fo:block> | |||||
<fo:block background-color="#B07090">III III III III III III III III III III III | |||||
III III III III III III III III III III III III III III III III III</fo:block> | |||||
<fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ | |||||
JJJ JJJ JJJ JJJ JJJ</fo:block> | |||||
<fo:block span="all" id="span3" background-color="#C050B0">KKK KKK KKK KKK KKK KKK | |||||
KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK | |||||
KKK</fo:block> | |||||
<fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL | |||||
LLL LLL LLL</fo:block> | |||||
<fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM MMM MMM MMM | |||||
MMM</fo:block> | |||||
<fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN NNN NNN NNN | |||||
NNN NNN NNN NNN</fo:block> | |||||
<fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO OOO OOO OOO | |||||
OOO OOO</fo:block> | |||||
<fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP PPP PPP PPP | |||||
PPP PPP PPP PPP PPP PPP</fo:block> | |||||
<fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ QQQ QQQ QQQ | |||||
QQQ QQQ</fo:block> | |||||
<fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR | |||||
RRR</fo:block> | |||||
<fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS SSS SSS SSS SSS | |||||
SSS</fo:block> | |||||
<fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT | |||||
TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT</fo:block> | |||||
<fo:block span="all" id="span4" background-color="#20B050">UUU UUU UUU UUU UUU UUU | |||||
UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU | |||||
UUU UUU</fo:block> | |||||
<fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV | |||||
VVV</fo:block> | |||||
<fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW WWW WWW WWW | |||||
WWW</fo:block> | |||||
<fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX XXX XXX XXX | |||||
XXX XXX XXX XXX XXX</fo:block> | |||||
<fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY YYY YYY YYY | |||||
YYY YYY YYY YYY</fo:block> | |||||
<fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ | |||||
ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ</fo:block> | |||||
</fo:flow> | |||||
</fo:page-sequence> | |||||
<!-- sequence 3: mixed --> | |||||
<fo:page-sequence master-reference="page" initial-page-number="1" background-color="#AAAAAA"> | |||||
<fo:flow flow-name="xsl-region-body" background-color="#80F010"> | |||||
<fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA AAA AAA AAA | |||||
AAA</fo:block> | |||||
<fo:block background-color="#20E020">BBB BBB | |||||
BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB</fo:block> | |||||
<fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC | |||||
CCC CCC</fo:block> | |||||
<fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD DDD DDD DDD DDD | |||||
DDD</fo:block> | |||||
<fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE EEE EEE EEE | |||||
EEE EEE EEE EEE</fo:block> | |||||
<fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF FFF FFF FFF | |||||
FFF FFF FFF FFF</fo:block> | |||||
<fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG GGG GGG GGG | |||||
GGG</fo:block> | |||||
<fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH HHH HHH HHH | |||||
HHH HHH</fo:block> | |||||
<fo:block background-color="#B07090">III III III III III III III III III | |||||
III III III III III III III III III III III</fo:block> | |||||
<fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ JJJ | |||||
JJJ JJJ JJJ JJJ JJJ JJJ JJJ</fo:block> | |||||
<fo:block span="all" id="span5" fox:disable-column-balancing="true" | |||||
background-color="#C050B0">KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK | |||||
KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK</fo:block> | |||||
<fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL LLL | |||||
LLL LLL LLL</fo:block> | |||||
<fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM MMM MMM MMM | |||||
MMM</fo:block> | |||||
<fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN NNN NNN NNN | |||||
NNN NNN NNN NNN</fo:block> | |||||
<fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO OOO OOO OOO | |||||
OOO OOO</fo:block> | |||||
<fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP PPP PPP PPP | |||||
PPP PPP PPP PPP PPP PPP</fo:block> | |||||
<fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ QQQ QQQ QQQ | |||||
QQQ QQQ</fo:block> | |||||
<fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR RRR RRR RRR | |||||
RRR RRR RRR RRR</fo:block> | |||||
<fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS SSS SSS SSS | |||||
SSS SSS SSS SSS</fo:block> | |||||
<fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT | |||||
TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT | |||||
TTT</fo:block> | |||||
<fo:block span="all" id="span6" background-color="#20B050">UUU UUU UUU UUU UUU UUU | |||||
UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU | |||||
UUU UUU</fo:block> | |||||
<fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV VVV | |||||
VVV</fo:block> | |||||
<fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW WWW WWW WWW | |||||
WWW</fo:block> | |||||
<fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX XXX XXX XXX | |||||
XXX XXX XXX XXX XXX</fo:block> | |||||
<fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY YYY YYY YYY | |||||
YYY YYY YYY YYY</fo:block> | |||||
<fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ | |||||
ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ</fo:block> | |||||
</fo:flow> | |||||
</fo:page-sequence> | |||||
</fo:root> | |||||
</fo> | |||||
<checks> | |||||
<eval expected="0" xpath="//pageSequence[1]/pageViewport[2]//span[1]/flow[2]/@bpd"/> | |||||
<eval expected="12000" xpath="//pageSequence[1]/pageViewport[3]//span[2]/@bpd"/> | |||||
<!-- TODO Replace with the following test once bugs affecting multiple columns have been | |||||
corrected | |||||
<eval expected="0" xpath="count(//pageSequence[1]/pageViewport[3]//block[@prod-id='span2'])"/> | |||||
--> | |||||
<eval expected="24000" xpath="//pageSequence[2]/pageViewport[2]//span[1]/flow[2]/@bpd"/> | |||||
<eval expected="84000" xpath="//pageSequence[2]/pageViewport[3]//span[1]/flow[2]/@bpd"/> | |||||
<eval expected="0" xpath="//pageSequence[3]/pageViewport[2]//span[1]/flow[2]/@bpd"/> | |||||
<eval expected="180000" xpath="//pageSequence[3]/pageViewport[3]//span[1]/flow[2]/@bpd"/> | |||||
</checks> | |||||
</testcase> |