W3C home > Mailing lists > Public > www-xsl-fo@w3.org > October 2001

embedded SVG in FO

From: Loic L'Heveder <Loic.L'Heveder@cern.ch>
Date: Wed, 24 Oct 2001 01:39:08 +0200
Message-ID: <000a01c15c1b$e995de30$35c28a89@cern.ch>
To: <www-xsl-fo@w3.org>
Hello,

I'm new in using fo. My goal is to output data in PDF format. I want also to
create some piecharts on the fly using embedded SVG. I'm using FOP in order
to apply the XSL transformation to the XML data and then output it as PDF
format. I use a servlet

    p_response.setContentType("application/pdf");

    XSLStylesheet l_xslfo = m_xsl.getXSLStylesheet(str_xslPath);
    l_xslfo.setParam("P_LANGUAGE", m_xsl.toXSLString(p_language));
    XMLDocument l_fo = m_xml.getXMLDocument(myXMLDocument,  l_xslfo);

    Driver driver = new Driver();
    driver.setRenderer(new org.apache.fop.render.pdf.PDFRenderer());
    driver.setOutputStream(p_response.getOutputStream());
    driver.render(l_fo);

I put the l_fo output at the end of the mail.

My problem is that the SVG piecharts I create using XSLT are not displayed.
If I copy the SVG code output by the XSL processor and paste it back into my
XSL file, the two first charts are not displayed but the last two one yes. I
can't see any differences between their SVG code except that two (1rst and
2nd) are built through the xsl transformation and two others (3rd and 4th)
are statically defined, is that a reason to my problem?

Is there a kind of "show()" function to call so that the SVG is interpreted
during the rendering process?

thanks,
best regards

Loic

###################################################################
MY XSL FILE THAT PROCESS THE XML FOR A PDF OUTPUT
###################################################################

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:javaMath="http://www.oracle.com/XSL/Transform/java/java.lang.Math"
xmlns:lxslt="http://xml.apache.org/xslt"
extension-element-prefixes="javaMath" exclude-result-prefixes="lxslt">
 <xsl:param name="P_LANGUAGE"/>

 <xsl:template match="/">
  <xsl:choose>
   <xsl:when test="$P_LANGUAGE">
    <xsl:apply-templates select="//questionnaire[LANG=$P_LANGUAGE]"/>
   </xsl:when>
   <xsl:otherwise>
    <xsl:apply-templates select="//questionnaire[1]"/>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

 <xsl:template match="questionnaire">

  <fo:root>

   <fo:layout-master-set>
    <fo:simple-page-master page-master-name="main" margin-top="75pt"
margin-bottom="75pt" margin-left="75pt" margin-right="75pt">
     <fo:region-body margin-bottom="75pt"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="cover" page-height="29.7cm"
page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm"
margin-right="1cm">
     <fo:region-body margin-top="3cm"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="leftPage" page-height="29.7cm"
page-width="21cm" margin-left="1cm" margin-right="1cm" margin-top="0.5cm"
margin-bottom="0.5cm">
     <fo:region-before extent="1cm"/>
     <fo:region-after extent="1cm"/>
     <fo:region-body margin-top="1.1cm" margin-bottom="1.1cm"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="rightPage" page-height="29.7cm"
page-width="21cm" margin-left="1cm" margin-right="1cm" margin-top="0.5cm"
margin-bottom="0.5cm">
     <fo:region-before extent="1cm"/>
     <fo:region-after extent="1cm"/>
     <fo:region-body margin-top="1.1cm" margin-bottom="1.1cm"/>
    </fo:simple-page-master>
    <fo:page-sequence-master master-name="contents">
     <fo:repeatable-page-master-alternatives>
      <fo:conditional-page-master-reference master-name="leftPage"
odd-or-even="even"/>
      <fo:conditional-page-master-reference master-name="rightPage"
odd-or-even="odd"/>
     </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
   </fo:layout-master-set>

   <fo:page-sequence master-name="contents" initial-page-number="2">
    <fo:static-content flow-name="xsl-region-before">
     <fo:block font-family="Helvetica" font-size="10pt" text-align="center">
      <xsl:value-of select="TITLE"/>
     </fo:block>
    </fo:static-content>
    <fo:static-content flow-name="xsl-region-after">
     <fo:block font-family="Helvetica" font-size="10pt" text-align="center">
      Page <fo:page-number/>
     </fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body">
     <xsl:apply-templates select="ITEMS/ITEMS_ROW">
      <xsl:sort data-type="number" select="SEQUENCE"/>
     </xsl:apply-templates>
     <xsl:call-template name="DRAW_PIECHART_BARCHART"/>
    </fo:flow>
   </fo:page-sequence>
  </fo:root>
 </xsl:template>

 <!--================================================================-->
 <!-- <ITEMS_ROW> template                                               -->
 <!--================================================================-->
 <xsl:template match="ITEMS_ROW">
  <xsl:variable name="L_ID" select="ID"/>
  <xsl:variable name="valid"
select="sum(//ITEMS_ROW[ID=$L_ID]/ANALYSIS/ANALYSIS_ROW/OBSERVATIONS)"/>
  <xsl:variable name="participation"
select="sum(//ITEMS_ROW[ID=$L_ID]/TOTAL_ANSWERS)"/>
  <!--<fo:block break-before="page" space-after.optimum="20pt">
   <fo:block font-family="Arial" font-size="12pt" line-height="15pt"
text-align="start" space-after.optimum="3pt">
    <xsl:value-of select="position()"/>. <xsl:value-of select="QUESTION"/>
   </fo:block>
   <fo:block font-family="Arial" font-size="12pt" line-height="15pt"
text-align="start" space-after.optimum="3pt">
    participation: <xsl:value-of select="$participation"/> answers.
   </fo:block>
   <fo:block font-family="Arial" font-size="12pt" line-height="15pt"
text-align="start" space-after.optimum="10pt">
    valid: <xsl:value-of select="$valid"/> answers.
   </fo:block>
  </fo:block>-->
  <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
    <fo:instream-foreign-object>
     <svg xmlns="http://www.w3.org/2000/svg" width="450" height="300">
     <g style="text-rendering:optimizeLegibility;shape-rendering:auto">
      <g style="stroke:black ; stroke-width:0.5 ; fill-rule:evenodd">
      <xsl:apply-templates select="ANALYSIS/ANALYSIS_ROW">
       <xsl:with-param name="valid" select="$valid"/>
      </xsl:apply-templates>
      </g>
     </g>
     </svg>
    </fo:instream-foreign-object>
  </fo:block>
 </xsl:template>

 <!--================================================================-->
 <!-- <ANALYSIS_ROW>
         -->
 <!--================================================================-->
 <xsl:template match="ANALYSIS_ROW">
  <xsl:variable name="l_num" select="@num"/>
  <xsl:variable name="L_ID" select="ancestor::ITEMS_ROW/ID"/>
  <xsl:variable name="color">
   <xsl:choose>
    <xsl:when test="(position() mod 5) = 1">
     <xsl:text>red</xsl:text>
    </xsl:when>
    <xsl:when test="(position() mod 5) = 2">
     <xsl:text>yellow</xsl:text>
    </xsl:when>
    <xsl:when test="(position() mod 5) = 3">
     <xsl:text>purple</xsl:text>
    </xsl:when>
    <xsl:when test="(position() mod 5) = 4">
     <xsl:text>blue</xsl:text>
    </xsl:when>
    <xsl:otherwise>
     <xsl:text>green</xsl:text>
    </xsl:otherwise>
   </xsl:choose>
  </xsl:variable>
  <xsl:variable name="observations"
select="sum(//ITEMS_ROW[ID=$L_ID]/ANALYSIS/ANALYSIS_ROW[@num=$l_num]/OBSERVA
TIONS)"/>
  <xsl:param name="valid"/>

  <!--<g style="text-rendering:optimizeLegibility;shape-rendering:auto">-->
  <xsl:apply-templates select="." mode="piechart">
   <xsl:with-param name="color" select="$color"/>
   <xsl:with-param name="valid" select="$valid"/>
   <xsl:with-param name="observations" select="$observations"/>
   <xsl:with-param name="runningTotal"
select="sum(//ITEMS_ROW[ID=$L_ID]/ANALYSIS/ANALYSIS_ROW[@num&lt;$l_num]/OBSE
RVATIONS)"/>
  </xsl:apply-templates>
  <!--</g>-->

  <!--<g style="text-rendering:optimizeLegibility;shape-rendering:auto">-->
  <xsl:apply-templates select="." mode="legend">
   <xsl:with-param name="color" select="$color"/>
   <xsl:with-param name="observations" select="$observations"/>
   <xsl:with-param name="y-legend-offset" select="90 + (position() * 20)"/>
   <xsl:with-param name="position" select="position()"/>
  </xsl:apply-templates>
  <!--</g>-->
 </xsl:template>

 <!--================================================================-->
 <!-- <piechart> template                                               -->
 <!--================================================================-->
 <xsl:template match="ANALYSIS_ROW" mode="piechart">
  <xsl:param name="color" select="'red'"/>
  <xsl:param name="runningTotal" select="'0'"/>
  <xsl:param name="valid" select="'0'"/>
  <xsl:param name="observations" select="'0'"/>
  <xsl:variable name="currentAngle"
select="javaMath:toRadians(($observations div $valid) * 360.0)"/>

  <!--================================================================-->
  <!-- Now we draw the actual path.  Notice that we have to calculate -->
  <!-- the degree of rotation and the position of the end of the arc. -->
  <!--================================================================-->
      <path style="fill:{$color}">
       <xsl:attribute name="transform"><xsl:text>translate(100,140)
rotate(</xsl:text><xsl:value-of select="-1 * (($runningTotal div $valid) *
360.0)"/><xsl:text>)</xsl:text></xsl:attribute>
       <xsl:attribute name="d"><xsl:text>M 80 0 A 80 80 0 </xsl:text>
       <xsl:choose>
        <xsl:when test="($observations div
$valid)&gt;0.5"><xsl:text>1</xsl:text></xsl:when>
        <xsl:otherwise><xsl:text>0</xsl:text></xsl:otherwise>
       </xsl:choose>
       <xsl:text> 0 </xsl:text><xsl:value-of
select="javaMath:cos($currentAngle) * 80"/><xsl:text>
</xsl:text><xsl:value-of select="javaMath:sin($currentAngle)
* -80"/><xsl:text> L 0 0 Z </xsl:text></xsl:attribute>
      </path>
 </xsl:template>

 <!--================================================================-->
 <!-- <legend> template                                               -->
 <!--================================================================-->
 <xsl:template match="ANALYSIS_ROW" mode="legend">
  <xsl:param name="color" select="'red'"/>
  <xsl:param name="observations" select="'0'"/>
  <xsl:param name="y-legend-offset" select="'0'"/>
  <xsl:param name="position" select="'1'"/>
  <!--================================================================-->
  <!-- First we draw the text of the legend entry.  This is the text  -->
  <!-- of the <name> element.                                         -->
  <!--================================================================-->
   <text>
    <xsl:attribute name="style"><xsl:text>font-size:12;
text-anchor:start</xsl:text></xsl:attribute>
    <xsl:attribute name="x"><xsl:text>240</xsl:text></xsl:attribute>
    <xsl:attribute name="y"><xsl:value-of
select="$y-legend-offset"/></xsl:attribute>
    <xsl:value-of select="name"/>
    <xsl:text> (</xsl:text>
    <xsl:value-of select="$observations"/>
    <xsl:text>) </xsl:text>
   </text>
  <path>
    <xsl:attribute name="style"><xsl:text>stroke:black; stroke-width:2;
fill:</xsl:text><xsl:value-of select="$color"/></xsl:attribute>
    <xsl:attribute name="d"><xsl:text>M 220 </xsl:text><xsl:value-of
select="$y-legend-offset - 10"/><xsl:text> L 220 </xsl:text><xsl:value-of
select="$y-legend-offset"/><xsl:text> L 230 </xsl:text><xsl:value-of
select="$y-legend-offset"/><xsl:text> L 230 </xsl:text><xsl:value-of
select="$y-legend-offset - 10"/><xsl:text> Z</xsl:text></xsl:attribute>
   </path>
 </xsl:template>

 <!--================================================================-->
 <!-- <DRAW_PIECHART_BARCHART>
         -->
 <!--================================================================-->
 <xsl:template name="DRAW_PIECHART_BARCHART">
  <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 36.80520301849218 -71.03081747219002 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (32) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-62.608695652173914)" d="M 80 0 A 80 80
0 0 0 79.95336178929392 -2.7312888148774315 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (1) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-64.56521739130434)" d="M 80 0 A 80 80
0 0 0 -39.20881737424135 -69.73283760262011 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (61) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                        <path style="fill:blue"
transform="translate(100,140) rotate(-183.91304347826087)" d="M 80 0 A 80 80
0 0 0 -79.81350153524315 -5.459393069173668 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="170"> (90) </text>
                        <path style="stroke:black; stroke-width:2;
fill:blue" d="M 220 160 L 220 170 L 230 170 L 230 160 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>
  <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 79.11698974030051 -11.853351189987777 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (4) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-8.520710059171597)" d="M 80 0 A 80 80
0 1 0 69.4056282915774 39.78515755217505 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (155) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-338.698224852071)" d="M 80 0 A 80 80 0
0 0 74.53439782598458 -29.06240768962311 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (10) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>
 </xsl:template>

</xsl:stylesheet>

############################################################################
#
MY FO OUTPUT AFTER THE XML HAS BEEN PROCESSED THROUGH THE XSL
############################################################################
#

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:javaMath="http://www.oracle.com/XSL/Transform/java/java.lang.Math">

    <fo:layout-master-set>

      <fo:simple-page-master page-master-name="main" margin-top="75pt"
margin-bottom="75pt" margin-left="75pt" margin-right="75pt">
         <fo:region-body margin-bottom="75pt"/>
      </fo:simple-page-master>

      <fo:simple-page-master master-name="cover" page-height="29.7cm"
page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm"
margin-right="1cm">
         <fo:region-body margin-top="3cm"/>
      </fo:simple-page-master>

      <fo:simple-page-master master-name="leftPage" page-height="29.7cm"
page-width="21cm" margin-left="1cm" margin-right="1cm" margin-top="0.5cm"
margin-bottom="0.5cm">
         <fo:region-before extent="1cm"/>
         <fo:region-after extent="1cm"/>
         <fo:region-body margin-top="1.1cm" margin-bottom="1.1cm"/>
      </fo:simple-page-master>

      <fo:simple-page-master master-name="rightPage" page-height="29.7cm"
page-width="21cm" margin-left="1cm" margin-right="1cm" margin-top="0.5cm"
margin-bottom="0.5cm">
         <fo:region-before extent="1cm"/>
         <fo:region-after extent="1cm"/>
         <fo:region-body margin-top="1.1cm" margin-bottom="1.1cm"/>
      </fo:simple-page-master>

      <fo:page-sequence-master master-name="contents">
         <fo:repeatable-page-master-alternatives>
            <fo:conditional-page-master-reference master-name="leftPage"
odd-or-even="even"/>
            <fo:conditional-page-master-reference master-name="rightPage"
odd-or-even="odd"/>
         </fo:repeatable-page-master-alternatives>
      </fo:page-sequence-master>

   </fo:layout-master-set>

   <fo:page-sequence master-name="contents" initial-page-number="2">

      <fo:static-content flow-name="xsl-region-before">
         <fo:block font-family="Helvetica" font-size="10pt"
text-align="center">SL Party Feedback</fo:block>
      </fo:static-content>

      <fo:static-content flow-name="xsl-region-after">
         <fo:block font-family="Helvetica" font-size="10pt"
text-align="center">
      Page <fo:page-number/></fo:block>
      </fo:static-content>

      <fo:flow flow-name="xsl-region-body">

         <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 36.80520301849218 -71.03081747219002 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (32) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-62.608695652173914)" d="M 80 0 A 80 80
0 0 0 79.95336178929392 -2.7312888148774315 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (1) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-64.56521739130434)" d="M 80 0 A 80 80
0 0 0 -39.20881737424135 -69.73283760262011 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (61) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                        <path style="fill:blue"
transform="translate(100,140) rotate(-183.91304347826087)" d="M 80 0 A 80 80
0 0 0 -79.81350153524315 -5.459393069173668 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="170"> (90) </text>
                        <path style="stroke:black; stroke-width:2;
fill:blue" d="M 220 160 L 220 170 L 230 170 L 230 160 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>

         <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 79.11698974030051 -11.853351189987777 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (4) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-8.520710059171597)" d="M 80 0 A 80 80
0 1 0 69.4056282915774 39.78515755217505 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (155) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-338.698224852071)" d="M 80 0 A 80 80 0
0 0 74.53439782598458 -29.06240768962311 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (10) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>

         <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 36.80520301849218 -71.03081747219002 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (32) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-62.608695652173914)" d="M 80 0 A 80 80
0 0 0 79.95336178929392 -2.7312888148774315 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (1) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-64.56521739130434)" d="M 80 0 A 80 80
0 0 0 -39.20881737424135 -69.73283760262011 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (61) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                        <path style="fill:blue"
transform="translate(100,140) rotate(-183.91304347826087)" d="M 80 0 A 80 80
0 0 0 -79.81350153524315 -5.459393069173668 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="170"> (90) </text>
                        <path style="stroke:black; stroke-width:2;
fill:blue" d="M 220 160 L 220 170 L 230 170 L 230 160 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>

         <fo:block keep-with-previous="always" text-align="center"
space-after.optimum="10pt">
            <fo:instream-foreign-object>
               <svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg">
                  <g
style="text-rendering:optimizeLegibility;shape-rendering:auto">
                     <g style="stroke:black ; stroke-width:0.5 ;
fill-rule:evenodd">
                        <path style="fill:red" transform="translate(100,140)
rotate(0)" d="M 80 0 A 80 80 0 0 0 79.11698974030051 -11.853351189987777 L 0
0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="110"> (4) </text>
                        <path style="stroke:black; stroke-width:2; fill:red"
d="M 220 100 L 220 110 L 230 110 L 230 100 Z"/>
                        <path style="fill:yellow"
transform="translate(100,140) rotate(-8.520710059171597)" d="M 80 0 A 80 80
0 1 0 69.4056282915774 39.78515755217505 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="130"> (155) </text>
                        <path style="stroke:black; stroke-width:2;
fill:yellow" d="M 220 120 L 220 130 L 230 130 L 230 120 Z"/>
                        <path style="fill:purple"
transform="translate(100,140) rotate(-338.698224852071)" d="M 80 0 A 80 80 0
0 0 74.53439782598458 -29.06240768962311 L 0 0 Z "/>
                        <text style="font-size:12; text-anchor:start"
x="240" y="150"> (10) </text>
                        <path style="stroke:black; stroke-width:2;
fill:purple" d="M 220 140 L 220 150 L 230 150 L 230 140 Z"/>
                     </g>
                  </g>
               </svg>
            </fo:instream-foreign-object>
         </fo:block>

      </fo:flow>

   </fo:page-sequence>

</fo:root>
Received on Tuesday, 23 October 2001 19:40:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 3 October 2007 16:06:08 GMT