Procházet zdrojové kódy

Bugzilla #46315: extension to disable column balancing before blocks spanning the whole page, in multiple-column documents.

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-ffa450edef68
tags/fop-1_0
Vincent Hennebert před 15 roky
rodič
revize
490204ba3a

+ 6
- 1
src/java/org/apache/fop/fo/Constants.java Zobrazit soubor

@@ -766,8 +766,13 @@ public interface Constants {
int PR_X_WIDOW_CONTENT_LIMIT = 271;
/** Property constant - FOP proprietary: limit for orphan content in lists and tables */
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 */
int PROPERTY_COUNT = 272;
int PROPERTY_COUNT = 273;

// compound property constants


+ 7
- 0
src/java/org/apache/fop/fo/FOPropertyMapping.java Zobrazit soubor

@@ -1895,6 +1895,13 @@ public final class FOPropertyMapping implements Constants {
m.addEnum("all", getEnumProperty(EN_ALL, "ALL"));
m.setDefault("none");
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() {

+ 1
- 0
src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java Zobrazit soubor

@@ -45,6 +45,7 @@ public class ExtensionElementMapping extends ElementMapping {
propertyAttributes.add("widow-content-limit");
propertyAttributes.add("orphan-content-limit");
propertyAttributes.add("internal-destination");
propertyAttributes.add("disable-column-balancing");
}

/**

+ 12
- 2
src/java/org/apache/fop/fo/flow/Block.java Zobrazit soubor

@@ -21,8 +21,6 @@ package org.apache.fop.fo.flow;

import java.awt.Color;

import org.xml.sax.Locator;

import org.apache.fop.apps.FOPException;
import org.apache.fop.datatypes.Length;
import org.apache.fop.datatypes.Numeric;
@@ -40,6 +38,7 @@ import org.apache.fop.fo.properties.CommonMarginBlock;
import org.apache.fop.fo.properties.CommonRelativePosition;
import org.apache.fop.fo.properties.KeepProperty;
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">
@@ -80,6 +79,7 @@ public class Block extends FObjMixed implements BreakPropertySet {
private int whiteSpaceCollapse;
private Numeric widows;
private int wrapOption;
private int disableColumnBalancing;
// Unused but valid items, commented out for performance:
// private CommonAccessibility commonAccessibility;
// private CommonAural commonAural;
@@ -130,6 +130,7 @@ public class Block extends FObjMixed implements BreakPropertySet {
whiteSpaceCollapse = pList.get(PR_WHITE_SPACE_COLLAPSE).getEnum();
widows = pList.get(PR_WIDOWS).getNumeric();
wrapOption = pList.get(PR_WRAP_OPTION).getEnum();
disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum();
}

/** {@inheritDoc} */
@@ -318,6 +319,15 @@ public class Block extends FObjMixed implements BreakPropertySet {
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} */
public CharIterator charIterator() {
return NullCharIterator.getInstance();

+ 12
- 3
src/java/org/apache/fop/fo/flow/BlockContainer.java Zobrazit soubor

@@ -19,10 +19,7 @@

package org.apache.fop.fo.flow;

import org.xml.sax.Locator;

import org.apache.fop.apps.FOPException;
import org.apache.fop.datatypes.Length;
import org.apache.fop.datatypes.Numeric;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FObj;
@@ -34,6 +31,7 @@ import org.apache.fop.fo.properties.CommonBorderPaddingBackground;
import org.apache.fop.fo.properties.CommonMarginBlock;
import org.apache.fop.fo.properties.KeepProperty;
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">
@@ -56,6 +54,7 @@ public class BlockContainer extends FObj implements BreakPropertySet {
private int overflow;
private Numeric referenceOrientation;
private int span;
private int disableColumnBalancing;
private int writingMode;
// Unused but valid items, commented out for performance:
// private int intrusionDisplace;
@@ -94,6 +93,7 @@ public class BlockContainer extends FObj implements BreakPropertySet {
referenceOrientation = pList.get(PR_REFERENCE_ORIENTATION).getNumeric();
span = pList.get(PR_SPAN).getEnum();
writingMode = pList.get(PR_WRITING_MODE).getEnum();
disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum();
}

/** {@inheritDoc} */
@@ -217,6 +217,15 @@ public class BlockContainer extends FObj implements BreakPropertySet {
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 */
public int getWritingMode() {
return writingMode;

+ 8
- 1
src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java Zobrazit soubor

@@ -25,7 +25,6 @@ import java.util.ListIterator;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.fop.area.Area;
import org.apache.fop.area.BlockParent;
import org.apache.fop.fo.pagination.Flow;
@@ -82,14 +81,22 @@ public class FlowLayoutManager extends BlockStackingLayoutManager
}

int span = EN_NONE;
int disableColumnBalancing = EN_FALSE;
if (curLM instanceof BlockLayoutManager) {
span = ((BlockLayoutManager)curLM).getBlockFO().getSpan();
disableColumnBalancing = ((BlockLayoutManager) curLM).getBlockFO()
.getDisableColumnBalancing();
} else if (curLM instanceof BlockContainerLayoutManager) {
span = ((BlockContainerLayoutManager)curLM).getBlockContainerFO().getSpan();
disableColumnBalancing = ((BlockContainerLayoutManager) curLM)
.getBlockContainerFO().getDisableColumnBalancing();
}

int currentSpan = context.getCurrentSpan();
if (currentSpan != span) {
if (span == EN_ALL) {
context.setDisableColumnBalancing(disableColumnBalancing);
}
log.debug("span change from " + currentSpan + " to " + span);
context.signalSpanChange(span);
SpaceResolver.resolveElementList(returnList);

+ 22
- 1
src/java/org/apache/fop/layoutmgr/LayoutContext.java Zobrazit soubor

@@ -148,6 +148,8 @@ public class LayoutContext {
private int pendingKeepWithNext = BlockLevelLayoutManager.KEEP_AUTO;
private int pendingKeepWithPrevious = BlockLevelLayoutManager.KEEP_AUTO;

private int disableColumnBalancing;

/**
* Copy constructor for creating child layout contexts.
* @param parentLC the parent layout context to copy from
@@ -170,6 +172,7 @@ public class LayoutContext {
this.pendingKeepWithNext = parentLC.pendingKeepWithNext;
this.pendingKeepWithPrevious = parentLC.pendingKeepWithPrevious;
// Copy other fields as necessary.
this.disableColumnBalancing = parentLC.disableColumnBalancing;
}

/**
@@ -412,7 +415,7 @@ public class LayoutContext {

/**
* 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) {
setStackLimitBP(context.getStackLimitBP());
@@ -681,5 +684,23 @@ public class LayoutContext {
+ (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;
}
}


+ 3
- 1
src/java/org/apache/fop/layoutmgr/PageBreaker.java Zobrazit soubor

@@ -108,7 +108,9 @@ public class PageBreaker extends AbstractBreaker {
if (childLC.getNextSpan() != Constants.NOT_SET) {
//Next block list will have a different span.
nextSequenceStartsOn = childLC.getNextSpan();
needColumnBalancing = (childLC.getNextSpan() == Constants.EN_ALL);
needColumnBalancing = childLC.getNextSpan() == Constants.EN_ALL
&& childLC.getDisableColumnBalancing() == Constants.EN_FALSE;

}
if (needColumnBalancing) {
AbstractBreaker.log.debug(

+ 4
- 0
status.xml Zobrazit soubor

@@ -58,6 +58,10 @@
documents. Example: the fix of marks layering will be such a case when it's done.
-->
<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">
AFP Output: Bilevel images in resource groups as generated as hard page segments
(instead of image objects) for better interoperability with older IPDS environments

+ 231
- 0
test/layoutengine/standard-testcases/fox_disable-column-balancing.xml Zobrazit soubor

@@ -0,0 +1,231 @@
<?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>

Načítá se…
Zrušit
Uložit