1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?> 2*1e519d8dSAndrew Rist<!--*********************************************************** 3*1e519d8dSAndrew Rist * 4*1e519d8dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 5*1e519d8dSAndrew Rist * or more contributor license agreements. See the NOTICE file 6*1e519d8dSAndrew Rist * distributed with this work for additional information 7*1e519d8dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 8*1e519d8dSAndrew Rist * to you under the Apache License, Version 2.0 (the 9*1e519d8dSAndrew Rist * "License"); you may not use this file except in compliance 10*1e519d8dSAndrew Rist * with the License. You may obtain a copy of the License at 11*1e519d8dSAndrew Rist * 12*1e519d8dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 13*1e519d8dSAndrew Rist * 14*1e519d8dSAndrew Rist * Unless required by applicable law or agreed to in writing, 15*1e519d8dSAndrew Rist * software distributed under the License is distributed on an 16*1e519d8dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*1e519d8dSAndrew Rist * KIND, either express or implied. See the License for the 18*1e519d8dSAndrew Rist * specific language governing permissions and limitations 19*1e519d8dSAndrew Rist * under the License. 20*1e519d8dSAndrew Rist * 21*1e519d8dSAndrew Rist ***********************************************************--> 22cdf0e10cSrcweir 23cdf0e10cSrcweir 24cdf0e10cSrcweir<xsl:stylesheet version="1.0" 25cdf0e10cSrcweir xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 26cdf0e10cSrcweir xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 27cdf0e10cSrcweir xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 28cdf0e10cSrcweir xmlns:dc="http://purl.org/dc/elements/1.1/" 29cdf0e10cSrcweir xmlns:dom="http://www.w3.org/2001/xml-events" 30cdf0e10cSrcweir xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 31cdf0e10cSrcweir xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 32cdf0e10cSrcweir xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 33cdf0e10cSrcweir xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 34cdf0e10cSrcweir xmlns:math="http://www.w3.org/1998/Math/MathML" 35cdf0e10cSrcweir xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 36cdf0e10cSrcweir xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 37cdf0e10cSrcweir xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 38cdf0e10cSrcweir xmlns:ooo="http://openoffice.org/2004/office" 39cdf0e10cSrcweir xmlns:oooc="http://openoffice.org/2004/calc" 40cdf0e10cSrcweir xmlns:ooow="http://openoffice.org/2004/writer" 41cdf0e10cSrcweir xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 42cdf0e10cSrcweir xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 43cdf0e10cSrcweir xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 44cdf0e10cSrcweir xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 45cdf0e10cSrcweir xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 46cdf0e10cSrcweir xmlns:xlink="http://www.w3.org/1999/xlink" 47cdf0e10cSrcweir xmlns:xt="http://www.jclark.com/xt" 48cdf0e10cSrcweir xmlns:common="http://exslt.org/common" 49cdf0e10cSrcweir xmlns:xalan="http://xml.apache.org/xalan" 50cdf0e10cSrcweir xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 51cdf0e10cSrcweir exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink xt common xalan"> 52cdf0e10cSrcweir 53cdf0e10cSrcweir <xsl:variable name="namespace-html" select="'http://www.w3.org/TR/REC-html40'" /> 54cdf0e10cSrcweir 55cdf0e10cSrcweir <xsl:template match="@table:style-name | @table:default-cell-style-name"> 56cdf0e10cSrcweir <xsl:if test="not(name() = 'Default')"> 57cdf0e10cSrcweir <xsl:attribute name="ss:StyleID"> 58cdf0e10cSrcweir <xsl:value-of select="." /> 59cdf0e10cSrcweir </xsl:attribute> 60cdf0e10cSrcweir </xsl:if> 61cdf0e10cSrcweir </xsl:template> 62cdf0e10cSrcweir 63cdf0e10cSrcweir <xsl:key match="table:table-cell" name="getCellByStyle" use="@table:style-name"/> 64cdf0e10cSrcweir <xsl:template match="@table:style-name" mode="table-row"> 65cdf0e10cSrcweir <!-- only row styles used by cells are exported, 66cdf0e10cSrcweir as usual row style properties are already written as row attributes --> 67cdf0e10cSrcweir <xsl:if test="key('getCellByStyle', '.')"> 68cdf0e10cSrcweir <xsl:attribute name="ss:StyleID"> 69cdf0e10cSrcweir <xsl:value-of select="." /> 70cdf0e10cSrcweir </xsl:attribute> 71cdf0e10cSrcweir </xsl:if> 72cdf0e10cSrcweir </xsl:template> 73cdf0e10cSrcweir 74cdf0e10cSrcweir <xsl:template name="style-and-contents"> 75cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 76cdf0e10cSrcweir 77cdf0e10cSrcweir <!-- WorkAround of Excel2003 issue: 78cdf0e10cSrcweir Styles from the CellStyle will not be inherited to HTML content (e.g. Colour style). 79cdf0e10cSrcweir --> 80cdf0e10cSrcweir <xsl:choose> 81cdf0e10cSrcweir <xsl:when test="@text:style-name"> 82cdf0e10cSrcweir <xsl:variable name="styles"> 83cdf0e10cSrcweir <xsl:copy-of select="key('styles', @text:style-name)/*" /> 84cdf0e10cSrcweir <xsl:copy-of select="key('styles', $cellStyleName)/*" /> 85cdf0e10cSrcweir </xsl:variable> 86cdf0e10cSrcweir <xsl:choose> 87cdf0e10cSrcweir <xsl:when test="function-available('xalan:nodeset')"> 88cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 89cdf0e10cSrcweir <xsl:with-param name="styles" select="xalan:nodeset($styles)" /> 90cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 91cdf0e10cSrcweir </xsl:call-template> 92cdf0e10cSrcweir </xsl:when> 93cdf0e10cSrcweir <xsl:when test="function-available('xt:node-set')"> 94cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 95cdf0e10cSrcweir <xsl:with-param name="styles" select="xt:node-set($styles)" /> 96cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 97cdf0e10cSrcweir </xsl:call-template> 98cdf0e10cSrcweir </xsl:when> 99cdf0e10cSrcweir <xsl:when test="function-available('common:node-set')"> 100cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 101cdf0e10cSrcweir <xsl:with-param name="styles" select="common:node-set($styles)" /> 102cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 103cdf0e10cSrcweir </xsl:call-template> 104cdf0e10cSrcweir </xsl:when> 105cdf0e10cSrcweir <xsl:otherwise> 106cdf0e10cSrcweir <xsl:message terminate="yes">The required node-set function was not found!</xsl:message> 107cdf0e10cSrcweir </xsl:otherwise> 108cdf0e10cSrcweir </xsl:choose> 109cdf0e10cSrcweir </xsl:when> 110cdf0e10cSrcweir <xsl:when test="@table:style-name"> 111cdf0e10cSrcweir <xsl:variable name="styles"> 112cdf0e10cSrcweir <xsl:copy-of select="key('styles', @text:style-name)/*" /> 113cdf0e10cSrcweir <xsl:copy-of select="key('styles', $cellStyleName)/*" /> 114cdf0e10cSrcweir </xsl:variable> 115cdf0e10cSrcweir 116cdf0e10cSrcweir <xsl:choose> 117cdf0e10cSrcweir <xsl:when test="function-available('xalan:nodeset')"> 118cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 119cdf0e10cSrcweir <xsl:with-param name="styles" select="xalan:nodeset($styles)" /> 120cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 121cdf0e10cSrcweir </xsl:call-template> 122cdf0e10cSrcweir </xsl:when> 123cdf0e10cSrcweir <xsl:when test="function-available('xt:node-set')"> 124cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 125cdf0e10cSrcweir <xsl:with-param name="styles" select="xt:node-set($styles)" /> 126cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 127cdf0e10cSrcweir </xsl:call-template> 128cdf0e10cSrcweir </xsl:when> 129cdf0e10cSrcweir <xsl:when test="function-available('common:node-set')"> 130cdf0e10cSrcweir <xsl:call-template name="create-nested-format-tags"> 131cdf0e10cSrcweir <xsl:with-param name="styles" select="common:node-set($styles)" /> 132cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 133cdf0e10cSrcweir </xsl:call-template> 134cdf0e10cSrcweir </xsl:when> 135cdf0e10cSrcweir <xsl:otherwise> 136cdf0e10cSrcweir <xsl:message terminate="yes">The required node-set function was not found!</xsl:message> 137cdf0e10cSrcweir </xsl:otherwise> 138cdf0e10cSrcweir </xsl:choose> 139cdf0e10cSrcweir </xsl:when> 140cdf0e10cSrcweir <xsl:otherwise> 141cdf0e10cSrcweir <xsl:apply-templates> 142cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 143cdf0e10cSrcweir </xsl:apply-templates> 144cdf0e10cSrcweir </xsl:otherwise> 145cdf0e10cSrcweir </xsl:choose> 146cdf0e10cSrcweir </xsl:template> 147cdf0e10cSrcweir 148cdf0e10cSrcweir 149cdf0e10cSrcweir <!-- *********************************** --> 150cdf0e10cSrcweir <!-- *** creating nested format tags *** --> 151cdf0e10cSrcweir <!-- *********************************** --> 152cdf0e10cSrcweir 153cdf0e10cSrcweir <!-- Bold --> 154cdf0e10cSrcweir <xsl:template name="create-nested-format-tags"> 155cdf0e10cSrcweir <xsl:param name="styles" /> 156cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 157cdf0e10cSrcweir 158cdf0e10cSrcweir <xsl:choose> 159cdf0e10cSrcweir <xsl:when test="$styles/*/@fo:font-weight = 'bold' or $styles/*/@fo:font-weight = 'bolder'"> 160cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="B"> 161cdf0e10cSrcweir <xsl:call-template name="italic"> 162cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 163cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 164cdf0e10cSrcweir </xsl:call-template> 165cdf0e10cSrcweir </xsl:element> 166cdf0e10cSrcweir </xsl:when> 167cdf0e10cSrcweir <xsl:otherwise> 168cdf0e10cSrcweir <xsl:call-template name="italic"> 169cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 170cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 171cdf0e10cSrcweir </xsl:call-template> 172cdf0e10cSrcweir </xsl:otherwise> 173cdf0e10cSrcweir </xsl:choose> 174cdf0e10cSrcweir </xsl:template> 175cdf0e10cSrcweir 176cdf0e10cSrcweir 177cdf0e10cSrcweir <!-- Italic --> 178cdf0e10cSrcweir <xsl:template name="italic"> 179cdf0e10cSrcweir <xsl:param name="styles" /> 180cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 181cdf0e10cSrcweir 182cdf0e10cSrcweir <xsl:choose> 183cdf0e10cSrcweir <xsl:when test="$styles/*/@fo:font-style = 'italic' or $styles/*/@fo:font-style = 'oblique'"> 184cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="I"> 185cdf0e10cSrcweir <xsl:call-template name="underline"> 186cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 187cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 188cdf0e10cSrcweir </xsl:call-template> 189cdf0e10cSrcweir </xsl:element> 190cdf0e10cSrcweir </xsl:when> 191cdf0e10cSrcweir <xsl:otherwise> 192cdf0e10cSrcweir <xsl:call-template name="underline"> 193cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 194cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 195cdf0e10cSrcweir </xsl:call-template> 196cdf0e10cSrcweir </xsl:otherwise> 197cdf0e10cSrcweir </xsl:choose> 198cdf0e10cSrcweir </xsl:template> 199cdf0e10cSrcweir 200cdf0e10cSrcweir 201cdf0e10cSrcweir <!-- Underline --> 202cdf0e10cSrcweir <xsl:template name="underline"> 203cdf0e10cSrcweir <xsl:param name="styles" /> 204cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 205cdf0e10cSrcweir 206cdf0e10cSrcweir <xsl:choose> 207cdf0e10cSrcweir <xsl:when test="$styles/*/@style:text-underline-type and not($styles/*/@style:text-underline-type = 'none')"> 208cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="U"> 209cdf0e10cSrcweir <xsl:call-template name="strikethrough"> 210cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 211cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 212cdf0e10cSrcweir </xsl:call-template> 213cdf0e10cSrcweir </xsl:element> 214cdf0e10cSrcweir </xsl:when> 215cdf0e10cSrcweir <xsl:otherwise> 216cdf0e10cSrcweir <xsl:call-template name="strikethrough"> 217cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 218cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 219cdf0e10cSrcweir </xsl:call-template> 220cdf0e10cSrcweir </xsl:otherwise> 221cdf0e10cSrcweir </xsl:choose> 222cdf0e10cSrcweir 223cdf0e10cSrcweir </xsl:template> 224cdf0e10cSrcweir 225cdf0e10cSrcweir 226cdf0e10cSrcweir <!-- strikethrough --> 227cdf0e10cSrcweir <xsl:template name="strikethrough"> 228cdf0e10cSrcweir <xsl:param name="styles" /> 229cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 230cdf0e10cSrcweir 231cdf0e10cSrcweir <xsl:choose> 232cdf0e10cSrcweir <xsl:when test="$styles/*/@style:text-line-through-style and not($styles/*/@style:text-line-through-style = 'none')"> 233cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="S"> 234cdf0e10cSrcweir <xsl:call-template name="super-subscript"> 235cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 236cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 237cdf0e10cSrcweir </xsl:call-template> 238cdf0e10cSrcweir </xsl:element> 239cdf0e10cSrcweir </xsl:when> 240cdf0e10cSrcweir <xsl:otherwise> 241cdf0e10cSrcweir <xsl:call-template name="super-subscript"> 242cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 243cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 244cdf0e10cSrcweir </xsl:call-template> 245cdf0e10cSrcweir </xsl:otherwise> 246cdf0e10cSrcweir </xsl:choose> 247cdf0e10cSrcweir </xsl:template> 248cdf0e10cSrcweir 249cdf0e10cSrcweir 250cdf0e10cSrcweir 251cdf0e10cSrcweir <!-- superscript & subscript --> 252cdf0e10cSrcweir <xsl:template name="super-subscript"> 253cdf0e10cSrcweir <xsl:param name="styles" /> 254cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 255cdf0e10cSrcweir 256cdf0e10cSrcweir <xsl:choose> 257cdf0e10cSrcweir <xsl:when test="$styles/*/@style:text-position"> 258cdf0e10cSrcweir <xsl:variable name="textPosition" select="number(substring-before($styles/*/@style:text-position, '% '))" /> 259cdf0e10cSrcweir <xsl:choose> 260cdf0e10cSrcweir <xsl:when test="$textPosition > 0"> 261cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="Sup"> 262cdf0e10cSrcweir <xsl:call-template name="align"> 263cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 264cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 265cdf0e10cSrcweir </xsl:call-template> 266cdf0e10cSrcweir </xsl:element> 267cdf0e10cSrcweir </xsl:when> 268cdf0e10cSrcweir <xsl:when test="$textPosition < 0"> 269cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="Sub"> 270cdf0e10cSrcweir <xsl:call-template name="align"> 271cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 272cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 273cdf0e10cSrcweir </xsl:call-template> 274cdf0e10cSrcweir </xsl:element> 275cdf0e10cSrcweir </xsl:when> 276cdf0e10cSrcweir <xsl:otherwise> 277cdf0e10cSrcweir <xsl:call-template name="align"> 278cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 279cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 280cdf0e10cSrcweir </xsl:call-template> 281cdf0e10cSrcweir </xsl:otherwise> 282cdf0e10cSrcweir </xsl:choose> 283cdf0e10cSrcweir </xsl:when> 284cdf0e10cSrcweir <xsl:otherwise> 285cdf0e10cSrcweir <xsl:call-template name="align"> 286cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 287cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 288cdf0e10cSrcweir </xsl:call-template> 289cdf0e10cSrcweir </xsl:otherwise> 290cdf0e10cSrcweir </xsl:choose> 291cdf0e10cSrcweir </xsl:template> 292cdf0e10cSrcweir 293cdf0e10cSrcweir 294cdf0e10cSrcweir <!-- Alignment - normally called by strikethrough, but no DIV elements in HTML --> 295cdf0e10cSrcweir <xsl:template name="align"> 296cdf0e10cSrcweir <xsl:param name="styles" /> 297cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 298cdf0e10cSrcweir 299cdf0e10cSrcweir <xsl:choose> 300cdf0e10cSrcweir <xsl:when test="$styles/*/@fo:font-align"> 301cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="DIV"> 302cdf0e10cSrcweir <xsl:attribute name="html:style"> 303cdf0e10cSrcweir <xsl:choose> 304cdf0e10cSrcweir <xsl:when test="$styles/*/@fo:font-align = 'start'"> 305cdf0e10cSrcweir <xsl:text>text-align:left;</xsl:text> 306cdf0e10cSrcweir </xsl:when> 307cdf0e10cSrcweir <xsl:when test="$styles/*/@fo:font-align = 'end'"> 308cdf0e10cSrcweir <xsl:text>text-align:right;</xsl:text> 309cdf0e10cSrcweir </xsl:when> 310cdf0e10cSrcweir <xsl:otherwise> 311cdf0e10cSrcweir <xsl:text>text-align:center;</xsl:text> 312cdf0e10cSrcweir </xsl:otherwise> 313cdf0e10cSrcweir </xsl:choose> 314cdf0e10cSrcweir </xsl:attribute> 315cdf0e10cSrcweir <xsl:call-template name="font"> 316cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 317cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 318cdf0e10cSrcweir </xsl:call-template> 319cdf0e10cSrcweir </xsl:element> 320cdf0e10cSrcweir </xsl:when> 321cdf0e10cSrcweir <xsl:otherwise> 322cdf0e10cSrcweir <xsl:call-template name="font"> 323cdf0e10cSrcweir <xsl:with-param name="styles" select="$styles" /> 324cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 325cdf0e10cSrcweir </xsl:call-template> 326cdf0e10cSrcweir </xsl:otherwise> 327cdf0e10cSrcweir </xsl:choose> 328cdf0e10cSrcweir </xsl:template> 329cdf0e10cSrcweir 330cdf0e10cSrcweir 331cdf0e10cSrcweir <!-- Font (size and color) --> 332cdf0e10cSrcweir <xsl:template name="font"> 333cdf0e10cSrcweir <xsl:param name="styles" /> 334cdf0e10cSrcweir <xsl:param name="cellStyleName" /> 335cdf0e10cSrcweir 336cdf0e10cSrcweir <xsl:choose> 337cdf0e10cSrcweir <xsl:when test="$styles/*/@style:font-name or 338cdf0e10cSrcweir $styles/*/@fo:font-size or 339cdf0e10cSrcweir $styles/*/@fo:color"> 340cdf0e10cSrcweir <xsl:element namespace="{$namespace-html}" name="Font"> 341cdf0e10cSrcweir <xsl:if test="$styles/*/@style:font-name"> 342cdf0e10cSrcweir <xsl:attribute name="html:Face"> 343cdf0e10cSrcweir <xsl:value-of select="$styles/*/@style:font-name" /> 344cdf0e10cSrcweir </xsl:attribute> 345cdf0e10cSrcweir </xsl:if> 346cdf0e10cSrcweir <xsl:if test="$styles/*/@fo:color"> 347cdf0e10cSrcweir <xsl:attribute name="html:Color"> 348cdf0e10cSrcweir <xsl:value-of select="$styles/*/@fo:color" /> 349cdf0e10cSrcweir </xsl:attribute> 350cdf0e10cSrcweir </xsl:if> 351cdf0e10cSrcweir <xsl:if test="$styles/*/@fo:font-size"> 352cdf0e10cSrcweir <!-- WORKAROUND TO EXCEL2003 issue where nested FONT elements with size attributes result in unloadable documents --> 353cdf0e10cSrcweir <!-- Only create size attribute if parent do not have already one --> 354cdf0e10cSrcweir 355cdf0e10cSrcweir <!--<xsl:choose> 356cdf0e10cSrcweir <xsl:when test="not(key('styles', parent::*/@text:style-name)/*/@fo:font-size)"> --> 357cdf0e10cSrcweir <xsl:if test="not(key('styles', parent::*/@text:style-name)/*/@fo:font-size)"> 358cdf0e10cSrcweir <xsl:attribute name="html:Size"> 359cdf0e10cSrcweir <xsl:call-template name="convert2pt"> 360cdf0e10cSrcweir <xsl:with-param name="value" select="$styles/*/@fo:font-size" /> 361cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 362cdf0e10cSrcweir </xsl:call-template> 363cdf0e10cSrcweir </xsl:attribute> 364cdf0e10cSrcweir </xsl:if> 365cdf0e10cSrcweir <!--</xsl:when> 366cdf0e10cSrcweir <xsl:otherwise> 367cdf0e10cSrcweir <xsl:message>Due Excel issue we have to neglect size from @text:style-name '<xsl:value-of select="@text:style-name"/>'!</xsl:message> 368cdf0e10cSrcweir </xsl:otherwise> 369cdf0e10cSrcweir </xsl:choose>--> 370cdf0e10cSrcweir </xsl:if> 371cdf0e10cSrcweir <!-- get the embedded content --> 372cdf0e10cSrcweir <xsl:apply-templates> 373cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 374cdf0e10cSrcweir </xsl:apply-templates> 375cdf0e10cSrcweir </xsl:element> 376cdf0e10cSrcweir </xsl:when> 377cdf0e10cSrcweir <xsl:otherwise> 378cdf0e10cSrcweir <!-- get the embedded content --> 379cdf0e10cSrcweir <xsl:apply-templates> 380cdf0e10cSrcweir <xsl:with-param name="cellStyleName" select="$cellStyleName" /> 381cdf0e10cSrcweir </xsl:apply-templates> 382cdf0e10cSrcweir </xsl:otherwise> 383cdf0e10cSrcweir </xsl:choose> 384cdf0e10cSrcweir </xsl:template> 385cdf0e10cSrcweir 386cdf0e10cSrcweir</xsl:stylesheet> 387