Browse Source

Bugzilla #45369: footnotes were rendered at the top of the region-body when using the intermediate format


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@675590 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_0
Vincent Hennebert 16 years ago
parent
commit
a8534f0b6d

+ 12
- 16
src/java/org/apache/fop/area/AreaTreeParser.java View File

@@ -21,12 +21,11 @@ package org.apache.fop.area;

import java.awt.Color;
import java.awt.geom.Rectangle2D;
import java.nio.CharBuffer;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.StringTokenizer;
import java.nio.CharBuffer;

import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
@@ -37,22 +36,8 @@ import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;

import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;

import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

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

import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageManager;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
import org.apache.xmlgraphics.util.QName;

import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.Trait.Background;
import org.apache.fop.area.Trait.InternalLink;
@@ -80,6 +65,16 @@ import org.apache.fop.util.ContentHandlerFactory;
import org.apache.fop.util.ContentHandlerFactoryRegistry;
import org.apache.fop.util.ConversionUtils;
import org.apache.fop.util.DefaultErrorListener;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageManager;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
import org.apache.xmlgraphics.util.QName;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
* This is a parser for the area tree XML (intermediate format) which is used to reread an area
@@ -559,6 +554,7 @@ public class AreaTreeParser {
public void startElement(Attributes attributes) {
Footnote fn = getCurrentBodyRegion().getFootnote();
transferForeignObjects(attributes, fn);
fn.setTop(getAttributeAsInteger(attributes, "top-offset", 0));
areaStack.push(fn);
}

+ 3
- 1
src/java/org/apache/fop/render/xml/XMLRenderer.java View File

@@ -544,7 +544,9 @@ public class XMLRenderer extends AbstractXMLRenderer {
* {@inheritDoc}
*/
protected void renderFootnote(Footnote footnote) {
startElement("footnote");
atts.clear();
addAttribute("top-offset", footnote.getTop());
startElement("footnote", atts);
super.renderFootnote(footnote);
endElement("footnote");
}

+ 1
- 0
test/layoutengine/standard-testcases/footnote_basic.xml View File

@@ -68,6 +68,7 @@
<eval expected="6000" xpath="//pageViewport[1]/page/regionViewport/regionBody/mainReference/span/flow/block[1]/lineArea/inlineparent/text/@font-size"/>
<eval expected=" in it." xpath="//pageViewport[1]/page/regionViewport/regionBody/mainReference/span/flow/block[1]/lineArea/text[2]"/>
<!-- the footnote -->
<eval expected="201600" xpath="//pageViewport[1]/page/regionViewport/regionBody/footnote/@top-offset"/>
<eval expected="360000" xpath="//pageViewport[1]/page/regionViewport/regionBody/footnote/block[1]/@ipd"/>
<eval expected="14400" xpath="//pageViewport[1]/page/regionViewport/regionBody/footnote/block[1]/@bpd"/>
<eval expected="11100" xpath="//pageViewport[1]/page/regionViewport/regionBody/footnote/block[1]/lineArea/@bpd"/>

Loading…
Cancel
Save