bckfnn 2004/10/01 02:03:35 Modified: src/java/org/apache/fop/render/rtf RTFHandler.java TextAttributesConverter.java Log: Initial support for fo:blockcontainer. Revision Changes Path 1.34 +61 -1 xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java Index: RTFHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- RTFHandler.java 1 Oct 2004 08:58:52 -0000 1.33 +++ RTFHandler.java 1 Oct 2004 09:03:35 -0000 1.34 @@ -32,6 +32,7 @@ import org.apache.fop.fo.FObj; import org.apache.fop.fo.flow.BasicLink; import org.apache.fop.fo.flow.Block; +import org.apache.fop.fo.flow.BlockContainer; import org.apache.fop.fo.flow.Character; import org.apache.fop.fo.flow.ExternalGraphic; import org.apache.fop.fo.flow.Footnote; @@ -374,6 +375,65 @@ return; } + if(bDefer) { + return; + } + + try { + IRtfTextrunContainer container + = (IRtfTextrunContainer)builderContext.getContainer( + IRtfTextrunContainer.class, + true, this); + + RtfTextrun textrun = container.getTextrun(); + + textrun.addParagraphBreak(); + textrun.popAttributes(); + + } catch (IOException ioe) { + log.error("startBlock:" + ioe.getMessage()); + throw new RuntimeException(ioe.getMessage()); + } catch (Exception e) { + log.error("startBlock:" + e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + } + + /** + * @see org.apache.fop.fo.FOEventHandler#startBlockContainer(BlockContainer) + */ + public void startBlockContainer(BlockContainer blc) { + if (bDefer) { + return; + } + + try { + RtfAttributes rtfAttr + = TextAttributesConverter.convertBlockContainerAttributes(blc); + + IRtfTextrunContainer container + = (IRtfTextrunContainer)builderContext.getContainer( + IRtfTextrunContainer.class, + true, this); + + RtfTextrun textrun = container.getTextrun(); + + textrun.addParagraphBreak(); + textrun.pushAttributes(rtfAttr); + } catch (IOException ioe) { + // TODO could we throw Exception in all FOEventHandler events? + log.error("startBlock: " + ioe.getMessage()); + throw new RuntimeException("IOException: " + ioe); + } catch (Exception e) { + log.error("startBlock: " + e.getMessage()); + throw new RuntimeException("Exception: " + e); + } + } + + /** + * @see org.apache.fop.fo.FOEventHandler#endBlockContainer(BlockContainer) + */ + public void endBlockContainer(BlockContainer bl) { if(bDefer) { return; } 1.16 +23 -1 xml-fop/src/java/org/apache/fop/render/rtf/TextAttributesConverter.java Index: TextAttributesConverter.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/TextAttributesConverter.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- TextAttributesConverter.java 30 Aug 2004 12:00:54 -0000 1.15 +++ TextAttributesConverter.java 1 Oct 2004 09:03:35 -0000 1.16 @@ -75,6 +75,28 @@ } /** + * Converts all known text FO properties to RtfAttributes + * @param props list of FO properites, which are to be converted + */ + public static RtfAttributes convertBlockContainerAttributes(FObj fobj) + throws FOPException { + RtfAttributes attrib = new RtfAttributes(); + attrBlockFontFamily(fobj, attrib); + attrBlockFontWeight(fobj, attrib); + attrBlockFontSize(fobj, attrib); + attrBlockFontColor(fobj, attrib); + attrBlockFontItalic(fobj, attrib); + attrBlockFontUnderline(fobj, attrib); + attrBlockBackgroundColor(fobj, attrib); + attrBlockSpaceBeforeAfter(fobj, attrib); + attrBlockMargins(fobj, attrib); + attrBlockTextAlign(fobj, attrib); + //attrBlockDimension(fobj, attrib); + + return attrib; + } + + /** * Converts all character related FO properties to RtfAttributes. * @param fobj FObj whose properties are to be converted */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]