pherweg 2004/01/20 13:37:25 Modified: src/java/org/apache/fop/render/rtf/rtflib/rtfdoc RtfHeader.java RtfFootnote.java Log: Submitted by: Marc Wilhelm Kuester; added support for fo:list in fo:footnote; ensured Word displays footnote, not endnote Revision Changes Path 1.2 +15 -4 xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHeader.java Index: RtfHeader.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHeader.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- RtfHeader.java 4 Nov 2003 23:59:11 -0000 1.1 +++ RtfHeader.java 20 Jan 2004 21:37:24 -0000 1.2 @@ -68,6 +68,7 @@ /** RTF file header, contains style, font and other document-level information. * @author Bertrand Delacretaz [EMAIL PROTECTED] * @author Andreas Putz [EMAIL PROTECTED] + * @author Marc Wilhelm Kuester */ class RtfHeader extends RtfContainer { @@ -87,9 +88,9 @@ writeUserProperties(); RtfColorTable.getInstance().writeColors(this); super.writeRtfContent(); - RtfTemplate.getInstance().writeTemplate(this); - RtfStyleSheetTable.getInstance().writeStyleSheet(this); - + RtfTemplate.getInstance().writeTemplate(this); + RtfStyleSheetTable.getInstance().writeStyleSheet(this); + writeFootnoteProperties(); } /** write user properties if any */ @@ -126,5 +127,15 @@ /** write to our Writer using an RtfStringConverter */ void writeRtfString(String toWrite) throws IOException { RtfStringConverter.getInstance().writeRtfString(writer, toWrite); + } + + /** + *write properties for footnote handling + */ + private void writeFootnoteProperties() throws IOException { + writeControlWord("fet0"); //footnotes, not endnotes + writeControlWord("ftnbj"); //place footnotes at the end of the + //page (should be the default, but + //Word 2000 thinks otherwise) } } 1.2 +24 -7 xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfFootnote.java Index: RtfFootnote.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfFootnote.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- RtfFootnote.java 10 Jan 2004 19:43:58 -0000 1.1 +++ RtfFootnote.java 20 Jan 2004 21:37:24 -0000 1.2 @@ -60,23 +60,28 @@ /** Model of an RTF footnote * @author Peter Herweg, [EMAIL PROTECTED] + * @author Marc Wilhelm Kuester */ public class RtfFootnote extends RtfContainer - implements IRtfTextrunContainer { + implements IRtfTextrunContainer, IRtfListContainer { RtfTextrun textrunInline = null; - RtfTextrun textrunBody = null; + RtfContainer body = null; + RtfList list = null; boolean bBody = false; /** Create an RTF list item as a child of given container with default attributes */ RtfFootnote(RtfContainer parent, Writer w) throws IOException { super(parent, w); textrunInline = new RtfTextrun(this, writer, null); - textrunBody = new RtfTextrun(this, writer, null); + body = new RtfContainer(this, writer); } public RtfTextrun getTextrun() throws IOException { if (bBody) { - return textrunBody; + RtfTextrun textrun = RtfTextrun.getTextrun(body, writer, null); + textrun.setSuppressLastPar(true); + + return textrun; } else { return textrunInline; } @@ -91,9 +96,21 @@ writeGroupMark(true); writeControlWord("footnote"); - writeControlWord("ftnalt"); - textrunBody.writeRtfContent(); + writeControlWord("ftnallt"); + + body.writeRtfContent(); + writeGroupMark(false); + } + + public RtfList newList(RtfAttributes attrs) throws IOException { + if (list != null) { + list.close(); + } + + list = new RtfList(body, writer, attrs); + + return list; } public void startBody() {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]