diff options
3 files changed, 9 insertions, 2 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageBreaker.java b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageBreaker.java index 4152ee996..fc6e05835 100644 --- a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageBreaker.java +++ b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageBreaker.java @@ -475,7 +475,9 @@ public class PageBreaker extends AbstractBreaker { //Replace last page pslm.setCurrentPage(pageProvider.getPage(false, currentPageNum)); } else { - if (optimalPageCount <= pslm.getCurrentPV().getBodyRegion().getMainReference().getColumnCount()) { + if (optimalPageCount > pslm.getCurrentPV().getBodyRegion().getMainReference().getColumnCount()) { + setLastPageIndex(currentPageNum + 2); + } else { setLastPageIndex(currentPageNum + 1); } //Last page-master cannot hold the content. diff --git a/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_7.xml b/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_7.xml index c3365fd8e..ca07447b9 100644 --- a/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_7.xml +++ b/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_7.xml @@ -1457,5 +1457,9 @@ <eval expected="(2)" xpath="//pageViewport[2]//word"/> <eval expected="(Enter" xpath="//pageViewport[3]//word"/> <eval expected="Loss" xpath="//pageViewport[4]//word"/> + <eval expected="PageFirst" xpath="//pageViewport[1]/@simple-page-master-name"/> + <eval expected="PageRestEven" xpath="//pageViewport[2]/@simple-page-master-name"/> + <eval expected="PageRestOdd" xpath="//pageViewport[3]/@simple-page-master-name"/> + <eval expected="PageLastEven" xpath="//pageViewport[4]/@simple-page-master-name"/> </checks> </testcase> diff --git a/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_9.xml b/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_9.xml index 9484e4d74..aa4ab9f56 100644 --- a/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_9.xml +++ b/fop/test/layoutengine/standard-testcases/page-sequence_two-column_last-page_9.xml @@ -1173,7 +1173,7 @@ </fo:root> </fo> <checks> - <eval expected="4" xpath="count(//pageViewport)"/> + <eval expected="5" xpath="count(//pageViewport)"/> <eval expected="A." xpath="//pageViewport[1]//word"/> <eval expected="c." xpath="//pageViewport[2]//word"/> <eval expected="(a)" xpath="//pageViewport[3]//word"/> @@ -1182,5 +1182,6 @@ <eval expected="PageRestEven" xpath="//pageViewport[2]/@simple-page-master-name"/> <eval expected="PageRestOdd" xpath="//pageViewport[3]/@simple-page-master-name"/> <eval expected="PageRestEven" xpath="//pageViewport[4]/@simple-page-master-name"/> + <eval expected="PageLastOdd" xpath="//pageViewport[5]/@simple-page-master-name"/> </checks> </testcase> |