Преглед на файлове

PR:

Obtained from:
Submitted by:
Reviewed by:
1.)  AddChildNode(), characters() modified to throw SAXParseException to
allow AddChildNode() to do validation of its own.

2.)  Better child validation added to PageSequence.java.

3.)  Various other code cleanups.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197903 13f79535-47bb-0310-9956-ffa450edef68
tags/Root_Temp_KnuthStylePageBreaking
Glen Mazza преди 20 години
родител
ревизия
efb1d8b52a

+ 2
- 4
src/java/org/apache/fop/area/AreaTreeHandler.java Целия файл

@@ -351,8 +351,7 @@ public class AreaTreeHandler extends FOInputHandler {
* @param pageSequence the page sequence ending
* @throws FOPException if there is an error formatting the pages
*/
public void endPageSequence(PageSequence pageSequence)
throws FOPException {
public void endPageSequence(PageSequence pageSequence) {
//areaTree.setFontInfo(fontInfo);

if (collectStatistics) {
@@ -377,8 +376,7 @@ public class AreaTreeHandler extends FOInputHandler {
* @param areaTree the area tree to format this page sequence into
* @throws FOPException if there is an error formatting the contents
*/
private void formatPageSequence(PageSequence pageSeq)
throws FOPException {
private void formatPageSequence(PageSequence pageSeq) {
Title title = null;
if (pageSeq.getTitleFO() != null) {
title = getTitleArea(pageSeq.getTitleFO());

+ 1
- 3
src/java/org/apache/fop/fo/FOInputHandler.java Целия файл

@@ -144,11 +144,9 @@ public abstract class FOInputHandler {
}

/**
*
* @param pageSeq PageSequence that is ending.
* @throws FOPException For errors encountered.
*/
public void endPageSequence(PageSequence pageSeq) throws FOPException {
public void endPageSequence(PageSequence pageSeq) {
}

/**

+ 3
- 3
src/java/org/apache/fop/fo/FONode.java Целия файл

@@ -66,7 +66,7 @@ public abstract class FONode {
* Set the location information for this element
* @param locator the org.xml.sax.Locator object
*/
public void setLocation(Locator locator) {
public void setLocator(Locator locator) {
if (locator != null) {
this.locator = locator;
}
@@ -130,7 +130,7 @@ public abstract class FONode {
* @param locator location in fo source file.
*/
protected void addCharacters(char data[], int start, int length,
Locator locator) {
Locator locator) throws SAXParseException {
// ignore
}

@@ -151,7 +151,7 @@ public abstract class FONode {
/**
* @param child child node to be added to the childNodes of this node
*/
protected void addChildNode(FONode child) {
protected void addChildNode(FONode child) throws SAXParseException {
}

/**

+ 5
- 4
src/java/org/apache/fop/fo/FOTreeBuilder.java Целия файл

@@ -204,10 +204,11 @@ public class FOTreeBuilder extends DefaultHandler {
* SAX Handler for characters
* @see org.xml.sax.ContentHandler#characters(char[], int, int)
*/
public void characters(char[] data, int start, int length) {
if (currentFObj != null) {
currentFObj.addCharacters(data, start, start + length, locator);
}
public void characters(char[] data, int start, int length)
throws SAXParseException {
if (currentFObj != null) {
currentFObj.addCharacters(data, start, start + length, locator);
}
}

/**

+ 2
- 2
src/java/org/apache/fop/fo/FObj.java Целия файл

@@ -102,7 +102,7 @@ public class FObj extends FONode implements Constants {
*/
public void processNode(String elementName, Locator locator,
Attributes attlist) throws SAXParseException {
setLocation(locator);
setLocator(locator);
addProperties(attlist);
}

@@ -225,7 +225,7 @@ public class FObj extends FONode implements Constants {
/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
protected void addChildNode(FONode child) {
protected void addChildNode(FONode child) throws SAXParseException {
if (PropertySets.canHaveMarkers(getNameId()) &&
child.getNameId() == FO_MARKER) {
addMarker((Marker) child);

+ 3
- 2
src/java/org/apache/fop/fo/FObjMixed.java Целия файл

@@ -20,6 +20,7 @@ package org.apache.fop.fo;

import java.util.List;
import org.xml.sax.Locator;
import org.xml.sax.SAXParseException;
import org.apache.fop.layoutmgr.LMiter;
import org.apache.fop.layoutmgr.InlineStackingLayoutManager;

@@ -46,7 +47,7 @@ public class FObjMixed extends FObj {
* @param locator location in fo source file.
*/
protected void addCharacters(char data[], int start, int length,
Locator locator) {
Locator locator) throws SAXParseException {
if (textInfo == null) {
// Really only need one of these, but need to get fontInfo
// stored in propMgr for later use.
@@ -55,7 +56,7 @@ public class FObjMixed extends FObj {
}

FOText ft = new FOText(data, start, length, textInfo, this);
ft.setLocation(locator);
ft.setLocator(locator);
getFOInputHandler().characters(ft.ca, ft.startIndex, ft.endIndex);
addChildNode(ft);

+ 1
- 1
src/java/org/apache/fop/fo/XMLObj.java Целия файл

@@ -70,7 +70,7 @@ public abstract class XMLObj extends FONode {
*/
public void processNode(String elementName, Locator locator,
Attributes attlist) throws SAXParseException {
setLocation(locator);
setLocator(locator);
name = elementName;
attr = attlist;
}

+ 1
- 1
src/java/org/apache/fop/fo/flow/Block.java Целия файл

@@ -166,7 +166,7 @@ public class Block extends FObjMixed {
/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
public void addChildNode(FONode child) {
public void addChildNode(FONode child) throws SAXParseException {
// Handle whitespace based on values of properties
// Handle a sequence of inline-producing child nodes in
// one pass

+ 1
- 1
src/java/org/apache/fop/fo/flow/Table.java Целия файл

@@ -109,7 +109,7 @@ public class Table extends FObj {
/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
protected void addChildNode(FONode child) {
protected void addChildNode(FONode child) throws SAXParseException {
if (child.getName().equals("fo:table-column")) {
if (columns == null) {
columns = new ArrayList();

+ 4
- 17
src/java/org/apache/fop/fo/pagination/Flow.java Целия файл

@@ -34,25 +34,15 @@ import org.apache.fop.layoutmgr.FlowLayoutManager;

/**
* Class modelling the fo:flow object.
* @todo check need for markerSnapshot, contentWidth
*/
public class Flow extends FObj {

/**
* PageSequence container
*/
private PageSequence pageSequence;

/**
* ArrayList to store snapshot
*/
private ArrayList markerSnapshot;

/**
* flow-name attribute: indicates the region the content of this
* flow should go to.
*/
protected String flowName;

/**
* Content-width of current column area during layout
*/
@@ -74,16 +64,13 @@ public class Flow extends FObj {
protected void addProperties(Attributes attlist) throws SAXParseException {
super.addProperties(attlist);

this.pageSequence = (PageSequence) parent;

flowName = getPropString(PR_FLOW_NAME);
// check flow_name property
String flowName = getPropString(PR_FLOW_NAME);

if (flowName == null || flowName.equals("")) {
missingPropertyError("flow-name");
}
// Now done in addChild of page-sequence
//pageSequence.addFlow(this);

getFOInputHandler().startFlow(this);
}


+ 36
- 35
src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java Целия файл

@@ -93,6 +93,42 @@ public class LayoutMasterSet extends FObj {
if (childNodes == null) {
missingChildElementError("(simple-page-master|page-sequence-master)+");
}
checkRegionNames();
}

/**
* Section 7.25.7: check to see that if a region-name is a
* duplicate, that it maps to the same fo region-class.
* @throws SAXParseException if there's a name duplication
*/
private void checkRegionNames() throws SAXParseException {
// (user-entered) region-name to default region map.
Map allRegions = new java.util.HashMap();
for (Iterator spm = simplePageMasters.values().iterator();
spm.hasNext();) {
SimplePageMaster simplePageMaster =
(SimplePageMaster)spm.next();
Map spmRegions = simplePageMaster.getRegions();
for (Iterator e = spmRegions.values().iterator();
e.hasNext();) {
Region region = (Region) e.next();
if (allRegions.containsKey(region.getRegionName())) {
String defaultRegionName =
(String) allRegions.get(region.getRegionName());
if (!defaultRegionName.equals(region.getDefaultRegionName())) {
throw new SAXParseException("Region-name ("
+ region.getRegionName()
+ ") is being mapped to multiple "
+ "region-classes ("
+ defaultRegionName + " and "
+ region.getDefaultRegionName()
+ ")", locator);
}
}
allRegions.put(region.getRegionName(),
region.getDefaultRegionName());
}
}
}

/**
@@ -166,41 +202,6 @@ public class LayoutMasterSet extends FObj {
return (PageSequenceMaster)this.pageSequenceMasters.get(masterName);
}

/**
* Section 7.25.7: check to see that if a region-name is a
* duplicate, that it maps to the same fo region-class.
* @throws SAXParseException if there's a name duplication
*/
public void checkRegionNames() throws SAXParseException {
// (user-entered) region-name to default region map.
Map allRegions = new java.util.HashMap();
for (Iterator spm = simplePageMasters.values().iterator();
spm.hasNext();) {
SimplePageMaster simplePageMaster =
(SimplePageMaster)spm.next();
Map spmRegions = simplePageMaster.getRegions();
for (Iterator e = spmRegions.values().iterator();
e.hasNext();) {
Region region = (Region) e.next();
if (allRegions.containsKey(region.getRegionName())) {
String defaultRegionName =
(String) allRegions.get(region.getRegionName());
if (!defaultRegionName.equals(region.getDefaultRegionName())) {
throw new SAXParseException("Region-name ("
+ region.getRegionName()
+ ") is being mapped to multiple "
+ "region-classes ("
+ defaultRegionName + " and "
+ region.getDefaultRegionName()
+ ")", locator);
}
}
allRegions.put(region.getRegionName(),
region.getDefaultRegionName());
}
}
}

/**
* Checks whether or not a region name exists in this master set.
* @param regionName name of the region

+ 107
- 144
src/java/org/apache/fop/fo/pagination/PageSequence.java Целия файл

@@ -27,7 +27,6 @@ import org.xml.sax.Locator;
import org.xml.sax.SAXParseException;

// FOP
import org.apache.fop.apps.FOPException;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FObj;

@@ -38,16 +37,13 @@ import org.apache.fop.fo.FObj;
*/
public class PageSequence extends FObj {
//
// intial-page-number types
// initial-page-number types
//
public static final int EXPLICIT = 0;
public static final int AUTO = 1;
public static final int AUTO_EVEN = 2;
public static final int AUTO_ODD = 3;

//
// associations
//
/**
* The parent root object
*/
@@ -68,11 +64,7 @@ public class PageSequence extends FObj {
*/
public HashMap flowMap;

// according to communication from Paul Grosso (XSL-List,
// 001228, Number 406), confusion in spec section 6.4.5 about
// multiplicity of fo:flow in XSL 1.0 is cleared up - one (1)
// fo:flow per fo:page-sequence only.
// private boolean isFlowSet = false;
// private boolean isFlowSet = false;

// for structure handler
private boolean sequenceStarted = false;
@@ -113,14 +105,14 @@ public class PageSequence extends FObj {
public PageSequenceMaster pageSequenceMaster;

/**
* The main content flow for this page-sequence.
* The fo:title object for this page-sequence.
*/
private Flow mainFlow = null;
private Title titleFO;

/**
* The fo:title object for this page-sequence.
* The fo:flow object for this page-sequence.
*/
private Title titleFO;
private Flow mainFlow = null;

/**
* Create a page sequence FO node.
@@ -131,113 +123,13 @@ public class PageSequence extends FObj {
super(parent);
}

/**
* @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
XSL Content Model: (title?,static-content*,flow)
*/
protected void validateChildNode(Locator loc, String nsURI, String localName)
throws SAXParseException {
if (nsURI == FO_URI) {
if (localName.equals("title")) {
if (titleFO != null) {
tooManyNodesError(loc, "fo:title");
} else if (flowMap.size() > 0) {
nodesOutOfOrderError(loc, "fo:title", "fo:static-content");
} else if (mainFlow != null) {
nodesOutOfOrderError(loc, "fo:title", "fo:flow");
}
} else if (localName.equals("static-content")) {
if (mainFlow != null) {
nodesOutOfOrderError(loc, "fo:static-content", "fo:flow");
}
} else if (localName.equals("flow")) {
if (mainFlow != null) {
tooManyNodesError(loc, "fo:flow");
}
} else {
invalidChildError(loc, nsURI, localName);
}
} else {
invalidChildError(loc, nsURI, localName);
}
}

/**
* Signal end of this xml element.
* This passes the end page sequence to the structure handler
* so it can act upon that.
*/
protected void endOfNode() throws SAXParseException {
if (mainFlow == null) {
missingChildElementError("(title?,static-content*,flow)");
}
try {
getFOInputHandler().endPageSequence(this);
} catch (FOPException fopex) {
getLogger().error("Error in PageSequence.endOfNode(): "
+ fopex.getMessage(), fopex);
}
}

/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
public void addChildNode(FONode child) {
try {
String childName = child.getName();
if (childName.equals("fo:title")) {
this.titleFO = (Title)child;
} else if (childName.equals("fo:flow")) {
this.mainFlow = (Flow)child;
String flowName = this.mainFlow.getPropString(PR_FLOW_NAME);
if (flowMap.containsKey(flowName)) {
throw new FOPException("flow-name "
+ flowName
+ " is not unique within an fo:page-sequence");
}
if (!this.layoutMasterSet.regionNameExists(flowName)) {
getLogger().error("region-name '"
+ flowName
+ "' doesn't exist in the layout-master-set.");
}
// Don't add main flow to the flow map
// addFlow(mainFlow);
startStructuredPageSequence();
super.addChildNode(child); // For getChildren
} else if (childName.equals("fo:static-content")) {
String flowName = ((StaticContent)child).getPropString(PR_FLOW_NAME);
if (flowMap.containsKey(flowName)) {
throw new FOPException("flow-name " + flowName
+ " is not unique within an fo:page-sequence");
}
if (!this.layoutMasterSet.regionNameExists(flowName)) {
throw new FOPException("region-name '" + flowName
+ "' doesn't exist in the layout-master-set.");
}
flowMap.put(flowName, child);
// addFlow((Flow)child);
startStructuredPageSequence();
}
} catch (FOPException fopex) {
getLogger().error("Error in PageSequence.addChildNode(): "
+ fopex.getMessage(), fopex);
}
}


/**
* @see org.apache.fop.fo.FObj#addProperties
*/
protected void addProperties(Attributes attlist) throws SAXParseException {
super.addProperties(attlist);

this.root = (Root) parent;
// this.root.addPageSequence(this);
layoutMasterSet = root.getLayoutMasterSet();
// best time to run some checks on LayoutMasterSet
layoutMasterSet.checkRegionNames();

flowMap = new HashMap();

// we are now on the first page of the page sequence
@@ -257,7 +149,7 @@ public class PageSequence extends FObj {
this.explicitFirstNumber = (pageStart > 0) ? pageStart : 1;
} catch (NumberFormatException nfe) {
throw new SAXParseException("\"" + ipnValue
+ "\" is not a valid value for initial-page-number", locator);
+ "\" is not a valid value for initial-page-number", locator);
}
}

@@ -269,17 +161,17 @@ public class PageSequence extends FObj {
this.layoutMasterSet.getPageSequenceMaster(masterName);
if (this.pageSequenceMaster == null) {
throw new SAXParseException("master-reference '" + masterName
+ "' for fo:page-sequence matches no"
+ " simple-page-master or page-sequence-master", locator);
+ "' for fo:page-sequence matches no"
+ " simple-page-master or page-sequence-master", locator);
}
}

// get the 'format' properties
this.pageNumberGenerator =
new PageNumberGenerator(getPropString(PR_FORMAT),
this.propertyList.get(PR_GROUPING_SEPARATOR).getCharacter(),
this.propertyList.get(PR_GROUPING_SIZE).getNumber().intValue(),
getPropEnum(PR_LETTER_VALUE));
this.propertyList.get(PR_GROUPING_SEPARATOR).getCharacter(),
this.propertyList.get(PR_GROUPING_SIZE).getNumber().intValue(),
getPropEnum(PR_LETTER_VALUE));

this.forcePageCount = getPropEnum(PR_FORCE_PAGE_COUNT);

@@ -291,26 +183,95 @@ public class PageSequence extends FObj {
startStructuredPageSequence();
}

/**
* @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
XSL Content Model: (title?,static-content*,flow)
*/
protected void validateChildNode(Locator loc, String nsURI, String localName)
throws SAXParseException {
if (nsURI == FO_URI) {
if (localName.equals("title")) {
if (titleFO != null) {
tooManyNodesError(loc, "fo:title");
} else if (flowMap.size() > 0) {
nodesOutOfOrderError(loc, "fo:title", "fo:static-content");
} else if (mainFlow != null) {
nodesOutOfOrderError(loc, "fo:title", "fo:flow");
}
} else if (localName.equals("static-content")) {
if (mainFlow != null) {
nodesOutOfOrderError(loc, "fo:static-content", "fo:flow");
}
} else if (localName.equals("flow")) {
if (mainFlow != null) {
tooManyNodesError(loc, "fo:flow");
}
} else {
invalidChildError(loc, nsURI, localName);
}
} else {
invalidChildError(loc, nsURI, localName);
}
}

/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
* @todo see if addChildNode() should also be called for fo's other than
* fo:flow.
*/
public void addChildNode(FONode child) throws SAXParseException {
int childId = child.getNameId();

if (childId == FO_TITLE) {
this.titleFO = (Title) child;
} else if (childId == FO_FLOW) {
this.mainFlow = (Flow) child;
addFlow(mainFlow);
startStructuredPageSequence();
super.addChildNode(child); // For getChildren
} else if (childId == FO_STATIC_CONTENT) {
addFlow((StaticContent) child);
startStructuredPageSequence();
}
}

/**
* Signal end of this xml element.
* This passes the end page sequence to the structure handler
* so it can act upon that.
*/
protected void endOfNode() throws SAXParseException {
if (mainFlow == null) {
missingChildElementError("(title?,static-content*,flow)");
}

getFOInputHandler().endPageSequence(this);
}

/**
* Add a flow or static content, mapped by its flow-name.
* The flow-name is used to associate the flow with a region on a page,
* based on the names given to the regions in the page-master used to
* generate that page.
* based on the region-names given to the regions in the page-master
* used to generate that page.
*/
// private void addFlow(Flow flow) throws FOPException {
// if (flowMap.containsKey(flow.getFlowName())) {
// throw new FOPException("flow-names must be unique within an fo:page-sequence");
// }
// if (!this.layoutMasterSet.regionNameExists(flow.getFlowName())) {
// getLogger().error("region-name '"
// + flow.getFlowName()
// + "' doesn't exist in the layout-master-set.");
// }
// flowMap.put(flow.getFlowName(), flow);
// //setIsFlowSet(true);
// }
private void addFlow(Flow flow) throws SAXParseException {
String flowName = flow.getPropString(PR_FLOW_NAME);

if (hasFlowName(flowName)) {
throw new SAXParseException ("duplicate flow-name \""
+ flowName
+ "\" found within fo:page-sequence", flow.locator);
}

if (!layoutMasterSet.regionNameExists(flowName)
&& !flowName.equals("xsl-before-float-separator")
&& !flowName.equals("xsl-footnote-separator")) {
throw new SAXParseException ("flow-name \""
+ flowName
+ "\" could not be mapped to a region-name in the"
+ " layout-master-set", flow.locator);
}
}

/**
* Start the page-sequence logic in the Structured Handler
@@ -322,7 +283,6 @@ public class PageSequence extends FObj {
}
}


/**
* Initialize the current page number for the start of the page sequence.
*/
@@ -667,15 +627,7 @@ public class PageSequence extends FObj {
* @return the static content FO node
*/
public StaticContent getStaticContent(String name) {
return (StaticContent)flowMap.get(name);
}

/**
* Accessor method for layoutMasterSet
* @return layoutMasterSet for this object
*/
public LayoutMasterSet getLayoutMasterSet() {
return layoutMasterSet;
return (StaticContent) flowMap.get(name);
}

/**
@@ -695,6 +647,17 @@ public class PageSequence extends FObj {
return mainFlow;
}

/**
* Determine if this PageSequence already has a flow with the given flow-name
* Used for validation of incoming fo:flow or fo:static-content objects
* @param flowName The flow-name to search for
* @return true if flow-name already defined within this page sequence,
* false otherwise
*/
public boolean hasFlowName(String flowName) {
return flowMap.containsKey(flowName);
}

/**
* Public accessor for getting the PageSequenceMaster (if any) to which this
* PageSequence is attached.

+ 1
- 1
src/java/org/apache/fop/fo/pagination/RegionBA.java Целия файл

@@ -61,7 +61,7 @@ public abstract class RegionBA extends Region {
Region start = getSiblingRegion(FO_REGION_START);
if (start != null) {
offset = start.getPropLength(PR_EXTENT);
vpRefRect.translate(offset, 0);
vpRefRect.translate(offset, 0); // move (x, y) units
}
Region end = getSiblingRegion(FO_REGION_END);
if (end != null) {

+ 2
- 0
src/java/org/apache/fop/fo/pagination/RegionEnd.java Целия файл

@@ -58,9 +58,11 @@ public class RegionEnd extends RegionSE {
// Depends on extent, precedence and writing mode
Rectangle vpRect;
if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
// Rectangle: x , y (of top left point), width, height
vpRect = new Rectangle(reldims.ipd - extent, 0,
extent, reldims.bpd);
} else {
// Rectangle: x , y (of top left point), width, height
vpRect = new Rectangle(reldims.ipd - extent, 0,
reldims.bpd, extent);
}

+ 0
- 1
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java Целия файл

@@ -50,7 +50,6 @@ public class RepeatablePageMasterReference extends FObj

/**
* @see org.apache.fop.fo.FObj#addProperties
* @todo need to
*/
protected void addProperties(Attributes attlist) throws SAXParseException {
super.addProperties(attlist);

+ 0
- 11
src/java/org/apache/fop/layoutmgr/PageLayoutManager.java Целия файл

@@ -768,9 +768,6 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
spm.getPropertyManager().getWritingMode(), pageRefRect, reldims);

// Create a RegionViewport/ reference area pair for each page region

boolean bHasBody = false;

for (Iterator regenum = spm.getRegions().values().iterator();
regenum.hasNext();) {
Region r = (Region)regenum.next();
@@ -783,17 +780,9 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
rvp.setRegion(makeRegionReferenceArea(r, rvp.getViewArea()));
}
page.setRegionViewport(r.getNameId(), rvp);
if (r.getNameId() == FO_REGION_BODY) {
bHasBody = true;
}
}

if (!bHasBody) {
spm.getLogger().error("simple-page-master has no region-body");
}

return new PageViewport(page, new Rectangle(0, 0, pageWidth, pageHeight));

}

/**

+ 3
- 4
src/java/org/apache/fop/render/mif/MIFHandler.java Целия файл

@@ -116,9 +116,9 @@ public class MIFHandler extends FOInputHandler {
// get the layout master set
// setup the pages for this sequence
String name = pageSeq.getPropString(Constants.PR_MASTER_REFERENCE);
SimplePageMaster spm = pageSeq.getLayoutMasterSet().getSimplePageMaster(name);
SimplePageMaster spm = pageSeq.getRoot().getLayoutMasterSet().getSimplePageMaster(name);
if (spm == null) {
PageSequenceMaster psm = pageSeq.getLayoutMasterSet().getPageSequenceMaster(name);
PageSequenceMaster psm = pageSeq.getRoot().getLayoutMasterSet().getPageSequenceMaster(name);
} else {
// create simple master with regions
MIFElement prop = new MIFElement("PageType");
@@ -159,8 +159,7 @@ public class MIFHandler extends FOInputHandler {
/**
* @see org.apache.fop.fo.FOInputHandler#endPageSequence(PageSequence)
*/
public void endPageSequence(PageSequence pageSeq) throws FOPException {

public void endPageSequence(PageSequence pageSeq) {
}

/**

+ 2
- 2
src/java/org/apache/fop/render/rtf/RTFHandler.java Целия файл

@@ -178,7 +178,7 @@ public class RTFHandler extends FOInputHandler {
String reference = prop.getString();

SimplePageMaster pagemaster
= pageSeq.getLayoutMasterSet().getSimplePageMaster(reference);
= pageSeq.getRoot().getLayoutMasterSet().getSimplePageMaster(reference);

//only simple-page-master supported, so pagemaster may be null
if (pagemaster != null) {
@@ -202,7 +202,7 @@ public class RTFHandler extends FOInputHandler {
/**
* @see org.apache.fop.fo.FOInputHandler#endPageSequence(PageSequence)
*/
public void endPageSequence(PageSequence pageSeq) throws FOPException {
public void endPageSequence(PageSequence pageSeq) {
if (bDefer) {
return;
}

Loading…
Отказ
Запис