12e155b50SEike Rathke<?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 ***********************************************************--> 222e155b50SEike Rathke 23*1e519d8dSAndrew Rist 242e155b50SEike Rathke<!-- 252e155b50SEike Rathke For further documentation and updates visit http://xml.openoffice.org/odf2xhtml 262e155b50SEike Rathke--> 272e155b50SEike Rathke<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi"> 282e155b50SEike Rathke 292e155b50SEike Rathke 302e155b50SEike Rathke <!-- *** Properties with a 'fo:' prefix *** --> 312e155b50SEike Rathke <xsl:template match="@fo:background-color"> 322e155b50SEike Rathke <xsl:text>background-color:</xsl:text> 332e155b50SEike Rathke <xsl:value-of select="."/> 342e155b50SEike Rathke <xsl:text>; </xsl:text> 352e155b50SEike Rathke </xsl:template> 362e155b50SEike Rathke 372e155b50SEike Rathke <xsl:template match="@fo:border | @fo:border-top | @fo:border-bottom | @fo:border-left | @fo:border-right"> 382e155b50SEike Rathke <xsl:variable name="borderType" select="substring-after(name(), ':')"/> 392e155b50SEike Rathke <xsl:choose> 402e155b50SEike Rathke <xsl:when test=". = 'none'"> 412e155b50SEike Rathke <xsl:value-of select="$borderType"/> 422e155b50SEike Rathke <xsl:text>-style:none; </xsl:text> 432e155b50SEike Rathke </xsl:when> 442e155b50SEike Rathke <xsl:otherwise> 452e155b50SEike Rathke <xsl:variable name="borderWidth" select="substring-before(., ' ')"/> 462e155b50SEike Rathke <xsl:variable name="borderStyle" select="substring-before(substring-after(., ' '), ' ')"/> 472e155b50SEike Rathke <xsl:variable name="borderColor" select="substring-after(substring-after(., ' '), ' ')"/> 482e155b50SEike Rathke 492e155b50SEike Rathke <!-- More information at template 'round-up-border-width' --> 502e155b50SEike Rathke <xsl:variable name="borderWidthFixed"> 512e155b50SEike Rathke <xsl:call-template name="round-up-border-width"> 522e155b50SEike Rathke <xsl:with-param name="borderWidth" select="$borderWidth"/> 532e155b50SEike Rathke <xsl:with-param name="multiplier"> 542e155b50SEike Rathke <xsl:choose> 552e155b50SEike Rathke <xsl:when test="$borderStyle = 'double'">3</xsl:when> 562e155b50SEike Rathke <xsl:otherwise>1</xsl:otherwise> 572e155b50SEike Rathke </xsl:choose> 582e155b50SEike Rathke </xsl:with-param> 592e155b50SEike Rathke </xsl:call-template> 602e155b50SEike Rathke </xsl:variable> 612e155b50SEike Rathke 622e155b50SEike Rathke <xsl:value-of select="$borderType"/> 632e155b50SEike Rathke <xsl:text>-width:</xsl:text> 642e155b50SEike Rathke <xsl:value-of select="$borderWidthFixed"/> 652e155b50SEike Rathke <xsl:text>; </xsl:text> 662e155b50SEike Rathke <xsl:value-of select="$borderType"/> 672e155b50SEike Rathke <xsl:text>-style:</xsl:text> 682e155b50SEike Rathke <xsl:value-of select="$borderStyle"/> 692e155b50SEike Rathke <xsl:text>; </xsl:text> 702e155b50SEike Rathke <xsl:value-of select="$borderType"/> 712e155b50SEike Rathke <xsl:text>-color:</xsl:text> 722e155b50SEike Rathke <xsl:value-of select="$borderColor"/> 732e155b50SEike Rathke <xsl:text>; </xsl:text> 742e155b50SEike Rathke </xsl:otherwise> 752e155b50SEike Rathke </xsl:choose> 762e155b50SEike Rathke </xsl:template> 772e155b50SEike Rathke 782e155b50SEike Rathke <!-- NOTE: Still there have to be placed a <br clear='all' /> to disable the flow!!!!--> 792e155b50SEike Rathke <xsl:template match="@fo:clear"> 802e155b50SEike Rathke <xsl:text>clear:both; </xsl:text> 812e155b50SEike Rathke </xsl:template> 822e155b50SEike Rathke 832e155b50SEike Rathke <!-- text-shadow is a CSS2 feature and yet not common used in user-agents --> 842e155b50SEike Rathke <xsl:template match="@fo:color |@svg:font-family |@fo:font-size |@fo:font-style |@fo:font-weight |@fo:text-indent |@fo:text-shadow"> 852e155b50SEike Rathke <xsl:value-of select="substring-after(name(), ':')"/> 862e155b50SEike Rathke <xsl:text>:</xsl:text> 872e155b50SEike Rathke <xsl:value-of select="."/> 882e155b50SEike Rathke <xsl:text>; </xsl:text> 892e155b50SEike Rathke </xsl:template> 902e155b50SEike Rathke 912e155b50SEike Rathke <!-- Maps fo:margin as well fo:margin-top, fo:margin-bottom, fo:padding-left, fo:margin-right --> 922e155b50SEike Rathke <!-- Maps fo:padding as well fo:padding-top, fo:padding-bottom, fo:padding-left, fo:padding-right --> 932e155b50SEike Rathke <xsl:template match="@fo:letter-spacing | @fo:line-height | @fo:width |@fo:margin | @fo:margin-top | @fo:margin-bottom | @fo:margin-left | @fo:margin-right | @fo:padding | @fo:padding-top | @fo:padding-bottom | @fo:padding-left | @fo:padding-right"> 942e155b50SEike Rathke <xsl:value-of select="substring-after(name(), ':')"/> 952e155b50SEike Rathke <xsl:text>:</xsl:text> 962e155b50SEike Rathke <!-- Map once erroneusly used inch shortage 'inch' to CSS shortage 'in' --> 972e155b50SEike Rathke <xsl:choose> 982e155b50SEike Rathke <xsl:when test="contains(., 'inch')"> 992e155b50SEike Rathke <xsl:value-of select="substring-before(.,'ch')"/> 1002e155b50SEike Rathke </xsl:when> 1012e155b50SEike Rathke <xsl:otherwise> 1022e155b50SEike Rathke <xsl:value-of select="."/> 1032e155b50SEike Rathke </xsl:otherwise> 1042e155b50SEike Rathke </xsl:choose> 1052e155b50SEike Rathke <xsl:text>; </xsl:text> 1062e155b50SEike Rathke </xsl:template> 1072e155b50SEike Rathke 1082e155b50SEike Rathke <xsl:template match="@fo:text-align"> 1092e155b50SEike Rathke <!-- 'important' is necessary as table cell value alignment is decided by runtime over the valuetype 1102e155b50SEike Rathke Otherwise a table cell style-class would always be outnumbered by the run-time alignment value --> 1112e155b50SEike Rathke <xsl:choose> 1122e155b50SEike Rathke <xsl:when test="contains(., 'start')"> 1132e155b50SEike Rathke <xsl:choose> 1142e155b50SEike Rathke <xsl:when test="parent::*/@style:writing-mode and contains(parent::*/@style:writing-mode, 'rl')"> 1152e155b50SEike Rathke <xsl:text>text-align:right ! important; </xsl:text> 1162e155b50SEike Rathke </xsl:when> 1172e155b50SEike Rathke <xsl:otherwise> 1182e155b50SEike Rathke <xsl:text>text-align:left ! important; </xsl:text> 1192e155b50SEike Rathke </xsl:otherwise> 1202e155b50SEike Rathke </xsl:choose> 1212e155b50SEike Rathke </xsl:when> 1222e155b50SEike Rathke <xsl:when test="contains(., 'end')"> 1232e155b50SEike Rathke <xsl:choose> 1242e155b50SEike Rathke <xsl:when test="parent::*/@style:writing-mode and contains(parent::*/@style:writing-mode, 'rl')"> 1252e155b50SEike Rathke <xsl:text>text-align:left ! important;</xsl:text> 1262e155b50SEike Rathke </xsl:when> 1272e155b50SEike Rathke <xsl:otherwise> 1282e155b50SEike Rathke <xsl:text>text-align:right ! important; </xsl:text> 1292e155b50SEike Rathke </xsl:otherwise> 1302e155b50SEike Rathke </xsl:choose> 1312e155b50SEike Rathke </xsl:when> 1322e155b50SEike Rathke <xsl:otherwise> 1332e155b50SEike Rathke <xsl:text>text-align:</xsl:text> 1342e155b50SEike Rathke <xsl:value-of select="."/> 1352e155b50SEike Rathke <xsl:text> ! important; </xsl:text> 1362e155b50SEike Rathke </xsl:otherwise> 1372e155b50SEike Rathke </xsl:choose> 1382e155b50SEike Rathke </xsl:template> 1392e155b50SEike Rathke 1402e155b50SEike Rathke <xsl:template match="@style:vertical-align"> 1412e155b50SEike Rathke <xsl:choose> 1422e155b50SEike Rathke <xsl:when test="contains(., 'bottom')"> 1432e155b50SEike Rathke <xsl:text>vertical-align:bottom; </xsl:text> 1442e155b50SEike Rathke </xsl:when> 1452e155b50SEike Rathke <xsl:when test="contains(., 'middle')"> 1462e155b50SEike Rathke <xsl:text>vertical-align:middle; </xsl:text> 1472e155b50SEike Rathke </xsl:when> 1482e155b50SEike Rathke <xsl:otherwise> 1492e155b50SEike Rathke <xsl:text>vertical-align:top; </xsl:text> 1502e155b50SEike Rathke </xsl:otherwise> 1512e155b50SEike Rathke </xsl:choose> 1522e155b50SEike Rathke </xsl:template> 1532e155b50SEike Rathke 1542e155b50SEike Rathke<!-- *** Properties with a 'style:' prefix *** --> 1552e155b50SEike Rathke <!-- NOTE: Can 'inside' | 'from-inside' better be handled: 1562e155b50SEike Rathke <!ATTLIST * style:horizontal-pos (from-left|left|center|right|from-inside|inside|outside)#IMPLIED>--> 1572e155b50SEike Rathke <xsl:template match="@style:horizontal-pos"> 1582e155b50SEike Rathke <xsl:choose> 1592e155b50SEike Rathke <xsl:when test=".='left'"> 1602e155b50SEike Rathke <xsl:text>text-align:left; </xsl:text> 1612e155b50SEike Rathke </xsl:when> 1622e155b50SEike Rathke <xsl:when test=". = 'right'"> 1632e155b50SEike Rathke <xsl:text>text-align:right; </xsl:text> 1642e155b50SEike Rathke </xsl:when> 1652e155b50SEike Rathke <xsl:when test=".='center'"> 1662e155b50SEike Rathke <xsl:text>text-align:center; </xsl:text> 1672e155b50SEike Rathke </xsl:when> 1682e155b50SEike Rathke <!-- NOTE: currently other values are not used. 1692e155b50SEike Rathke If the property value is from-left or from-inside, 1702e155b50SEike Rathke the svg:x attribute associated with the frame element specifies 1712e155b50SEike Rathke the horizontal position of the frame. 1722e155b50SEike Rathke Otherwise the svg:x attribute is ignored for text documents. 1732e155b50SEike Rathke --> 1742e155b50SEike Rathke </xsl:choose> 1752e155b50SEike Rathke </xsl:template> 1762e155b50SEike Rathke 1772e155b50SEike Rathke <xsl:template match="@style:column-width"> 1782e155b50SEike Rathke <xsl:text>width:</xsl:text> 1792e155b50SEike Rathke <xsl:choose> 1802e155b50SEike Rathke <!-- changing the distance measure: inch to in --> 1812e155b50SEike Rathke <xsl:when test="contains(., 'inch')"> 1822e155b50SEike Rathke <xsl:value-of select="substring-before(.,'ch')"/> 1832e155b50SEike Rathke </xsl:when> 1842e155b50SEike Rathke <xsl:otherwise> 1852e155b50SEike Rathke <xsl:value-of select="."/> 1862e155b50SEike Rathke </xsl:otherwise> 1872e155b50SEike Rathke </xsl:choose> 1882e155b50SEike Rathke <xsl:text>; </xsl:text> 1892e155b50SEike Rathke </xsl:template> 1902e155b50SEike Rathke 1912e155b50SEike Rathke <xsl:template match="@style:text-underline-style"> 1922e155b50SEike Rathke <xsl:text>text-decoration:</xsl:text> 1932e155b50SEike Rathke <xsl:choose> 1942e155b50SEike Rathke <!-- changing the distance measure: inch to in --> 1952e155b50SEike Rathke <xsl:when test=".='none'"> 1962e155b50SEike Rathke <xsl:text>none ! important</xsl:text> 1972e155b50SEike Rathke </xsl:when> 1982e155b50SEike Rathke <xsl:otherwise> 1992e155b50SEike Rathke <xsl:text>underline</xsl:text> 2002e155b50SEike Rathke </xsl:otherwise> 2012e155b50SEike Rathke </xsl:choose> 2022e155b50SEike Rathke <xsl:text>; </xsl:text> 2032e155b50SEike Rathke </xsl:template> 2042e155b50SEike Rathke 2052e155b50SEike Rathke <xsl:template match="@style:font-name"> 2062e155b50SEike Rathke <xsl:param name="globalData" /> 2072e155b50SEike Rathke 2082e155b50SEike Rathke <xsl:text>font-family:</xsl:text> 2092e155b50SEike Rathke <xsl:variable name="content" select="."/> 2102e155b50SEike Rathke <xsl:variable name="quote">'</xsl:variable> 2112e155b50SEike Rathke <xsl:variable name="fontName" select="$globalData/office:font-face-decls/style:font-face[@style:name=$content]/@svg:font-family" /> 2122e155b50SEike Rathke <xsl:value-of select="translate($fontName, $quote, '')"/> 2132e155b50SEike Rathke <xsl:text>; </xsl:text> 2142e155b50SEike Rathke </xsl:template> 2152e155b50SEike Rathke 2162e155b50SEike Rathke <xsl:template match="@style:row-height"> 2172e155b50SEike Rathke <xsl:text>height:</xsl:text> 2182e155b50SEike Rathke <xsl:choose> 2192e155b50SEike Rathke <!-- changing the distance measure: inch to in --> 2202e155b50SEike Rathke <xsl:when test="contains(., 'inch')"> 2212e155b50SEike Rathke <xsl:value-of select="substring-before(.,'ch')"/> 2222e155b50SEike Rathke </xsl:when> 2232e155b50SEike Rathke <xsl:otherwise> 2242e155b50SEike Rathke <xsl:value-of select="."/> 2252e155b50SEike Rathke </xsl:otherwise> 2262e155b50SEike Rathke </xsl:choose> 2272e155b50SEike Rathke <xsl:text>; </xsl:text> 2282e155b50SEike Rathke </xsl:template> 2292e155b50SEike Rathke 2302e155b50SEike Rathke <xsl:template match="@svg:strikethrough-position"> 2312e155b50SEike Rathke <xsl:if test="not(.='none')"> 2322e155b50SEike Rathke <xsl:text>text-decoration:line-through; </xsl:text> 2332e155b50SEike Rathke </xsl:if> 2342e155b50SEike Rathke </xsl:template> 2352e155b50SEike Rathke <xsl:template match="@style:text-position"> 2362e155b50SEike Rathke <xsl:if test="contains(., 'sub')"> 2372e155b50SEike Rathke <xsl:text>vertical-align:sub; </xsl:text> 2382e155b50SEike Rathke <xsl:if test="contains(., '%')"> 2392e155b50SEike Rathke <xsl:text>font-size:</xsl:text> 2402e155b50SEike Rathke <xsl:value-of select="substring-after(., 'sub ')"/> 2412e155b50SEike Rathke <xsl:text>;</xsl:text> 2422e155b50SEike Rathke </xsl:if> 2432e155b50SEike Rathke </xsl:if> 2442e155b50SEike Rathke <xsl:if test="contains(., 'super')"> 2452e155b50SEike Rathke <xsl:text>vertical-align:super; </xsl:text> 2462e155b50SEike Rathke <xsl:if test="contains(., '%')"> 2472e155b50SEike Rathke <xsl:text>font-size:</xsl:text> 2482e155b50SEike Rathke <xsl:value-of select="substring-after(., 'super ')"/> 2492e155b50SEike Rathke <xsl:text>;</xsl:text> 2502e155b50SEike Rathke </xsl:if> 2512e155b50SEike Rathke </xsl:if> 2522e155b50SEike Rathke </xsl:template> 2532e155b50SEike Rathke 2542e155b50SEike Rathke <xsl:template match="@style:vertical-pos"> 2552e155b50SEike Rathke <xsl:choose> 2562e155b50SEike Rathke <xsl:when test=".='from-top'"> 2572e155b50SEike Rathke <xsl:text>vertical-align:top; </xsl:text> 2582e155b50SEike Rathke </xsl:when> 2592e155b50SEike Rathke <xsl:otherwise> 2602e155b50SEike Rathke <xsl:text>vertical-align:</xsl:text> 2612e155b50SEike Rathke <xsl:value-of select="."/> 2622e155b50SEike Rathke <xsl:text>; </xsl:text> 2632e155b50SEike Rathke </xsl:otherwise> 2642e155b50SEike Rathke </xsl:choose> 2652e155b50SEike Rathke </xsl:template> 2662e155b50SEike Rathke 2672e155b50SEike Rathke <xsl:template match="@style:width"> 2682e155b50SEike Rathke <xsl:text>width:</xsl:text> 2692e155b50SEike Rathke <xsl:choose> 2702e155b50SEike Rathke <!-- changing the distance measure: inch to in --> 2712e155b50SEike Rathke <xsl:when test="contains(., 'inch')"> 2722e155b50SEike Rathke <xsl:value-of select="substring-before(.,'ch')"/> 2732e155b50SEike Rathke </xsl:when> 2742e155b50SEike Rathke <xsl:otherwise> 2752e155b50SEike Rathke <xsl:value-of select="."/> 2762e155b50SEike Rathke </xsl:otherwise> 2772e155b50SEike Rathke </xsl:choose> 2782e155b50SEike Rathke <xsl:text>; </xsl:text> 2792e155b50SEike Rathke </xsl:template> 2802e155b50SEike Rathke <xsl:template match="@style:wrap"> 2812e155b50SEike Rathke <xsl:choose> 2822e155b50SEike Rathke <xsl:when test=".='left'"> 2832e155b50SEike Rathke <xsl:text>float:right; </xsl:text> 2842e155b50SEike Rathke </xsl:when> 2852e155b50SEike Rathke <xsl:when test=".='right'"> 2862e155b50SEike Rathke <xsl:text>float:left; </xsl:text> 2872e155b50SEike Rathke </xsl:when> 2882e155b50SEike Rathke </xsl:choose> 2892e155b50SEike Rathke </xsl:template> 2902e155b50SEike Rathke <xsl:template match="@style:writing-mode"> 2912e155b50SEike Rathke <xsl:text>writing-mode:</xsl:text> 2922e155b50SEike Rathke <xsl:value-of select="."/> 2932e155b50SEike Rathke <xsl:text>; </xsl:text> 2942e155b50SEike Rathke </xsl:template> 2952e155b50SEike Rathke <!-- *** Properties with a no 'fo:' or 'style:' prefix *** --> 2962e155b50SEike Rathke <xsl:template match="@table:align"> 2972e155b50SEike Rathke <xsl:choose> 2982e155b50SEike Rathke <xsl:when test=".='left'"> 2992e155b50SEike Rathke <!-- Note: problems with meeting minutes example 3002e155b50SEike Rathke <xsl:text>float:right; </xsl:text> --></xsl:when> 3012e155b50SEike Rathke <xsl:when test=".='right'"> 3022e155b50SEike Rathke <!-- Note: problems with meeting minutes example 3032e155b50SEike Rathke <xsl:text>float:left; </xsl:text> --></xsl:when> 3042e155b50SEike Rathke <xsl:otherwise> 3052e155b50SEike Rathke <xsl:text>float:none; </xsl:text> 3062e155b50SEike Rathke </xsl:otherwise> 3072e155b50SEike Rathke </xsl:choose> 3082e155b50SEike Rathke </xsl:template> 3092e155b50SEike Rathke 3102e155b50SEike Rathke <xsl:template match="style:background-image"> 3112e155b50SEike Rathke <xsl:text>background-image:url(</xsl:text> 3122e155b50SEike Rathke <xsl:value-of select="@xlink:href"/> 3132e155b50SEike Rathke <xsl:text>); </xsl:text> 3142e155b50SEike Rathke <xsl:choose> 3152e155b50SEike Rathke <xsl:when test="@style:repeat = 'repeat'"> 3162e155b50SEike Rathke <xsl:text>background-repeat:repeat; </xsl:text> 3172e155b50SEike Rathke </xsl:when> 3182e155b50SEike Rathke <xsl:otherwise> 3192e155b50SEike Rathke <xsl:text>background-repeat:no-repeat; </xsl:text> 3202e155b50SEike Rathke </xsl:otherwise> 3212e155b50SEike Rathke </xsl:choose> 3222e155b50SEike Rathke </xsl:template> 3232e155b50SEike Rathke 3242e155b50SEike Rathke <!-- Changing border width measure to cm and enlarging border-width to the Mozilla browser(1.7) 3252e155b50SEike Rathke visible minimum width 3262e155b50SEike Rathke - 0.0133cm for solid style 3272e155b50SEike Rathke - 0.0399cm for double style 3282e155b50SEike Rathke as there are three border lines painted --> 3292e155b50SEike Rathke <xsl:template name="round-up-border-width"> 3302e155b50SEike Rathke <xsl:param name="borderWidth"/> 3312e155b50SEike Rathke <xsl:param name="multiplier"/> 3322e155b50SEike Rathke 3332e155b50SEike Rathke <xsl:variable name="borderWidthByCentimeter"> 3342e155b50SEike Rathke <xsl:call-template name="convert2cm"> 3352e155b50SEike Rathke <xsl:with-param name="value" select="$borderWidth"/> 3362e155b50SEike Rathke </xsl:call-template> 3372e155b50SEike Rathke </xsl:variable> 3382e155b50SEike Rathke <xsl:variable name="minimalBorderWidth" select="0.0133 * $multiplier"/> 3392e155b50SEike Rathke <xsl:choose> 3402e155b50SEike Rathke <xsl:when test="number($borderWidthByCentimeter) < $minimalBorderWidth"> 3412e155b50SEike Rathke <xsl:value-of select="$minimalBorderWidth"/> 3422e155b50SEike Rathke <xsl:text>cm</xsl:text> 3432e155b50SEike Rathke </xsl:when> 3442e155b50SEike Rathke <xsl:otherwise> 3452e155b50SEike Rathke <xsl:value-of select="$borderWidthByCentimeter"/> 3462e155b50SEike Rathke <xsl:text>cm</xsl:text> 3472e155b50SEike Rathke </xsl:otherwise> 3482e155b50SEike Rathke </xsl:choose> 3492e155b50SEike Rathke </xsl:template> 3502e155b50SEike Rathke</xsl:stylesheet> 3512e155b50SEike Rathke 352