Created
May 3, 2023 12:57
-
-
Save BekNaji/93197154c98bfac569cab1a81156b9c8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]> | |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" | |
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" | |
xmlns:o="urn:schemas-microsoft-com:office:office" | |
xmlns:v="urn:schemas-microsoft-com:vml" | |
xmlns:WX="http://schemas.microsoft.com/office/word/2003/auxHint" | |
xmlns:aml="http://schemas.microsoft.com/aml/2001/core" | |
xmlns:w10="urn:schemas-microsoft-com:office:word" | |
xmlns:mml="http://www.w3.org/1998/Math/MathML" | |
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" | |
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" | |
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" | |
xmlns="http://www.w3.org/1999/xhtml" | |
version="1.0"> | |
<xsl:param name="pmathml" select="''"/> | |
<xsl:param name="dtd" select="false()"/> | |
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" indent="yes"/> | |
<xsl:variable name="paraStyleID_Default">Normal</xsl:variable> | |
<xsl:variable name="tblStyleID_Default">TableNormal</xsl:variable> | |
<xsl:variable name="tblStyleSuffix">-T</xsl:variable> | |
<xsl:variable name="rowStyleSuffix">-R</xsl:variable> | |
<xsl:variable name="cellStyleSuffix">-C</xsl:variable> | |
<xsl:variable name="paraStyleSuffix">-P</xsl:variable> | |
<xsl:variable name="charStyleSuffix">-H</xsl:variable> | |
<xsl:variable name="paraMarginDefaultTop">0pt</xsl:variable> | |
<xsl:variable name="paraMarginDefaultRight">0pt</xsl:variable> | |
<xsl:variable name="paraMarginDefaultBottom">.0001pt</xsl:variable> | |
<xsl:variable name="paraMarginDefaultLeft">0pt</xsl:variable> | |
<xsl:variable name="cxtSpacing_all"></xsl:variable> | |
<xsl:variable name="cxtSpacing_top">t</xsl:variable> | |
<xsl:variable name="cxtSpacing_bottom">b</xsl:variable> | |
<xsl:variable name="cxtSpacing_none"> | |
<xsl:value-of select="$cxtSpacing_top"/> | |
<xsl:value-of select="$cxtSpacing_bottom"/> | |
</xsl:variable> | |
<xsl:variable name="bdrSide_top">-top</xsl:variable> | |
<xsl:variable name="bdrSide_right">-right</xsl:variable> | |
<xsl:variable name="bdrSide_bottom">-bottom</xsl:variable> | |
<xsl:variable name="bdrSide_left">-left</xsl:variable> | |
<xsl:variable name="bdrSide_char"></xsl:variable> | |
<xsl:variable name="prrFrame">1</xsl:variable> | |
<xsl:variable name="prrDefaultCellpadding">2</xsl:variable> | |
<xsl:variable name="prrCellspacing">3</xsl:variable> | |
<xsl:variable name="prrBdrPr_top">4</xsl:variable> | |
<xsl:variable name="prrBdrPr_right">5</xsl:variable> | |
<xsl:variable name="prrBdrPr_bottom">6</xsl:variable> | |
<xsl:variable name="prrBdrPr_left">7</xsl:variable> | |
<xsl:variable name="prrBdrPr_between">8</xsl:variable> | |
<xsl:variable name="prrBdrPr_bar">9</xsl:variable> | |
<xsl:variable name="prrBdrPr_insideH">A</xsl:variable> | |
<xsl:variable name="prrBdrPr_insideV">B</xsl:variable> | |
<xsl:variable name="prrListSuff">C</xsl:variable> | |
<xsl:variable name="prrListInd">D</xsl:variable> | |
<xsl:variable name="prrApplyRPr">E</xsl:variable> | |
<xsl:variable name="prrUpdateRPr">F</xsl:variable> | |
<xsl:variable name="prrApplyTcPr">G</xsl:variable> | |
<xsl:variable name="prrCustomCellpadding">H</xsl:variable> | |
<xsl:variable name="prrCantSplit">I</xsl:variable> | |
<xsl:variable name="prrTblInd">J</xsl:variable> | |
<xsl:variable name="prrList">K</xsl:variable> | |
<xsl:variable name="prrNonList">L</xsl:variable> | |
<xsl:variable name="cnfFirstRow">firstRow</xsl:variable> | |
<xsl:variable name="cnfLastRow">lastRow</xsl:variable> | |
<xsl:variable name="cnfFirstCol">firstCol</xsl:variable> | |
<xsl:variable name="cnfLastCol">lastCol</xsl:variable> | |
<xsl:variable name="cnfBand1Vert">band1Vert</xsl:variable> | |
<xsl:variable name="cnfBand2Vert">band2Vert</xsl:variable> | |
<xsl:variable name="cnfBand1Horz">band1Horz</xsl:variable> | |
<xsl:variable name="cnfBand2Horz">band2Horz</xsl:variable> | |
<xsl:variable name="cnfNECell">neCell</xsl:variable> | |
<xsl:variable name="cnfNWCell">nwCell</xsl:variable> | |
<xsl:variable name="cnfSECell">seCell</xsl:variable> | |
<xsl:variable name="cnfSWCell">swCell</xsl:variable> | |
<xsl:variable name="icnfFirstRow">1</xsl:variable> | |
<xsl:variable name="icnfLastRow">2</xsl:variable> | |
<xsl:variable name="icnfFirstCol">3</xsl:variable> | |
<xsl:variable name="icnfLastCol">4</xsl:variable> | |
<xsl:variable name="icnfBand1Vert">5</xsl:variable> | |
<xsl:variable name="icnfBand2Vert">6</xsl:variable> | |
<xsl:variable name="icnfBand1Horz">7</xsl:variable> | |
<xsl:variable name="icnfBand2Horz">8</xsl:variable> | |
<xsl:variable name="icnfNECell">9</xsl:variable> | |
<xsl:variable name="icnfNWCell">10</xsl:variable> | |
<xsl:variable name="icnfSECell">11</xsl:variable> | |
<xsl:variable name="icnfSWCell">12</xsl:variable> | |
<xsl:variable name="off">0</xsl:variable> | |
<xsl:variable name="on">1</xsl:variable> | |
<xsl:variable name="na">2</xsl:variable> | |
<xsl:variable name="defaultFontSz">20</xsl:variable> | |
<xsl:variable name="sep">/</xsl:variable> | |
<xsl:variable name="sep1">|</xsl:variable> | |
<xsl:variable name="sep2">,</xsl:variable> | |
<xsl:variable name="autoColor_hex">auto</xsl:variable> | |
<xsl:variable name="autoColor_text">windowtext</xsl:variable> | |
<xsl:variable name="autoColor_bg">transparent</xsl:variable> | |
<xsl:variable name="transparentColor_hex">transparent</xsl:variable> | |
<xsl:variable name="transparentColor_text">transparent</xsl:variable> | |
<xsl:variable name="transparentColor_bg">transparent</xsl:variable> | |
<xsl:variable name="prListSuff_space">Space</xsl:variable> | |
<xsl:variable name="prListSuff_nothing">Nothing</xsl:variable> | |
<xsl:variable name="nsStyles" select="/w:document[1]/w:styles[1]/w:style"/> | |
<xsl:variable name="ndLists" select="/w:document[1]/w:numbering[1]|//w:cfChunk/w:numbering"/> | |
<xsl:variable name="ndDocPr" select="/w:document[1]/w:settings[1]"/> | |
<xsl:variable name="ndDocInfo" select="/w:document[1]/w:docInfo[1]"/> | |
<xsl:variable name="ndOfficeDocPr" select="/w:document[1]/o:DocumentProperties[1]"/> | |
<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'"/> | |
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> | |
<xsl:variable name="pixelsPerInch"> | |
<xsl:choose> | |
<xsl:when test="$ndDocPr/w:pixelsPerInch/@w:val"> | |
<xsl:value-of select="$ndDocPr/w:pixelsPerInch/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise>96</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="nfcBullet">bullet</xsl:variable> | |
<xsl:variable name="iEmbossImprint">1</xsl:variable> | |
<xsl:variable name="iU_Em">2</xsl:variable> | |
<xsl:variable name="iStrikeDStrike">3</xsl:variable> | |
<xsl:variable name="iSup">4</xsl:variable> | |
<xsl:variable name="iSub">5</xsl:variable> | |
<xsl:variable name="iVanishWebHidden">6</xsl:variable> | |
<xsl:variable name="iBCs">7</xsl:variable> | |
<xsl:variable name="iICs">8</xsl:variable> | |
<xsl:variable name="iAsciiTheme">9</xsl:variable> | |
<xsl:variable name="iAnsiTheme">10</xsl:variable> | |
<xsl:variable name="iEATheme">11</xsl:variable> | |
<xsl:variable name="iCSTheme">12</xsl:variable> | |
<xsl:variable name="ISzCs">13</xsl:variable> | |
<xsl:variable name="iTextAutospaceO">1</xsl:variable> | |
<xsl:variable name="iTextAutospaceN">2</xsl:variable> | |
<xsl:variable name="iInd">3</xsl:variable> | |
<xsl:variable name="prsRDefault"> | |
<xsl:variable name="innerDefault"> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$defaultFontSz"/> | |
</xsl:variable> | |
<xsl:for-each select="/w:document[1]/w:styles[1]/w:docDefaults/w:rPrDefault"> | |
<xsl:call-template name="PrsUpdateRPrCore"> | |
<xsl:with-param name="prsR" select="$innerDefault"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="minorAscii">0</xsl:variable> | |
<xsl:variable name="minorAnsi">1</xsl:variable> | |
<xsl:variable name="minorEA">3</xsl:variable> | |
<xsl:variable name="minorCS">4</xsl:variable> | |
<xsl:variable name="majorAscii">5</xsl:variable> | |
<xsl:variable name="majorAnsi">6</xsl:variable> | |
<xsl:variable name="majorEA">7</xsl:variable> | |
<xsl:variable name="majorCS">8</xsl:variable> | |
<xsl:variable name="textClassAscii">asciiText</xsl:variable> | |
<xsl:variable name="textClassAnsi">hAnsiText</xsl:variable> | |
<xsl:variable name="textClassEA">eaText</xsl:variable> | |
<xsl:variable name="textClassCS">csText</xsl:variable> | |
<xsl:variable name="minorAsciiTheme">minorAsciiTheme</xsl:variable> | |
<xsl:variable name="majorAsciiTheme">majorAsciiTheme</xsl:variable> | |
<xsl:variable name="minorAnsiTheme">minorAnsiTheme</xsl:variable> | |
<xsl:variable name="majorAnsiTheme">majorAnsiTheme</xsl:variable> | |
<xsl:variable name="minorEATheme">minorEATheme</xsl:variable> | |
<xsl:variable name="majorEATheme">majorEATheme</xsl:variable> | |
<xsl:variable name="minorCSTheme">minorCSTheme</xsl:variable> | |
<xsl:variable name="majorCSTheme">majorCSTheme</xsl:variable> | |
<xsl:variable name="prsPDefault"> | |
<xsl:value-of select="$na"/> | |
<xsl:value-of select="$na"/> | |
</xsl:variable> | |
<xsl:variable name="footnoteRefLink">_ftnref</xsl:variable> | |
<xsl:variable name="footnoteLink">_ftn</xsl:variable> | |
<xsl:variable name="endnoteRefLink">_ednref</xsl:variable> | |
<xsl:variable name="endnoteLink">_edn</xsl:variable> | |
<xsl:template name="ConvertHexToDec"> | |
<xsl:param name="value"/> | |
<xsl:param name="i" select="1"/> | |
<xsl:param name="s" select="1"/> | |
<xsl:variable name="hexDigit" select="substring($value,$i,1)"/> | |
<xsl:if test="not($hexDigit = '')"> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="$hexDigit = 'A'">10</xsl:when> | |
<xsl:when test="$hexDigit = 'B'">11</xsl:when> | |
<xsl:when test="$hexDigit = 'C'">12</xsl:when> | |
<xsl:when test="$hexDigit = 'D'">13</xsl:when> | |
<xsl:when test="$hexDigit = 'E'">14</xsl:when> | |
<xsl:when test="$hexDigit = 'F'">15</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$hexDigit"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:call-template name="ConvertHexToDec"> | |
<xsl:with-param name="value" select="$value"/> | |
<xsl:with-param name="i" select="$i+$s"/> | |
<xsl:with-param name="s" select="$s"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="ConvBorderStyle"> | |
<xsl:param name="value"/> | |
<xsl:choose> | |
<xsl:when test="$value='none' or $value='nil'">none</xsl:when> | |
<xsl:when test="$value='single'">solid</xsl:when> | |
<xsl:when test="contains($value,'stroke')">solid</xsl:when> | |
<xsl:when test="$value='dashed'">dashed</xsl:when> | |
<xsl:when test="contains($value,'dash')">dashed</xsl:when> | |
<xsl:when test="$value='double'">double</xsl:when> | |
<xsl:when test="$value='triple'">double</xsl:when> | |
<xsl:when test="contains($value,'double')">double</xsl:when> | |
<xsl:when test="contains($value,'gap')">double</xsl:when> | |
<xsl:when test="$value='dotted'">dotted</xsl:when> | |
<xsl:when test="$value='three-d-emboss'">ridge</xsl:when> | |
<xsl:when test="$value='three-d-engrave'">groove</xsl:when> | |
<xsl:when test="$value='outset'">outset</xsl:when> | |
<xsl:when test="$value='inset'">inset</xsl:when> | |
<xsl:otherwise>solid</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="EvalTableWidth"> | |
<xsl:choose> | |
<xsl:when test="@w:type = 'pct'"> | |
<xsl:value-of select="@w:w div 50"/>% | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="@w:w div 20"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ConvColor"> | |
<xsl:param name="value"/> | |
<xsl:choose> | |
<xsl:when test="$value='black'">black</xsl:when> | |
<xsl:when test="$value='blue'">blue</xsl:when> | |
<xsl:when test="$value='cyan'">aqua</xsl:when> | |
<xsl:when test="$value='green'">lime</xsl:when> | |
<xsl:when test="$value='magenta'">fuchsia</xsl:when> | |
<xsl:when test="$value='red'">red</xsl:when> | |
<xsl:when test="$value='yellow'">yellow</xsl:when> | |
<xsl:when test="$value='white'">white</xsl:when> | |
<xsl:when test="$value='darkBlue'">navy</xsl:when> | |
<xsl:when test="$value='darkCyan'">teal</xsl:when> | |
<xsl:when test="$value='darkGreen'">green</xsl:when> | |
<xsl:when test="$value='darkMagenta'">purple</xsl:when> | |
<xsl:when test="$value='darkRed'">maroon</xsl:when> | |
<xsl:when test="$value='darkYellow'">olive</xsl:when> | |
<xsl:when test="$value='darkGray'">gray</xsl:when> | |
<xsl:when test="$value='lightGray'">silver</xsl:when> | |
<xsl:when test="$value='none'">transparent</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ConvHexColor"> | |
<xsl:param name="value"/> | |
<xsl:param name="autoColor" select="$autoColor_text"/> | |
<xsl:param name="transparentColor">transparent</xsl:param> | |
<xsl:choose> | |
<xsl:when test="$value = $autoColor_hex or $value = ''"> | |
<xsl:value-of select="$autoColor"/> | |
</xsl:when> | |
<xsl:when test="$value = $transparentColor_hex"> | |
<xsl:value-of select="$transparentColor"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="concat('#',$value)"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!--template of underline,strikethrough--> | |
<xsl:template name="EvalBooleanType"> | |
<xsl:choose> | |
<xsl:when test="string-length(@w:val) = 0 or @w:val = 'off' or @w:val = 'none' or @w:val = '0' "> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$on"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetBorderPr"> | |
<xsl:value-of select="@w:val"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:color"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:choose> | |
<xsl:when test="@w:sz"> | |
<xsl:value-of select="@w:sz * 2.5"/> | |
<xsl:value-of select="$sep2"/> | |
</xsl:when> | |
<xsl:otherwise> | |
0<xsl:value-of select="$sep2"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:value-of select="@w:space"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:shadow"/> | |
</xsl:template> | |
<xsl:template name="ApplyBorderPr"> | |
<xsl:param name="pr.bdr"/> | |
<xsl:param name="bdrSide" select="$bdrSide_char"/> | |
<xsl:if test="not($pr.bdr='')"> | |
<xsl:text>border</xsl:text> | |
<xsl:value-of select="$bdrSide"/> | |
<xsl:text>:</xsl:text> | |
<xsl:call-template name="ConvBorderStyle"> | |
<xsl:with-param name="value" select="substring-before($pr.bdr,$sep2)"/> | |
</xsl:call-template> | |
<xsl:variable name="temp" select="substring-after($pr.bdr,$sep2)"/> | |
<xsl:text> </xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="substring-before($temp,$sep2)"/> | |
</xsl:call-template> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="substring-before(substring-after($temp,$sep2),$sep2) div 20"/> | |
<xsl:text>pt;</xsl:text> | |
<xsl:if test="$bdrSide = $bdrSide_char">padding:0;</xsl:if> | |
</xsl:if> | |
</xsl:template> | |
<xsl:variable name="valid_hex_digits" select="'0123456789ABCDEF'"/> | |
<xsl:template name="TwoHexToDec"> | |
<xsl:param name="value"/> | |
<xsl:choose> | |
<xsl:when test="string-length($value) = 0"> | |
<xsl:value-of select="0"/> | |
</xsl:when> | |
<xsl:when test="string-length($value) = 1"> | |
<xsl:value-of select="string-length(substring-before($valid_hex_digits,substring($value,1,1)))"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="digit1_16" select="substring($value,1,1)"/> | |
<xsl:variable name="digit2_16" select="substring($value,2,1)"/> | |
<xsl:variable name="digit1_10" select="string-length(substring-before($valid_hex_digits,$digit1_16))"/> | |
<xsl:variable name="digit2_10" select="string-length(substring-before($valid_hex_digits,$digit2_16))"/> | |
<xsl:value-of select="$digit1_10 * 16 + $digit2_10"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="DecToTwoHex"> | |
<xsl:param name="value"/> | |
<xsl:variable name="digit1_10" select="floor($value div 16)"/> | |
<xsl:variable name="digit2_10" select="$value mod 16"/> | |
<xsl:variable name="digit1_16" select="substring($valid_hex_digits,$digit1_10 + 1,1)"/> | |
<xsl:variable name="digit2_16" select="substring($valid_hex_digits,$digit2_10 + 1,1)"/> | |
<xsl:value-of select="concat($digit1_16,$digit2_16)"/> | |
</xsl:template> | |
<xsl:template name="ApplyShdPct"> | |
<xsl:param name="value"/> | |
<xsl:param name="pct"/> | |
<xsl:param name="transparentColor">transparent</xsl:param> | |
<xsl:choose> | |
<xsl:when test="$value = $autoColor_hex or $value = ''"> | |
<xsl:call-template name="ApplyShdPct"> | |
<xsl:with-param name="value" select="'FFFFFF'"/> | |
<xsl:with-param name="pct" select="$pct"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:when test="$value = $transparentColor_hex"> | |
<xsl:value-of select="$transparentColor"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="r"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($value,1,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="g"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($value,3,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="b"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($value,5,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:value-of select="'#'"/> | |
<xsl:call-template name="DecToTwoHex"> | |
<xsl:with-param name="value" select="round(number($r) * $pct)"/> | |
</xsl:call-template> | |
<xsl:call-template name="DecToTwoHex"> | |
<xsl:with-param name="value" select="round(number($g) * $pct)"/> | |
</xsl:call-template> | |
<xsl:call-template name="DecToTwoHex"> | |
<xsl:with-param name="value" select="round(number($b) * $pct)"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ApplyShd"> | |
<xsl:variable name="backgroundColor"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'clear' or not(@w:val)"> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="@w:fill"/> | |
<xsl:with-param name="autoColor" select="$autoColor_bg"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:when test="@w:val = 'solid'">#000000</xsl:when> | |
<xsl:when test="substring(@w:val,1,3) = 'pct'"> | |
<xsl:call-template name="ApplyShdPct"> | |
<xsl:with-param name="value" select="@w:fill"/> | |
<xsl:with-param name="autoColor" select="$autoColor_bg"/> | |
<xsl:with-param name="pct" select="(100 - number(substring(@w:val,4))) div 100"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="@WX:bgcolor"/> | |
<xsl:with-param name="autoColor" select="$autoColor_bg"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:text>background-color:</xsl:text> | |
<xsl:value-of select="$backgroundColor"/> | |
<!--<xsl:variable select="backgroundColor"/>--> | |
<xsl:text>;</xsl:text> | |
<xsl:call-template name="ApplyAutoForeColor"> | |
<xsl:with-param name="backgroundColor" select="$backgroundColor"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyAutoForeColor"> | |
<xsl:param name="backgroundColor"/> | |
<xsl:if test="contains($backgroundColor,'#')"> | |
<xsl:variable name="backgroundHex" select="substring-after($backgroundColor,'#')"/> | |
<xsl:variable name="r"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($backgroundHex,1,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="g"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($backgroundHex,3,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="b"> | |
<xsl:call-template name="TwoHexToDec"> | |
<xsl:with-param name="value" select="substring($backgroundHex,5,2)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:if test="0.299 * number($r) + 0.587 * number($g) + 0.114 * number($b) <= 60"> | |
<xsl:text>color:#FFFFFF;</xsl:text> | |
</xsl:if> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="ApplyShdHint"> | |
<xsl:text>background-color:</xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="@WX:bgcolor"/> | |
<xsl:with-param name="autoColor" select="$autoColor_bg"/> | |
<xsl:with-param name="transparentColor">transparent</xsl:with-param> | |
</xsl:call-template> | |
<xsl:text>;</xsl:text> | |
</xsl:template> | |
<xsl:template name="ApplyTextDirection"> | |
<xsl:text>layout-flow:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'tb-rl-v'">vertical-ideographic</xsl:when> | |
<xsl:when test="@w:val = 'lr-tb-v'">horizontal-ideographic</xsl:when> | |
<xsl:otherwise>normal</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
</xsl:template> | |
<xsl:template name="ApplyCellMar"> | |
<xsl:choose> | |
<xsl:when test="@w:val='none'">none</xsl:when> | |
<xsl:otherwise> | |
<xsl:text>padding:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="w:top"> | |
<xsl:for-each select="w:top[1]"> | |
<xsl:call-template name="EvalTableWidth"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="w:right"> | |
<xsl:for-each select="w:right[1]"> | |
<xsl:call-template name="EvalTableWidth"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="w:bottom"> | |
<xsl:for-each select="w:bottom[1]"> | |
<xsl:call-template name="EvalTableWidth"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="w:left"> | |
<xsl:for-each select="w:left[1]"> | |
<xsl:call-template name="EvalTableWidth"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="PrsUpdatePPr"> | |
<xsl:param name="prsP" select="$prsPDefault"/> | |
<xsl:param name="ndPrContainer" select="."/> | |
<xsl:variable name="prsPTemp"> | |
<xsl:for-each select="$ndPrContainer"> | |
<xsl:call-template name="PrsUpdatePPrCore"> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$prsPTemp=''"> | |
<xsl:value-of select="$prsP"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$prsPTemp"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="FetchBasedOnPropertyBoolean"> | |
<xsl:param name="match" select="''"/> | |
<xsl:choose> | |
<xsl:when test="$match"> | |
<xsl:for-each select="$match"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="../w:basedOn"> | |
<xsl:variable name="sBasedOn"> | |
<xsl:value-of select="../w:basedOn/@w:val"/> | |
</xsl:variable> | |
<xsl:for-each select="$nsStyles[@w:styleId=$sBasedOn]"> | |
<xsl:call-template name="FetchBasedOnPropertyBoolean"> | |
<xsl:with-param name="match" select="$match"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$na"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:variable name="fbopModeIndentLeft" select="'1'"/> | |
<xsl:variable name="fbopModeIndentLeftChars" select="'2'"/> | |
<xsl:variable name="fbopModeIndentRight" select="'3'"/> | |
<xsl:variable name="fbopModeIndentRightChars" select="'4'"/> | |
<xsl:variable name="fbopModeIndentHanging" select="'5'"/> | |
<xsl:variable name="fbopModeIndentHangingChars" select="'6'"/> | |
<xsl:variable name="fbopModeIndentFirstLine" select="'7'"/> | |
<xsl:variable name="fbopModeIndentFirstLineChars" select="'8'"/> | |
<xsl:template name="FetchBasedOnProperty"> | |
<xsl:param name="mode" select="''"/> | |
<xsl:param name="sDefault" select="''"/> | |
<xsl:variable name="sValue"> | |
<xsl:choose> | |
<xsl:when test="$mode=$fbopModeIndentLeft"> | |
<xsl:value-of select="w:ind[1]/@w:left"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentLeftChars"> | |
<xsl:value-of select="w:ind[1]/@w:leftChars"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentRight"> | |
<xsl:value-of select="w:ind[1]/@w:right"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentRightChars"> | |
<xsl:value-of select="w:ind[1]/@w:rightChars"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentHanging"> | |
<xsl:value-of select="w:ind[1]/@w:hanging"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentHangingChars"> | |
<xsl:value-of select="w:ind[1]/@w:hangingChars"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentFirstLine"> | |
<xsl:value-of select="w:ind[1]/@w:firstLine"/> | |
</xsl:when> | |
<xsl:when test="$mode=$fbopModeIndentFirstLineChars"> | |
<xsl:value-of select="w:ind[1]/@w:firstLineChars"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text></xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not($sValue='')"> | |
<xsl:value-of select="$sValue"/> | |
</xsl:when> | |
<xsl:when test="../w:basedOn"> | |
<xsl:variable name="sBasedOn"> | |
<xsl:value-of select="../w:basedOn/@w:val"/> | |
</xsl:variable> | |
<xsl:for-each select="$nsStyles[@w:styleId=$sBasedOn]/w:pPr[1]"> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$mode"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$sDefault"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="PrsUpdatePPrCore"> | |
<xsl:param name="prsP" select="$prsPDefault"/> | |
<xsl:for-each select="w:pPr[1]"> | |
<xsl:variable name="fTextAutospaceO"> | |
<xsl:for-each select="w:autoSpaceDE[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fTextAutospaceO=''"> | |
<xsl:value-of select="substring($prsP, $iTextAutospaceO, 1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fTextAutospaceO"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fTextAutospaceN"> | |
<xsl:for-each select="w:autoSpaceDN[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fTextAutospaceN=''"> | |
<xsl:value-of select="substring($prsP, $iTextAutospaceN, 1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fTextAutospaceN"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="prsDefaultInd" select="substring($prsP, $iInd)"/> | |
<xsl:variable name="sDefLeft" select="substring-before($prsDefaultInd,$sep2)"/> | |
<xsl:variable name="temp1" select="substring-after($prsDefaultInd,$sep2)"/> | |
<xsl:variable name="sDefLeftChars" select="substring-before($temp1,$sep2)"/> | |
<xsl:variable name="temp2" select="substring-after($temp1,$sep2)"/> | |
<xsl:variable name="sDefRight" select="substring-before($temp2,$sep2)"/> | |
<xsl:variable name="temp3" select="substring-after($temp2,$sep2)"/> | |
<xsl:variable name="sDefRightChars" select="substring-before($temp3,$sep2)"/> | |
<xsl:variable name="temp4" select="substring-after($temp3,$sep2)"/> | |
<xsl:variable name="sDefHanging" select="substring-before($temp4,$sep2)"/> | |
<xsl:variable name="temp5" select="substring-after($temp4,$sep2)"/> | |
<xsl:variable name="sDefHangingChars" select="substring-before($temp5,$sep2)"/> | |
<xsl:variable name="temp6" select="substring-after($temp5,$sep2)"/> | |
<xsl:variable name="sDefFirstLine" select="substring-before($temp6,$sep2)"/> | |
<xsl:variable name="sDefFirstLineChars" select="substring-after($temp6,$sep2)"/> | |
<xsl:variable name="nInd"> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentLeft"/> | |
<xsl:with-param name="sDefault" select="$sDefLeft"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentLeftChars"/> | |
<xsl:with-param name="sDefault" select="$sDefLeftChars"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentRight"/> | |
<xsl:with-param name="sDefault" select="$sDefRight"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentRightChars"/> | |
<xsl:with-param name="sDefault" select="$sDefRightChars"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentHanging"/> | |
<xsl:with-param name="sDefault" select="$sDefHanging"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentHangingChars"/> | |
<xsl:with-param name="sDefault" select="$sDefHangingChars"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentFirstLine"/> | |
<xsl:with-param name="sDefault" select="$sDefFirstLine"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sep2"/> | |
<xsl:call-template name="FetchBasedOnProperty"> | |
<xsl:with-param name="mode" select="$fbopModeIndentFirstLineChars"/> | |
<xsl:with-param name="sDefault" select="$sDefFirstLineChars"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$nInd=''"> | |
<xsl:value-of select="substring($prsP, $iInd)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$nInd"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="PrsUpdateRPr"> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:param name="ndPrContainer" select="."/> | |
<xsl:variable name="prsRTemp"> | |
<xsl:for-each select="$ndPrContainer"> | |
<xsl:call-template name="PrsUpdateRPrCore"> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$prsRTemp=''"> | |
<xsl:value-of select="$prsR"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$prsRTemp"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="PrsUpdateRPrCore"> | |
<xsl:param name="prsR"/> | |
<xsl:param name="type" select="$prrNonList"/> | |
<xsl:for-each select="w:rPr[1]"> | |
<xsl:variable name="fEmbossImprint"> | |
<xsl:variable name="condition1"> | |
<xsl:for-each select="w:emboss[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="condition2"> | |
<xsl:for-each select="w:imprint[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$condition1 = $on or $condition2 = $on"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:when test="$condition1 = $off or $condition2 = $off"> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fEmbossImprint = ''"> | |
<xsl:value-of select="substring($prsR,$iEmbossImprint,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fEmbossImprint"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fU_Em"> | |
<xsl:variable name="condition1"> | |
<!--here is the underline tag--> | |
<xsl:for-each select="w:u[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="condition2"> | |
<xsl:for-each select="w:em[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$condition1 = $on or $condition2 = $on"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:when test="$condition1 = $off or $condition2 = $off"> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fU_Em = ''"> | |
<xsl:choose> | |
<xsl:when test="$type=$prrList"> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="substring($prsR,$iU_Em,1)"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fU_Em"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fStrikeDStrike"> | |
<xsl:variable name="condition1"> | |
<xsl:for-each select="w:strike[1]"> | |
<xsl:value-of select="$on"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="condition2"> | |
<xsl:for-each select="w:dstrike[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$condition1 = $on or $condition2 = $on"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:when test="$condition1 = $off or $condition2 = $off"> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fStrikeDStrike = ''"> | |
<xsl:value-of select="substring($prsR,$iStrikeDStrike,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fStrikeDStrike"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fSup"> | |
<xsl:choose> | |
<xsl:when test="w:vertAlign/@w:val='superscript'"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not(w:vertAlign)"> | |
<xsl:value-of select="substring($prsR,$iSup,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fSup"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fSub"> | |
<xsl:choose> | |
<xsl:when test="w:vertAlign/@w:val='subscript'"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not(w:vertAlign)"> | |
<xsl:value-of select="substring($prsR,$iSub,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fSub"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fVanishWebHidden"> | |
<xsl:variable name="condition1"> | |
<xsl:for-each select="w:vanish[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="condition2"> | |
<xsl:for-each select="w:webHidden[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$condition1 = $on or $condition2 = $on"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:when test="$condition1 = $off or $condition2 = $off"> | |
<xsl:value-of select="$off"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fVanishWebHidden = ''"> | |
<xsl:value-of select="substring($prsR,$iVanishWebHidden,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fVanishWebHidden"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fBCs"> | |
<xsl:for-each select="w:bCs[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fBCs = ''"> | |
<xsl:value-of select="substring($prsR,$iBCs,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fBCs"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="fICs"> | |
<xsl:for-each select="w:iCs[1]"> | |
<xsl:call-template name="EvalBooleanType"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$fICs = ''"> | |
<xsl:value-of select="substring($prsR,$iICs,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$fICs"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="szAsciiTheme" select="string(w:rFonts[1]/@w:asciiTheme)"/> | |
<xsl:choose> | |
<xsl:when test="$szAsciiTheme = ''"> | |
<xsl:value-of select="substring($prsR,$iAsciiTheme,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="EvalThemeType"> | |
<xsl:with-param name="themeStyle" select="$szAsciiTheme"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="szAnsiTheme" select="string(w:rFonts[1]/@w:hAnsiTheme)"/> | |
<xsl:choose> | |
<xsl:when test="$szAnsiTheme = ''"> | |
<xsl:value-of select="substring($prsR,$iAnsiTheme,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="EvalThemeType"> | |
<xsl:with-param name="themeStyle" select="$szAnsiTheme"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="szEATheme" select="string(w:rFonts[1]/@w:eastAsiaTheme)"/> | |
<xsl:choose> | |
<xsl:when test="$szEATheme = ''"> | |
<xsl:value-of select="substring($prsR,$iEATheme,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="EvalThemeType"> | |
<xsl:with-param name="themeStyle" select="$szEATheme"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="szCSTheme" select="string(w:rFonts[1]/@w:cstheme)"/> | |
<xsl:choose> | |
<xsl:when test="$szCSTheme = ''"> | |
<xsl:value-of select="substring($prsR,$iCSTheme,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="EvalThemeType"> | |
<xsl:with-param name="themeStyle" select="$szCSTheme"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:variable name="nSzCs" select="string(w:szCs[1]/@w:val)"/> | |
<xsl:choose> | |
<xsl:when test="$nSzCs = ''"> | |
<xsl:value-of select="substring($prsR,$ISzCs)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$nSzCs"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="EvalThemeType"> | |
<xsl:param name="themeStyle"/> | |
<xsl:choose> | |
<xsl:when test="$themeStyle = 'minorAscii'"> | |
<xsl:value-of select="$minorAscii"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'majorAscii'"> | |
<xsl:value-of select="$majorAscii"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'minorHAnsi'"> | |
<xsl:value-of select="$minorAnsi"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'majorHAnsi'"> | |
<xsl:value-of select="$majorAnsi"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'minorEastAsia'"> | |
<xsl:value-of select="$minorEA"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'majorEastAsia'"> | |
<xsl:value-of select="$majorEA"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'minorBidi'"> | |
<xsl:value-of select="$minorCS"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle = 'majorBidi'"> | |
<xsl:value-of select="$majorCS"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="PrsGetListPr"> | |
<xsl:param name="type"/> | |
<xsl:param name="prsR"/> | |
<xsl:for-each select="w:numPr"> | |
<xsl:choose> | |
<xsl:when test="w:numId and w:ilvl"> | |
<xsl:call-template name="PrsGetListPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="pstyleId"> | |
<xsl:for-each select="ancestor::w:p[1]"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:for-each select="($nsStyles[@w:styleId=$pstyleId])[1]/w:pPr[1]/w:numPr[1]"> | |
<xsl:call-template name="PrsGetListPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="PrsGetListPrCore"> | |
<xsl:param name="type"/> | |
<xsl:param name="prsR"/> | |
<xsl:variable name="numId" select="w:numId/@w:val"/> | |
<xsl:variable name="ilvl" select="w:ilvl/@w:val"/> | |
<xsl:for-each select="$ndLists"> | |
<xsl:variable name="list" select="w:num[@w:numId=$numId][1]"/> | |
<xsl:choose> | |
<xsl:when | |
test="w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:for-each | |
select="w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:call-template name="PrsGetListPrFromListDef"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
<xsl:if test="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:for-each select="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:call-template name="PrsGetListPrFromListDef"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:if> | |
</xsl:when> | |
<xsl:when test="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:for-each select="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:call-template name="PrsGetListPrFromListDef"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:listStyleLink"> | |
<xsl:variable name="linkedStyleId" | |
select="w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:listStyleLink/@w:val"/> | |
<xsl:variable name="linkedStyle" select="$nsStyles[@w:styleId=$linkedStyleId]"/> | |
<xsl:variable name="linkedList" select="w:num[@w:numId=$linkedStyle/w:pPr/w:numPr/w:numId/@w:val]"/> | |
<xsl:for-each | |
select="w:abstractNum[@w:abstractNumId=$linkedList/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:call-template name="PrsGetListPrFromListDef"> | |
<xsl:with-param name="type" select="$type"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="PrsGetListPrFromListDef"> | |
<xsl:param name="type"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="$type = $prrListSuff"> | |
<xsl:variable name="suff" select="w:suff[1]/@w:val"/> | |
<xsl:choose> | |
<xsl:when test="$suff = $prListSuff_space or $suff = $prListSuff_nothing"> | |
<xsl:value-of select="$suff"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$prListSuff_space"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="$type = $prrListInd"> | |
<xsl:for-each select="w:pPr[1]/w:ind[1]"> | |
<xsl:value-of select="@w:left"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:left-chars"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:hanging"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:hanging-chars"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrApplyRPr"> | |
<xsl:call-template name="ApplyRPr.class"/> | |
</xsl:when> | |
<xsl:when test="$type = $prrUpdateRPr"> | |
<xsl:call-template name="PrsUpdateRPrCore"> | |
<xsl:with-param name="type" select="$prrList"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetSinglePPr"> | |
<xsl:param name="type"/> | |
<xsl:param name="sParaStyleName"/> | |
<xsl:variable name="result"> | |
<xsl:call-template name="GetSinglePPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:if test="$result=''"> | |
<xsl:for-each select="$sParaStyleName"> | |
<xsl:call-template name="GetSinglePPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:value-of select="$result"/> | |
</xsl:template> | |
<xsl:template name="GetSinglePPrCore"> | |
<xsl:param name="type"/> | |
<xsl:for-each select="w:pPr[1]"> | |
<xsl:choose> | |
<xsl:when test="$type = $prrBdrPr_top"> | |
<xsl:for-each select="w:bdr[1]/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_right"> | |
<xsl:for-each select="w:bdr[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_bottom"> | |
<xsl:for-each select="w:bdr[1]/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_left"> | |
<xsl:for-each select="w:bdr[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_between"> | |
<xsl:for-each select="w:bdr[1]/w:between[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_bar"> | |
<xsl:for-each select="w:bdr[1]/w:bar[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrFrame"> | |
<xsl:for-each select="w:framePr[1]"> | |
<xsl:value-of select="@w:w"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:h"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:h-rule"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:x-align"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:vSpace"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:hSpace"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:wrap"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:drop-cap"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:lines"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:x"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:y-align"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:y"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:hAnchor"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:vAnchor"/> | |
<xsl:value-of select="$sep2"/> | |
<xsl:value-of select="@w:anchor-lock"/> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="GetSingleTblPr"> | |
<xsl:param name="type"/> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:variable name="result"> | |
<xsl:call-template name="GetSingleTblPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:if test="$result='' and $sTblStyleName"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="GetSingleTblPrCore"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:value-of select="$result"/> | |
</xsl:template> | |
<xsl:template name="GetSingleTblPrCore"> | |
<xsl:param name="type"/> | |
<xsl:for-each select="w:tblPr[1]"> | |
<xsl:choose> | |
<xsl:when test="$type = $prrBdrPr_top"> | |
<xsl:for-each select="w:tblBorders[1]/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_left"> | |
<xsl:for-each select="w:tblBorders[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_bottom"> | |
<xsl:for-each select="w:tblBorders[1]/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_right"> | |
<xsl:for-each select="w:tblBorders[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_insideH"> | |
<xsl:for-each select="w:tblBorders[1]/w:insideH[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrBdrPr_insideV"> | |
<xsl:for-each select="w:tblBorders[1]/w:insideV[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrDefaultCellpadding"> | |
<xsl:for-each select="w:tblCellMar[1]"> | |
<xsl:call-template name="ApplyCellMar"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrCellspacing"> | |
<xsl:value-of select="w:tblCellSpacing[1]/@w:w"/> | |
</xsl:when> | |
<xsl:when test="$type = $prrTblInd"> | |
<xsl:for-each select="w:tblInd[1]"> | |
<xsl:call-template name="EvalTableWidth"/> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="WrapCnf"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfBand1Horz][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfBand1Horz)}"> | |
<xsl:call-template name="WrapCnf.a"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfBand2Horz][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfBand2Horz)}"> | |
<xsl:call-template name="WrapCnf.a"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapCnf.a"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="WrapCnf.a"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfBand1Vert,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfBand1Vert][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfBand1Vert)}"> | |
<xsl:call-template name="WrapCnf.b"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand2Vert,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfBand2Vert][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfBand2Vert)}"> | |
<xsl:call-template name="WrapCnf.b"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapCnf.b"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="WrapCnf.b"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfFirstCol,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfFirstCol][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfFirstCol)}"> | |
<xsl:call-template name="WrapCnf.c"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfLastCol,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfLastCol][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfLastCol)}"> | |
<xsl:call-template name="WrapCnf.c"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapCnf.c"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="WrapCnf.c"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfFirstRow][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfFirstRow)}"> | |
<xsl:call-template name="WrapCnf.d"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfLastRow][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfLastRow)}"> | |
<xsl:call-template name="WrapCnf.d"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapCnf.d"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="WrapCnf.d"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfNECell,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfNECell][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfNECell)}"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfNWCell,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfNWCell][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfNWCell)}"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSECell,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfSECell][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfSECell)}"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSWCell,1)=$on"> | |
<xsl:variable name="p.cnfType" select="$sTblStyleName/w:tblStylePr[@w:type=$cnfSWCell][1]"/> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$p.cnfType"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum.updated"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$p.cnfType"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<div class="{concat($sTblStyleName/@w:styleId,'-',$cnfSWCell)}"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum.updated"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</div> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetCnfPr.all"> | |
<xsl:param name="type"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand1Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand2Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfBand1Vert,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand1Vert][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand2Vert,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand2Vert][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfFirstCol,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfFirstCol][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfLastCol,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfLastCol][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfFirstRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfLastRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfNECell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfNECell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfNWCell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfNWCell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSECell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfSECell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSWCell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfSWCell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetCnfPr.cell"> | |
<xsl:param name="type"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:variable name="result1"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfNECell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfNECell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfNWCell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfNWCell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSECell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfSECell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSWCell,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfSWCell][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$result1"/> | |
<xsl:if test="$result1=''"> | |
<xsl:variable name="result2"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfFirstRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfLastRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$result2"/> | |
<xsl:if test="$result2=''"> | |
<xsl:variable name="result3"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfFirstCol,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfFirstCol][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfLastCol,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfLastCol][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$result3"/> | |
<xsl:if test="$result3=''"> | |
<xsl:variable name="result4"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfBand1Vert,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand1Vert][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand2Vert,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand2Vert][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$result4"/> | |
<xsl:if test="$result4=''"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand1Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand2Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:if> | |
</xsl:if> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="GetCnfPr.row"> | |
<xsl:param name="type"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:variable name="result1"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfFirstRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfLastRow][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$result1"/> | |
<xsl:if test="$result1=''"> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand1Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:for-each select="w:tblStylePr[@w:type=$cnfBand2Horz][1]"> | |
<xsl:call-template name="GetCnfPr.a"> | |
<xsl:with-param name="type" select="$type"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="GetCnfPr.a"> | |
<xsl:param name="type"/> | |
<xsl:choose> | |
<xsl:when test="$type = $prrApplyTcPr"> | |
<xsl:call-template name="ApplyTcPr.class"/> | |
</xsl:when> | |
<xsl:when test="$type = $prrCustomCellpadding"> | |
<xsl:for-each select="w:tcPr[1]/w:tcMar[1]"> | |
<xsl:call-template name="ApplyCellMar"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrDefaultCellpadding"> | |
<xsl:for-each select="w:tblPr[1]/w:tblCellMar[1]"> | |
<xsl:call-template name="ApplyCellMar"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$type = $prrCantSplit"> | |
<xsl:for-each select="w:trPr[1]/w:cantSplit[1]"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">page-break-inside:auto;</xsl:when> | |
<xsl:otherwise>page-break-inside:avoid;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetCnfType"> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfNECell,1)=$on"> | |
<xsl:value-of select="$cnfNECell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfNWCell,1)=$on"> | |
<xsl:value-of select="$cnfNWCell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSECell,1)=$on"> | |
<xsl:value-of select="$cnfSECell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSWCell,1)=$on"> | |
<xsl:value-of select="$cnfSWCell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:value-of select="$cnfFirstRow"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:value-of select="$cnfLastRow"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfFirstCol,1)=$on"> | |
<xsl:value-of select="$cnfFirstCol"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfLastCol,1)=$on"> | |
<xsl:value-of select="$cnfLastCol"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand1Vert,1)=$on"> | |
<xsl:value-of select="$cnfBand1Vert"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand2Vert,1)=$on"> | |
<xsl:value-of select="$cnfBand2Vert"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:value-of select="$cnfBand1Horz"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:value-of select="$cnfBand2Horz"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetCnfTypeRow"> | |
<xsl:param name="cnfRow"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfRow,$icnfFirstRow,1)=$on"> | |
<xsl:value-of select="$cnfFirstRow"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfLastRow,1)=$on"> | |
<xsl:value-of select="$cnfLastRow"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand1Horz,1)=$on"> | |
<xsl:value-of select="$cnfBand1Horz"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfRow,$icnfBand2Horz,1)=$on"> | |
<xsl:value-of select="$cnfBand2Horz"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="GetCnfTypeCol"> | |
<xsl:param name="cnfCol"/> | |
<xsl:choose> | |
<xsl:when test="substring($cnfCol,$icnfNECell,1)=$on"> | |
<xsl:value-of select="$cnfNECell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfNWCell,1)=$on"> | |
<xsl:value-of select="$cnfNWCell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSECell,1)=$on"> | |
<xsl:value-of select="$cnfSECell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfSWCell,1)=$on"> | |
<xsl:value-of select="$cnfSWCell"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfFirstCol,1)=$on"> | |
<xsl:value-of select="$cnfFirstCol"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfLastCol,1)=$on"> | |
<xsl:value-of select="$cnfLastCol"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand1Vert,1)=$on"> | |
<xsl:value-of select="$cnfBand1Vert"/> | |
</xsl:when> | |
<xsl:when test="substring($cnfCol,$icnfBand2Vert,1)=$on"> | |
<xsl:value-of select="$cnfBand2Vert"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="RecursiveRStyledGetBorderPr"> | |
<xsl:param name="rStyleId"/> | |
<xsl:variable name="myStyle" select="($nsStyles[@w:styleId=$rStyleId])[1]"/> | |
<xsl:if test="not($rStyleId='')"> | |
<xsl:choose> | |
<xsl:when test="$myStyle/w:rPr[1]/w:bdr[1]"> | |
<xsl:for-each select="$myStyle/w:rPr[1]/w:bdr[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:if test="$myStyle/w:basedOn"> | |
<xsl:call-template name="RecursiveRStyledGetBorderPr"> | |
<xsl:with-param name="rStyleId" select="$myStyle/w:basedOn/@w:val"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="DisplayRBorder"> | |
<xsl:param name="ns.content" select="*"/> | |
<xsl:param name="i.range.start" select="1"/> | |
<xsl:param name="i.this" select="number($i.range.start)"/> | |
<xsl:param name="pr.bdr.prev" select="''"/> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="runStyleName"/> | |
<xsl:choose> | |
<xsl:when test="($ns.content)[$i.this]"> | |
<xsl:for-each select="($ns.content)[$i.this]"> | |
<xsl:choose> | |
<xsl:when | |
test="name() = 'w:proofErr' or (name() = 'aml:annotation' and not(@w:type = 'Word.Insertion'))"> | |
<xsl:call-template name="DisplayRBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.range.start" select="$i.range.start"/> | |
<xsl:with-param name="i.this" select="$i.this+1"/> | |
<xsl:with-param name="pr.bdr.prev" select="$pr.bdr.prev"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="pr.bdr.this"> | |
<xsl:choose> | |
<xsl:when test="name()='aml:annotation'"/> | |
<xsl:otherwise> | |
<xsl:for-each select="descendant-or-self::*[name()='w:pPr' or name()='w:r'][1]"> | |
<xsl:choose> | |
<xsl:when test="w:rPr[1]/w:bdr[1]"> | |
<xsl:for-each select="w:rPr[1]/w:bdr[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="RecursiveRStyledGetBorderPr"> | |
<xsl:with-param name="rStyleId" | |
select="w:rPr[1]/w:rStyle[1]/@w:val"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$pr.bdr.prev = $pr.bdr.this"> | |
<xsl:call-template name="DisplayRBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.range.start" select="$i.range.start"/> | |
<xsl:with-param name="i.this" select="$i.this+1"/> | |
<xsl:with-param name="pr.bdr.prev" select="$pr.bdr.prev"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapRBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.range.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.this"/> | |
<xsl:with-param name="pr.bdr" select="$pr.bdr.prev"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
<xsl:call-template name="DisplayRBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.range.start" select="$i.this"/> | |
<xsl:with-param name="i.this" select="$i.this+1"/> | |
<xsl:with-param name="pr.bdr.prev" select="$pr.bdr.this"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapRBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.range.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.this"/> | |
<xsl:with-param name="pr.bdr" select="$pr.bdr.prev"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="WrapRBorder"> | |
<xsl:param name="ns.content"/> | |
<xsl:param name="i.bdrRange.start"/> | |
<xsl:param name="i.bdrRange.end"/> | |
<xsl:param name="pr.bdr"/> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="runStyleName"/> | |
<xsl:choose> | |
<xsl:when test="$pr.bdr = ''"> | |
<xsl:apply-templates | |
select="($ns.content)[position() >= $i.bdrRange.start and position() < $i.bdrRange.end]"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:apply-templates> | |
</xsl:when> | |
<xsl:otherwise> | |
<span> | |
<xsl:attribute name="style"> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdr"/> | |
</xsl:call-template> | |
</xsl:attribute> | |
<xsl:apply-templates | |
select="($ns.content)[position() >= $i.bdrRange.start and position() < $i.bdrRange.end]"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:apply-templates> | |
</span> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="DisplayPBorderOld"> | |
<xsl:param name="pr.frame.prev"/> | |
<xsl:param name="pr.bdrTop.prev"/> | |
<xsl:param name="pr.bdrLeft.prev"/> | |
<xsl:param name="pr.bdrBottom.prev"/> | |
<xsl:param name="pr.bdrRight.prev"/> | |
<xsl:param name="pr.bdrBetween.prev"/> | |
<xsl:param name="pr.bdrBar.prev"/> | |
<xsl:param name="ns.content"/> | |
<xsl:param name="i.range.start" select="1"/> | |
<xsl:param name="i.this" select="number($i.range.start)"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="($ns.content)[$i.this]"> | |
<xsl:for-each select="($ns.content)[$i.this]"> | |
<xsl:variable name="pstyle"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:variable> | |
<xsl:variable name="sParaStyleName" select="($nsStyles[@w:styleId=$pstyle])[1]"/> | |
<xsl:variable name="pr.frame.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrFrame"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrTop.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_top"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrLeft.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_left"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBottom.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_bottom"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrRight.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_right"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBetween.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_between"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBar.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_bar"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when | |
test="0 = 1 and $pr.frame.prev = $pr.frame.this and $pr.bdrTop.prev = $pr.bdrTop.this and $pr.bdrLeft.prev = $pr.bdrLeft.this and $pr.bdrBottom.prev = $pr.bdrBottom.this and $pr.bdrRight.prev = $pr.bdrRight.this and $pr.bdrBetween.prev = $pr.bdrBetween.this and $pr.bdrBar.prev = $pr.bdrBar.this"> | |
<xsl:call-template name="DisplayPBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.range.start" select="$i.range.start"/> | |
<xsl:with-param name="i.this" select="$i.this+1"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="pr.frame.prev" select="$pr.frame.prev"/> | |
<xsl:with-param name="pr.bdrTop.prev" select="$pr.bdrTop.prev"/> | |
<xsl:with-param name="pr.bdrLeft.prev" select="$pr.bdrLeft.prev"/> | |
<xsl:with-param name="pr.bdrBottom.prev" select="$pr.bdrBottom.prev"/> | |
<xsl:with-param name="pr.bdrRight.prev" select="$pr.bdrRight.prev"/> | |
<xsl:with-param name="pr.bdrBetween.prev" select="$pr.bdrBetween.prev"/> | |
<xsl:with-param name="pr.bdrBar.prev" select="$pr.bdrBar.prev"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="wrapFrame"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.range.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.this"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="framePr" select="$pr.frame.prev"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop.prev"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft.prev"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom.prev"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight.prev"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween.prev"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar.prev"/> | |
</xsl:call-template> | |
<xsl:call-template name="DisplayPBorder"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.range.start" select="$i.this"/> | |
<xsl:with-param name="i.this" select="$i.this+1"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="pr.frame.prev" select="$pr.frame.this"/> | |
<xsl:with-param name="pr.bdrTop.prev" select="$pr.bdrTop.this"/> | |
<xsl:with-param name="pr.bdrLeft.prev" select="$pr.bdrLeft.this"/> | |
<xsl:with-param name="pr.bdrBottom.prev" select="$pr.bdrBottom.this"/> | |
<xsl:with-param name="pr.bdrRight.prev" select="$pr.bdrRight.this"/> | |
<xsl:with-param name="pr.bdrBetween.prev" select="$pr.bdrBetween.this"/> | |
<xsl:with-param name="pr.bdrBar.prev" select="$pr.bdrBar.this"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="wrapFrame"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.range.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.this"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="framePr" select="$pr.frame.prev"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop.prev"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft.prev"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom.prev"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight.prev"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween.prev"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar.prev"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="DisplayPBorder"> | |
<xsl:param name="pr.frame.prev"/> | |
<xsl:param name="pr.bdrTop.prev"/> | |
<xsl:param name="pr.bdrLeft.prev"/> | |
<xsl:param name="pr.bdrBottom.prev"/> | |
<xsl:param name="pr.bdrRight.prev"/> | |
<xsl:param name="pr.bdrBetween.prev"/> | |
<xsl:param name="pr.bdrBar.prev"/> | |
<xsl:param name="ns.content"/> | |
<xsl:param name="i.range.start" select="1"/> | |
<xsl:param name="i.this" select="number($i.range.start)"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="($ns.content)[$i.this]"> | |
<xsl:for-each select="($ns.content)"> | |
<xsl:variable name="pstyle"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:variable> | |
<xsl:variable name="sParaStyleName" select="($nsStyles[@w:styleId=$pstyle])[1]"/> | |
<xsl:variable name="pr.frame.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrFrame"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrTop.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_top"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrLeft.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_left"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBottom.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_bottom"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrRight.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_right"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBetween.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_between"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.bdrBar.this"> | |
<xsl:call-template name="GetSinglePPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_bar"/> | |
<xsl:with-param name="sParaStyleName" select="$sParaStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:call-template name="wrapFrame"> | |
<xsl:with-param name="ns.content" select="."/> | |
<xsl:with-param name="i.bdrRange.start" select="1"/> | |
<xsl:with-param name="i.bdrRange.end" select="2"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="framePr" select="$pr.frame.prev"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop.prev"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft.prev"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom.prev"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight.prev"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween.prev"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar.prev"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="wrapFrame"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.range.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.this"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="framePr" select="$pr.frame.prev"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop.prev"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft.prev"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom.prev"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight.prev"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween.prev"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar.prev"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="wrapFrame"> | |
<xsl:param name="framePr"/> | |
<xsl:param name="pr.bdrTop"/> | |
<xsl:param name="pr.bdrLeft"/> | |
<xsl:param name="pr.bdrBottom"/> | |
<xsl:param name="pr.bdrRight"/> | |
<xsl:param name="pr.bdrBetween"/> | |
<xsl:param name="pr.bdrBar"/> | |
<xsl:param name="ns.content"/> | |
<xsl:param name="i.bdrRange.start"/> | |
<xsl:param name="i.bdrRange.end"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when test="$framePr = ''"> | |
<xsl:call-template name="wrapPBdr"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.bdrRange.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.bdrRange.end"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="width" select="substring-before($framePr,$sep2)"/> | |
<xsl:variable name="framePr1" select="substring-after($framePr,$sep2)"/> | |
<xsl:variable name="height" select="substring-before($framePr1,$sep2)"/> | |
<xsl:variable name="framePr2" select="substring-after($framePr1,$sep2)"/> | |
<xsl:variable name="hrule" select="substring-before($framePr2,$sep2)"/> | |
<xsl:variable name="framePr3" select="substring-after($framePr2,$sep2)"/> | |
<xsl:variable name="xalign" select="substring-before($framePr3,$sep2)"/> | |
<xsl:variable name="framePr4" select="substring-after($framePr3,$sep2)"/> | |
<xsl:variable name="vspace" select="substring-before($framePr4,$sep2)"/> | |
<xsl:variable name="framePr5" select="substring-after($framePr4,$sep2)"/> | |
<xsl:variable name="hspace" select="substring-before($framePr5,$sep2)"/> | |
<xsl:variable name="framePr6" select="substring-after($framePr5,$sep2)"/> | |
<xsl:variable name="wrap" select="substring-before($framePr6,$sep2)"/> | |
<table cellspacing="0" cellpadding="0" hspace="0" vspace="0"> | |
<xsl:if test="not($width = '' and $height='')"> | |
<xsl:attribute name="style"> | |
<xsl:if test="not($width = '')"> | |
width:<xsl:value-of select="$width div 20"/>pt; | |
</xsl:if> | |
<xsl:if test="not($height = '')"> | |
height:<xsl:value-of select="$height div 20"/>pt; | |
</xsl:if> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:attribute name="align"> | |
<xsl:choose> | |
<xsl:when test="$xalign = 'right' or $xalign = 'outside'">right</xsl:when> | |
<xsl:otherwise>left</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
<tr> | |
<td valign="top" align="left"> | |
<xsl:attribute name="style"> | |
<xsl:text>padding:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="$vspace = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$vspace div 20"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="$hspace = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$hspace div 20"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
</xsl:attribute> | |
<xsl:call-template name="wrapPBdr"> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="i.bdrRange.start" select="$i.bdrRange.start"/> | |
<xsl:with-param name="i.bdrRange.end" select="$i.bdrRange.end"/> | |
<xsl:with-param name="pr.bdrTop" select="$pr.bdrTop"/> | |
<xsl:with-param name="pr.bdrLeft" select="$pr.bdrLeft"/> | |
<xsl:with-param name="pr.bdrBottom" select="$pr.bdrBottom"/> | |
<xsl:with-param name="pr.bdrRight" select="$pr.bdrRight"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween"/> | |
<xsl:with-param name="pr.bdrBar" select="$pr.bdrBar"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</td> | |
</tr> | |
</table> | |
<xsl:if test="$wrap = '' or $wrap = 'none' or $wrap = 'not-beside'"> | |
<br clear="all"/> | |
</xsl:if> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="wrapPBdr"> | |
<xsl:param name="pr.bdrTop"/> | |
<xsl:param name="pr.bdrLeft"/> | |
<xsl:param name="pr.bdrBottom"/> | |
<xsl:param name="pr.bdrRight"/> | |
<xsl:param name="pr.bdrBetween"/> | |
<xsl:param name="pr.bdrBar"/> | |
<xsl:param name="ns.content"/> | |
<xsl:param name="i.bdrRange.start"/> | |
<xsl:param name="i.bdrRange.end"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:choose> | |
<xsl:when | |
test="$pr.bdrTop = '' and $pr.bdrLeft = '' and $pr.bdrBottom = '' and $pr.bdrRight = '' and $pr.bdrBar = ''"> | |
<xsl:apply-templates | |
select="($ns.content)[position() >= $i.bdrRange.start and position() < $i.bdrRange.end]"> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween"/> | |
</xsl:apply-templates> | |
</xsl:when> | |
<xsl:otherwise> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrBar"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrTop"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrLeft"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrBottom"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrRight"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:text>padding:</xsl:text> | |
<xsl:variable name="topPad" | |
select="substring-before(substring-after(substring-after(substring-after($pr.bdrTop,$sep2),$sep2),$sep2),$sep2)"/> | |
<xsl:variable name="rightPad" | |
select="substring-before(substring-after(substring-after(substring-after($pr.bdrRight,$sep2),$sep2),$sep2),$sep2)"/> | |
<xsl:variable name="bottomPad" | |
select="substring-before(substring-after(substring-after(substring-after($pr.bdrBottom,$sep2),$sep2),$sep2),$sep2)"/> | |
<xsl:variable name="leftPad" | |
select="substring-before(substring-after(substring-after(substring-after($pr.bdrLeft,$sep2),$sep2),$sep2),$sep2)"/> | |
<xsl:choose> | |
<xsl:when test="$topPad = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$topPad"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="$rightPad = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$rightPad"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="$bottomPad = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bottomPad"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text> </xsl:text> | |
<xsl:choose> | |
<xsl:when test="$leftPad = ''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$leftPad"/>pt | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
</xsl:attribute> | |
<xsl:apply-templates | |
select="($ns.content)[position() >= $i.bdrRange.start and position() < $i.bdrRange.end]"> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="pr.bdrBetween" select="$pr.bdrBetween"/> | |
</xsl:apply-templates> | |
</div> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ApplyArgs"> | |
<xsl:param name="value"/> | |
<xsl:variable name="attributeName" select="normalize-space(substring-before($value,'='))"/> | |
<xsl:variable name="afterName" select="concat(substring-after($value,'='),' ')"/> | |
<xsl:if test="not($attributeName = '')"> | |
<xsl:attribute name="{$attributeName}"> | |
<xsl:value-of select="normalize-space(translate(substring-before($afterName,' '),'"',' '))"/> | |
</xsl:attribute> | |
<xsl:call-template name="ApplyArgs"> | |
<xsl:with-param name="value" select="normalize-space(substring-after($afterName,' '))"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:scriptAnchor"> | |
<script> | |
<xsl:apply-templates select="*" mode="scriptAnchor"/> | |
</script> | |
</xsl:template> | |
<xsl:template match="w:args" mode="scriptAnchor"> | |
<xsl:call-template name="ApplyArgs"> | |
<xsl:with-param name="value" select="."/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="w:language" mode="scriptAnchor"> | |
<xsl:attribute name="language"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:template> | |
<xsl:template match="w:scriptId" mode="scriptAnchor"> | |
<xsl:attribute name="id"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:template> | |
<xsl:template match="w:scriptText" mode="scriptAnchor"> | |
<xsl:value-of disable-output-escaping="yes" select="."/> | |
</xsl:template> | |
<xsl:template match="*" mode="scriptAnchor"/> | |
<xsl:template match="w:applet"> | |
<applet> | |
<xsl:apply-templates select="*" mode="applet"/> | |
</applet> | |
</xsl:template> | |
<xsl:template match="w:appletText" mode="applet"> | |
<xsl:value-of disable-output-escaping="yes" select="."/> | |
</xsl:template> | |
<xsl:template match="w:args" mode="applet"> | |
<xsl:call-template name="ApplyArgs"> | |
<xsl:with-param name="value" select="."/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="*" mode="applet"/> | |
<xsl:template match="w:txbxContent"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="WX:pBdrGroup"> | |
<xsl:variable name="dxaLeft" select="WX:margin-left/@WX:val"/> | |
<xsl:variable name="dxaRight" select="WX:margin-right/@WX:val"/> | |
<xsl:variable name="ns.borders" select="WX:borders"/> | |
<xsl:variable name="bdrStyles"> | |
<xsl:if test="$ns.borders/WX:top"> | |
<xsl:text>border-top:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:top/@WX:val"/> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="$ns.borders/WX:top/@WX:bdrwidth div 20"/> | |
<xsl:text>pt </xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="$ns.borders/WX:top/@WX:color"/> | |
</xsl:call-template> | |
<xsl:text>;padding-top:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:top/@WX:space"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$ns.borders/WX:bottom"> | |
<xsl:text>;border-bottom:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:bottom/@WX:val"/> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="$ns.borders/WX:bottom/@WX:bdrwidth div 20"/> | |
<xsl:text>pt </xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="$ns.borders/WX:bottom/@WX:color"/> | |
</xsl:call-template> | |
<xsl:text>;padding-bottom:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:bottom/@WX:space"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$ns.borders/WX:right"> | |
<xsl:text>;border-right:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:right/@WX:val"/> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="$ns.borders/WX:right/@WX:bdrwidth div 20"/> | |
<xsl:text>pt </xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="$ns.borders/WX:right/@WX:color"/> | |
</xsl:call-template> | |
<xsl:text>;padding-right:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:right/@WX:space"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$ns.borders/WX:left"> | |
<xsl:text>;border-left:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:left/@WX:val"/> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="$ns.borders/WX:left/@WX:bdrwidth div 20"/> | |
<xsl:text>pt </xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="$ns.borders/WX:left/@WX:color"/> | |
</xsl:call-template> | |
<xsl:text>;padding-left:</xsl:text> | |
<xsl:value-of select="$ns.borders/WX:left/@WX:space"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$dxaLeft"> | |
<xsl:text>;margin-left:</xsl:text> | |
<xsl:value-of select="$dxaLeft div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$dxaRight"> | |
<xsl:text>;margin-right:</xsl:text> | |
<xsl:value-of select="$dxaRight div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="WX:shd"> | |
<xsl:text>;background-color:</xsl:text> | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="WX:shd/@WX:bgcolor"/> | |
<xsl:with-param name="autoColor" select="$autoColor_bg"/> | |
<xsl:with-param name="transparentColor">transparent</xsl:with-param> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="WX:apo"> | |
<table cellspacing="0" cellpadding="0" hspace="0" vspace="0"> | |
<xsl:choose> | |
<xsl:when test="WX:apo/WX:jc/@WX:val"> | |
<xsl:attribute name="align"> | |
<xsl:value-of select="WX:apo/WX:jc/@WX:val"/> | |
</xsl:attribute> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:attribute name="align"> | |
<xsl:text>left</xsl:text> | |
</xsl:attribute> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:attribute name="style"> | |
<xsl:if test="WX:apo/WX:width/@WX:val"> | |
<xsl:text>;width:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:width/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="WX:apo/WX:height/@WX:val"> | |
<xsl:text>;height:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:height/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
</xsl:attribute> | |
<tr> | |
<td valign="top" align="left"> | |
<xsl:attribute name="style"> | |
<xsl:if test="WX:apo/WX:vertFromText/@WX:val"> | |
<xsl:text>;padding-top:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:vertFromText/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
<xsl:text>;padding-bottom:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:vertFromText/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="WX:apo/WX:horizFromText/@WX:val"> | |
<xsl:text>;padding-right:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:horizFromText/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
<xsl:text>;padding-left:</xsl:text> | |
<xsl:value-of select="WX:apo/WX:horizFromText/@WX:val div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
</xsl:attribute> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$bdrStyles"/> | |
</xsl:attribute> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:if test="$dxaLeft"> | |
<xsl:text>;margin-left:-</xsl:text> | |
<xsl:value-of select="$dxaLeft div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$dxaRight"> | |
<xsl:text>;margin-right:-</xsl:text> | |
<xsl:value-of select="$dxaRight div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
</xsl:attribute> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
</xsl:call-template> | |
</div> | |
</div> | |
</td> | |
</tr> | |
</table> | |
</xsl:when> | |
<xsl:otherwise> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$bdrStyles"/> | |
</xsl:attribute> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:if test="$dxaLeft"> | |
<xsl:text>;margin-left:-</xsl:text> | |
<xsl:value-of select="$dxaLeft div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
<xsl:if test="$dxaRight"> | |
<xsl:text>;margin-right:-</xsl:text> | |
<xsl:value-of select="$dxaRight div 20"/> | |
<xsl:text>pt</xsl:text> | |
</xsl:if> | |
</xsl:attribute> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
</xsl:call-template> | |
</div> | |
</div> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- by sunil for positioning--> | |
<xsl:template match="svg"> | |
<xsl:apply-templates select="*"/> | |
<div> | |
<xsl:attribute name="style"> | |
<xsl:text> padding-bottom:5px;</xsl:text> | |
</xsl:attribute> | |
</div> | |
</xsl:template> | |
<!--<xsl:template match="br"> | |
<br></br> | |
</xsl:template>--> | |
<xsl:template match="w:br"> | |
<br> | |
<xsl:attribute name="clear"> | |
<xsl:choose> | |
<xsl:when test="@w:clear"> | |
<xsl:value-of select="@w:clear"/> | |
</xsl:when> | |
<xsl:otherwise>all</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
<xsl:if test="@w:type = 'page'"> | |
<xsl:attribute name="style">page-break-before:always</xsl:attribute> | |
</xsl:if> | |
</br> | |
</xsl:template> | |
<xsl:template match="w:instrText"> | |
</xsl:template> | |
<xsl:template match="w:delText"> | |
<xsl:if test="/w:document/w:settings/w:trackRevisions"> | |
<del> | |
<xsl:value-of select="."/> | |
</del> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:r//w:t[../w:rPr/WX:sym]"> | |
<xsl:variable name="p.SymHint" select="../w:rPr/WX:sym"/> | |
<span> | |
<xsl:attribute name="style"> | |
font-family:<xsl:value-of select="$p.SymHint/@WX:font"/> | |
</xsl:attribute> | |
<xsl:choose> | |
<xsl:when test="starts-with($p.SymHint/@WX:char, 'F0')"> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of | |
select="substring-after($p.SymHint/@WX:char, 'F0')"/><xsl:text>;</xsl:text> | |
</xsl:when> | |
<xsl:when test="starts-with($p.SymHint/@WX:char, 'f0')"> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of | |
select="substring-after($p.SymHint/@WX:char, 'f0')"/><xsl:text>;</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of | |
select="$p.SymHint/@WX:char"/><xsl:text>;</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</span> | |
</xsl:template> | |
<xsl:template match="w:pict"> | |
<span> | |
<xsl:value-of select="."/> | |
</span> | |
<br/> | |
</xsl:template> | |
<xsl:template match="w:t"> | |
<xsl:value-of select="."/> | |
</xsl:template> | |
<xsl:template match="w:sym"> | |
<span> | |
<xsl:attribute name="style"> | |
font-family:<xsl:value-of select="@w:font"/> | |
</xsl:attribute> | |
<xsl:choose> | |
<xsl:when test="starts-with(@w:char, 'F0')"> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of | |
select="substring-after(@w:char, 'F0')"/><xsl:text>;</xsl:text> | |
</xsl:when> | |
<xsl:when test="starts-with(@w:char, 'f0')"> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of | |
select="substring-after(@w:char, 'f0')"/><xsl:text>;</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="yes">&</xsl:text>#x<xsl:value-of select="@w:char"/><xsl:text>;</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</span> | |
</xsl:template> | |
<xsl:template name="OutputTlcChar"> | |
<xsl:param name="count" select="0"/> | |
<xsl:param name="tlc" select="' '"/> | |
<xsl:value-of select="$tlc"/> | |
<xsl:if test="$count > 1"> | |
<xsl:call-template name="OutputTlcChar"> | |
<xsl:with-param name="count" select="$count - 1"/> | |
<xsl:with-param name="tlc" select="$tlc"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:tab"> | |
<!-- Parwati:Commented to fix tab indentation. | |
<xsl:call-template name="OutputTlcChar"> | |
<xsl:with-param name="tlc"> | |
<xsl:text disable-output-escaping="yes"> </xsl:text> | |
</xsl:with-param> | |
<xsl:with-param name="count" select="12"/> | |
</xsl:call-template>--> | |
<!--by default tab value will be 5 inch--> | |
<span> | |
<xsl:attribute name="style"> | |
<xsl:choose> | |
<xsl:when test="./@w:pos"> | |
<xsl:choose> | |
<xsl:when test="./@w:pos and ./@w:val = 'left'"> | |
margin-left: | |
<xsl:choose> | |
<xsl:when test="@w:pos < 0"> | |
<xsl:value-of select="@w:pos div -20"/>pt; | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="@w:pos div 20"/>pt; | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="./@w:pos and ./@w:val = 'right'"> | |
<xsl:choose> | |
<xsl:when test="@w:pos < 0"> | |
<xsl:value-of select="@w:pos div -20"/>pt; | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="@w:pos div 20"/>pt; | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
margin-left:26pt | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
</span> | |
</xsl:template> | |
<!-- Parwati modified to correct tab indentation--> | |
<xsl:template match="w:softHyphen"> | |
<xsl:text>­</xsl:text> | |
</xsl:template> | |
<xsl:template match="w:noBreakHyphen"> | |
<xsl:text disable-output-escaping="yes">&#8209;</xsl:text> | |
</xsl:template> | |
<xsl:template name="DisplayRContent"> | |
<xsl:choose> | |
<xsl:when test="w:numPr"> | |
<xsl:choose> | |
<xsl:when test="w:numPr[1]/w:ilvl/@isBullet"> | |
<xsl:text disable-output-escaping="yes">&#8226;&#160;</xsl:text> | |
</xsl:when> | |
<xsl:when test="w:numPr[1]/w:ilvl/@numFont"> | |
<span> | |
<xsl:attribute name="style"> | |
font-family:<xsl:value-of select="w:numPr[1]/w:ilvl/@numFont"/> | |
</xsl:attribute> | |
<xsl:value-of select="w:numPr[1]/w:ilvl/@numString"/> | |
</span> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="w:numPr[1]/w:ilvl/@numString"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:if test="w:numPr[1]/WX:t/@WX:wTabAfter"> | |
<span> | |
<xsl:attribute name="style"> | |
<xsl:text>padding-left:</xsl:text> | |
<xsl:value-of select="(w:numPr[1]/WX:t/@WX:wTabAfter div 20)"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:attribute> | |
</span> | |
</xsl:if> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:apply-templates select="*"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ApplyRPr.once"> | |
<xsl:param name="rStyleId"/> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:variable name="b.complexScript"> | |
<xsl:choose> | |
<xsl:when test="w:rPr[1]/w:cs[1] or w:rPr[1]/w:rtl[1]"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:if test="$b.complexScript = $on"> | |
<xsl:variable name="suffix.complexScript">-CS</xsl:variable> | |
<xsl:variable name="b.font-weight" select="substring($prsR,$iBCs,1)"/> | |
<xsl:variable name="b.font-style" select="substring($prsR,$iICs,1)"/> | |
<xsl:variable name="pr.sz" select="substring($prsR,$ISzCs)"/> | |
<xsl:choose> | |
<xsl:when test="$b.font-style = $on">font-style:italic;</xsl:when> | |
<xsl:otherwise>font-style:normal;</xsl:otherwise> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="$b.font-weight = $on">font-weight:bold;</xsl:when> | |
<xsl:otherwise>font-weight:normal;</xsl:otherwise> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="$pr.sz = ''">font-size:12pt;</xsl:when> | |
<xsl:otherwise> | |
font-size:<xsl:value-of select="$pr.sz div 2"/>pt; | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
<xsl:if test="not($b.bidi = '')"> | |
<xsl:choose> | |
<xsl:when test="$b.bidi = $on and not($b.complexScript = $on)">direction:ltr;</xsl:when> | |
<xsl:when test="not($b.bidi = $on) and $b.complexScript = $on">direction:rtl;</xsl:when> | |
</xsl:choose> | |
</xsl:if> | |
<xsl:if test="substring($prsR,$iEmbossImprint,1) = $on">color:gray;</xsl:if> | |
<xsl:variable name="b.line-through" select="substring($prsR,$iStrikeDStrike,1)"/> | |
<xsl:variable name="b.underline" select="substring($prsR,$iU_Em,1)"/> | |
<xsl:choose> | |
<xsl:when test="$b.line-through = $off and $b.underline = $off">text-decoration:none;</xsl:when> | |
<xsl:when test="$b.line-through = $on and $b.underline = $on">text-decoration:line-through underline; | |
</xsl:when> | |
<xsl:when test="$b.line-through = $on">text-decoration: line-through;</xsl:when> | |
<xsl:when test="$b.underline = $on">text-decoration: underline;</xsl:when> | |
</xsl:choose> | |
<xsl:variable name="fSup" select="substring($prsR,$iSup,1)"/> | |
<xsl:variable name="fSub" select="substring($prsR,$iSub,1)"/> | |
<xsl:choose> | |
<xsl:when test="$fSup = $on and $fSub = $on">vertical-align:baseline;</xsl:when> | |
<xsl:when test="$fSub = $on">vertical-align:sub;</xsl:when> | |
<xsl:when test="$fSup = $on">vertical-align:super;</xsl:when> | |
</xsl:choose> | |
<xsl:if test="not($rStyleId='CommentReference')"> | |
<xsl:if test="substring($prsR,$iVanishWebHidden,1) = $on">display:none;</xsl:if> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyRPr.class"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sParaStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sParaStyleBase"> | |
<xsl:call-template name="RecursiveApplyRPr.class"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyRPr.class"/> | |
</xsl:template> | |
<xsl:template name="ApplyRPr.class"> | |
<xsl:for-each select="w:rPr[1]"> | |
<xsl:choose> | |
<xsl:when test="w:highlight"> | |
background-color: | |
<xsl:call-template name="ConvColor"> | |
<xsl:with-param name="value" select="w:hightlight[1]/@w:val"/> | |
</xsl:call-template> | |
<xsl:value-of select="value"/>; | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each select="w:shd[1]"> | |
<xsl:call-template name="ApplyShd"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:apply-templates select="*" mode="rpr"/> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template match="w:highlight" mode="rpr"> | |
background: | |
<xsl:call-template name="ConvColor"> | |
<xsl:with-param name="value" select="@w:val"/> | |
</xsl:call-template> | |
<xsl:value-of select="value"/>; | |
</xsl:template> | |
<xsl:template match="w:color" mode="rpr"> | |
color: | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="@w:val"/> | |
</xsl:call-template> | |
; | |
</xsl:template> | |
<xsl:template match="w:rFonts" mode="rpr"> | |
font-family:<xsl:value-of select="@w:ascii"/>; | |
</xsl:template> | |
<xsl:template match="w:smallCaps" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">font-variant:normal;</xsl:when> | |
<xsl:otherwise>font-variant:small-caps;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:eastAsianLayout" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:vert = 'on'">layout-flow:horizontal;</xsl:when> | |
<xsl:when test="@w:vert-compress = 'on'">layout-flow:horizontal;</xsl:when> | |
<xsl:when test="@w:vert = 'off' or @w:vert-compress = 'off'">layout-flow:normal;</xsl:when> | |
</xsl:choose> | |
<xsl:if test="@w:combine = 'lines'">text-combine:lines;</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:spacing" mode="rpr"> | |
letter-spacing:<xsl:value-of select="@w:val div 20"/>pt; | |
</xsl:template> | |
<xsl:template match="w:position" mode="rpr"> | |
<xsl:variable name="fDropCap"> | |
<xsl:value-of select="ancestor::w:p[1]/w:pPr/w:framePr/@w:drop-cap"/> | |
</xsl:variable> | |
<xsl:if test="$fDropCap=''"> | |
<xsl:text>position:relative;top:</xsl:text> | |
<xsl:value-of select="@w:val div -2"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:fitText" mode="rpr"> | |
text-fit:<xsl:value-of select="@w:val div 20"/>pt; | |
</xsl:template> | |
<xsl:template match="w:shadow" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">text-shadow:none;</xsl:when> | |
<xsl:otherwise>text-shadow:0.2em 0.2em;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:caps" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">text-transform:none;</xsl:when> | |
<xsl:otherwise>text-transform:uppercase;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:sz" mode="rpr"> | |
font-size:<xsl:value-of select="@w:val div 2"/>pt; | |
</xsl:template> | |
<xsl:template match="w:b" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">font-weight:normal;</xsl:when> | |
<xsl:otherwise>font-weight:bold;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:i" mode="rpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">font-style:normal;</xsl:when> | |
<xsl:otherwise>font-style:italic;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="*" mode="rpr"/> | |
<xsl:template name="RecursivePrsUpdateRPr"> | |
<xsl:param name="prsR"/> | |
<xsl:param name="rStyleId"/> | |
<xsl:variable name="myStyle" select="($nsStyles[@w:styleId=$rStyleId])[1]"/> | |
<xsl:variable name="prsR.updated"> | |
<xsl:choose> | |
<xsl:when test="$myStyle/w:basedOn"> | |
<xsl:call-template name="RecursivePrsUpdateRPr"> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="rStyleId" select="$myStyle/w:basedOn/@w:val"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$prsR"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$myStyle"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="PrsGetThemeStyle"> | |
<xsl:param name="prsR"/> | |
<xsl:param name="runTextClass" select="$textClassAscii"/> | |
<xsl:if test="not($runTextClass='')"> | |
<xsl:variable name="themeStyle"> | |
<xsl:choose> | |
<xsl:when test="$runTextClass=$textClassAscii"> | |
<xsl:value-of select="substring($prsR,$iAsciiTheme,1)"/> | |
</xsl:when> | |
<xsl:when test="$runTextClass=$textClassAnsi"> | |
<xsl:value-of select="substring($prsR,$iAnsiTheme,1)"/> | |
</xsl:when> | |
<xsl:when test="$runTextClass=$textClassEA"> | |
<xsl:value-of select="substring($prsR,$iEATheme,1)"/> | |
</xsl:when> | |
<xsl:when test="$runTextClass=$textClassCS"> | |
<xsl:value-of select="substring($prsR,$iCSTheme,1)"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$themeStyle=$minorAscii"> | |
<xsl:value-of select="$minorAsciiTheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$majorAscii"> | |
<xsl:value-of select="$majorAsciiTheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$minorAnsi"> | |
<xsl:value-of select="$minorAnsiTheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$majorAnsi"> | |
<xsl:value-of select="$majorAnsiTheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$minorEA"> | |
<xsl:value-of select="$minorEATheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$majorEA"> | |
<xsl:value-of select="$majorEATheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$minorCS"> | |
<xsl:value-of select="$minorCSTheme"/> | |
</xsl:when> | |
<xsl:when test="$themeStyle=$majorCS"> | |
<xsl:value-of select="$majorCSTheme"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="DisplayR"> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="runStyleName"/> | |
<xsl:variable name="rStyleId" select="string(w:rPr/w:rStyle/@w:val)"/> | |
<xsl:variable name="prsR.updated"> | |
<xsl:variable name="prsR.updated1"> | |
<xsl:call-template name="RecursivePrsUpdateRPr"> | |
<xsl:with-param name="rStyleId" select="$rStyleId"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated2"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="prsR" select="$prsR.updated1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsRTemp3"> | |
<xsl:call-template name="PrsGetListPr"> | |
<xsl:with-param name="type" select="$prrUpdateRPr"/> | |
<xsl:with-param name="prsR" select="$prsR.updated2"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$prsRTemp3=''"> | |
<xsl:value-of select="$prsR.updated2"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$prsRTemp3"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="themeStyle"> | |
<xsl:call-template name="PrsGetThemeStyle"> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
<xsl:with-param name="runTextClass" select="string(./@textClass)"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="pr.listSuff"> | |
<xsl:call-template name="PrsGetListPr"> | |
<xsl:with-param name="type" select="$prrListSuff"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="styleMod"> | |
<xsl:call-template name="ApplyRPr.class"/> | |
<xsl:variable name="numId" select="w:numPr/w:numId/@w:val"/> | |
<xsl:variable name="ilvl" select="w:numPr/w:ilvl/@w:val"/> | |
<xsl:variable name="ilstDef" select="$ndLists/w:num[@w:numId=$numId]/w:abstractNumId/@w:val"/> | |
<xsl:variable name="abstractNum" select="$ndLists/w:abstractNum[@w:abstractNumId=$ilstDef]"/> | |
<xsl:variable name="isBullets"> | |
<xsl:for-each select="w:numPr[1]"> | |
<xsl:call-template name="IsListBullet"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:if test="not($isBullets=$on)"> | |
<xsl:if test="$abstractNum/w:lvl[@w:ilvl=$ilvl]/w:rPr/w:rFonts/@w:ascii"> | |
<xsl:apply-templates select="w:numPr[1]/WX:font[1]" mode="rpr"/> | |
</xsl:if> | |
<xsl:call-template name="PrsGetListPr"> | |
<xsl:with-param name="type" select="$prrApplyRPr"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyRPr.once"> | |
<xsl:with-param name="rStyleId" select="$rStyleId"/> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
</xsl:call-template> | |
</xsl:if> | |
<xsl:if test="$isBullets=$on or ancestor::w:rt"> | |
<xsl:text>font-style:normal;text-decoration:none;font-weight:normal;</xsl:text> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$rStyleId='' and $styleMod=''"> | |
<xsl:choose> | |
<xsl:when test="not($themeStyle='')"> | |
<span> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$themeStyle"/> | |
<xsl:if test="not($runStyleName='')"> | |
<xsl:value-of select="' '"/> | |
<xsl:value-of select="$runStyleName"/> | |
</xsl:if> | |
</xsl:attribute> | |
<xsl:call-template name="DisplayRContent"/> | |
</span> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="DisplayRContent"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:if test="$pr.listSuff = $prListSuff_space"> | |
<xsl:text> </xsl:text> | |
</xsl:if> | |
</xsl:when> | |
<xsl:otherwise> | |
<span> | |
<!-- <xsl:if test="not($rStyleId='')">--> | |
<xsl:attribute name="class"> | |
<xsl:if test="not($themeStyle='')"> | |
<xsl:value-of select="$themeStyle"/> | |
<xsl:value-of select="' '"/> | |
</xsl:if> | |
<xsl:value-of select="$rStyleId"/> | |
<xsl:value-of select="$charStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:if test="not($styleMod='')"> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$styleMod"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:choose> | |
<xsl:when | |
test="contains($styleMod, 'vertical-align:super') or contains($styleMod, 'vertical-align:sub')"> | |
<span> | |
<xsl:attribute name="style">font-size:smaller;</xsl:attribute> | |
<xsl:call-template name="DisplayRContent"/> | |
</span> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="DisplayRContent"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</span> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:sdt"> | |
</xsl:template> | |
<xsl:template match="w:r"> | |
<xsl:param name="b.bidi" select="''"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:param name="runStyleName"/> | |
<!--<xsl:if test="not(w:fldChar or w:instrText)">--> | |
<xsl:if test="not(w:fldChar or w:instrText)"> | |
<xsl:variable name="instrText" select="preceding-sibling::w:r[w:instrText][1]"/> | |
<xsl:variable name="nInstrText" select="normalize-space(concat($instrText, ' -'))"/> | |
<xsl:variable name="instruction" select="substring-before($nInstrText, ' ')"/> | |
<xsl:choose> | |
<xsl:when test="translate($instruction, $lowercase, $uppercase)='HYPERLINK'"> | |
<a> | |
<!--<xsl:template match="a"> | |
<xsl:variable name="anchor-texts"> | |
<xsl:value-of select="."/> | |
</xsl:variable> | |
<xsl:apply-templates/> | |
<xsl:if test="@href!=$anchor-texts"> | |
<fo:inline> | |
<xsl:text>(</xsl:text> | |
<xsl:value-of select="@href"/> | |
<xsl:text>)</xsl:text> | |
</fo:inline> | |
</xsl:if> | |
</xsl:template>--> | |
<xsl:variable name="href"> | |
<xsl:choose> | |
<xsl:when test="contains($nInstrText,'\l')"> | |
#<xsl:value-of | |
select="translate(substring-before(substring-after($nInstrText, '\l '),' '),'"', '')"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of | |
select="translate(substring-before(substring-after($nInstrText, concat($instruction, ' ')),' '),'"', '')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:if test="not(href='')"> | |
<xsl:attribute name="href"> | |
<xsl:value-of select="$href"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:if test="contains($nInstrText,'\t') or contains($nInstrText, '\n')"> | |
<xsl:attribute name="target"> | |
<xsl:choose> | |
<xsl:when test="contains($nInstrText, '\n')"> | |
<xsl:text>_new</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of | |
select="translate(substring-before(substring-after($nInstrText, '\t '),' '),'"', '')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:if test="contains($nInstrText,'\o')"> | |
<xsl:attribute name="title"> | |
<xsl:value-of | |
select="substring-before(substring-after($nInstrText, '\o "'),'"')"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:call-template name="DisplayR"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</a> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="DisplayR"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<!-- Template added to render columns by Parwati --> | |
<xsl:template name="ColumnRender"> | |
<xsl:param name="page"/> | |
<xsl:param name="colNum"/> | |
<xsl:param name="style"/> | |
<xsl:param name="CoverPage"/> | |
<xsl:param name="Align"/> | |
<xsl:text disable-output-escaping="yes"></span></xsl:text> | |
<xsl:text disable-output-escaping="yes"></p></xsl:text> | |
<xsl:text disable-output-escaping="yes"></td></xsl:text> | |
<xsl:if test="$page = $on"> | |
<xsl:text disable-output-escaping="yes"></tr></xsl:text> | |
<xsl:text disable-output-escaping="yes"></table></xsl:text> | |
<xsl:if test="$CoverPage = $on"> | |
<xsl:text disable-output-escaping="yes"><div style="top:1010px;left:0px;position:absolute;visibility:show;"></xsl:text> | |
</xsl:if> | |
<xsl:text disable-output-escaping="yes"><table cellpadding="5px"></xsl:text> | |
<xsl:text disable-output-escaping="yes"><tr></xsl:text> | |
</xsl:if> | |
<xsl:text disable-output-escaping="yes"><td valign="top" width="</xsl:text> | |
<xsl:value-of select="100 div $colNum"/> | |
<xsl:text disable-output-escaping="yes">%"></xsl:text> | |
<xsl:text disable-output-escaping="yes"><p class="</xsl:text> | |
<xsl:variable name="pStyleId"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:variable> | |
<xsl:value-of select="$pStyleId"/> | |
<xsl:value-of select="$paraStyleSuffix"/> | |
<xsl:text>" style="text-align:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="$Align = 'both'"> | |
<xsl:text>justify</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$Align"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
<xsl:value-of select="$style"/> | |
<xsl:text disable-output-escaping="yes">"></xsl:text> | |
<xsl:text disable-output-escaping="yes"><span></xsl:text> | |
</xsl:template> | |
<!-- End to template for column rendering --> | |
<xsl:template | |
match="w:r[count(preceding-sibling::w:r[w:fldChar/@w:fldCharType='begin']) = count(preceding-sibling::w:r[w:fldChar/@w:fldCharType='end'])]"> | |
<xsl:param name="b.bidi" select="''"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:param name="runStyleName"/> | |
<!-- Changed For rendering column by Parwati--> | |
<!-- <xsl:if test="//w:body//w:sectPr//w:cols[@w:num] | //w:body/w:p/w:pPr/w:sectPr/w:cols[@w:num]"> | |
<xsl:variable name="pageEnd"> | |
<xsl:choose> | |
<xsl:when test="w:lastRenderedPageBreak[@pageNum]"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> End of Change by Parwati --> | |
<xsl:variable name="coverpage"> | |
<xsl:choose> | |
<xsl:when test="./w:lastRenderedPageBreak/@Coverpage"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="columnNo"> | |
<xsl:value-of select="./w:lastRenderedPageBreak/@colNum"/> | |
</xsl:variable> | |
<xsl:variable name="columnCount"> | |
<xsl:value-of select="./w:lastRenderedPageBreak/@colCount"/> | |
</xsl:variable> | |
<xsl:variable name="pStyleId"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:variable> | |
<xsl:variable name="sParaStyleName" select="($nsStyles[@w:styleId=$pStyleId])[1]"/> | |
<xsl:variable name="b.bidi1"> | |
<xsl:choose> | |
<xsl:when test="parent::w:pPr[1]/w:rPr[1]/w:rtl[1]"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$sParaStyleName"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsP.updated1"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$sParaStyleName"/> | |
<xsl:with-param name="prsP" select="$prsPDefault"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="prsP" select="$prsP.updated1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsPAccum" select="''"/> | |
<xsl:variable name="styleMod"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$sParaStyleName"> | |
<xsl:call-template name="RecursiveApplyPPr.many"/> | |
</xsl:for-each> | |
<xsl:call-template name="ApplyPPr.many"> | |
<xsl:with-param name="cxtSpacing"> | |
<xsl:variable name="cspacing" select="$sParaStyleName/w:pPr[1]/w:contextualSpacing[1]"/> | |
<xsl:if test="$cspacing and not($cspacing/@w:val = 'off')"> | |
<xsl:if test="following-sibling::*[1]/w:pPr[1]/w:pStyle[1]/@w:val = $pStyleId"> | |
<xsl:value-of select="$cxtSpacing_top"/> | |
</xsl:if> | |
<xsl:if test="preceding-sibling::*[1]/w:pPr[1]/w:pStyle[1]/@w:val = $pStyleId"> | |
<xsl:value-of select="$cxtSpacing_bottom"/> | |
</xsl:if> | |
</xsl:if> | |
</xsl:with-param> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyPPr.class"/> | |
<xsl:variable name="bdrBetween" select="''"/> | |
<xsl:call-template name="ApplyPPr.once"> | |
<xsl:with-param name="b.bidi" select="$b.bidi1"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="i.bdrRange.this" select="position()"/> | |
<xsl:with-param name="i.bdrRange.last" select="last()"/> | |
<xsl:with-param name="pr.bdrBetween" select="$bdrBetween"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="alignment"> | |
<xsl:if test="parent::*[1]/w:pPr/w:jc"> | |
<xsl:value-of select="parent::*[1]/w:pPr/w:jc/@w:val"/> | |
</xsl:if> | |
</xsl:variable> | |
<!-- Added for column rendering by Parwati --> | |
<!-- <xsl:if test="//w:body//w:sectPr//w:cols[@w:num] | //w:body/w:p/w:pPr/w:sectPr/w:cols[@w:num] | //w:body//w:sdt//w:sdtContent"> | |
<xsl:if test="descendant::*[name()='w:lastRenderedPageBreak'][1]/@colNum"> | |
<xsl:call-template name="ColumnRender"> | |
<xsl:with-param name="page" select="$pageEnd"></xsl:with-param> | |
<xsl:with-param name="colNum" select="$columnNo"></xsl:with-param> | |
<xsl:with-param name="style" select="$styleMod"></xsl:with-param> | |
<xsl:with-param name="CoverPage" select="$coverpage"></xsl:with-param> | |
<xsl:with-param name="Align" select="$alignment"></xsl:with-param> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:if> | |
</xsl:if> --> | |
<!-- End of change by Parwati --> | |
<xsl:call-template name="DisplayR"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ColumnAddition"> <!-- This is template is added by Parwati to handle columns --> | |
<xsl:param name="totalColumns"></xsl:param> | |
<xsl:text disable-output-escaping="yes"></td></xsl:text> | |
<xsl:text disable-output-escaping="yes"><td colspan="</xsl:text> | |
<xsl:value-of select="$totalColumns"/> | |
<xsl:text disable-output-escaping="yes">"></xsl:text> | |
</xsl:template> | |
<xsl:template match="w:pPr"> | |
<xsl:param name="b.bidi" select="''"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:call-template name="DisplayR"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="DisplayHlink"> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<a style="text-decoration:none;"> | |
<xsl:variable name="href"> | |
<xsl:for-each select="@w:dest"> | |
<xsl:value-of select="."/> | |
</xsl:for-each> | |
<xsl:choose> | |
<xsl:when test="@w:anchor">#<xsl:value-of select="@w:anchor"/> | |
</xsl:when> | |
<xsl:when test="@w:bookmark">#<xsl:value-of select="@w:bookmark"/> | |
</xsl:when> | |
<xsl:when test="@w:arbLocation"># | |
<xsl:value-of select="@w:arbLocation"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:if test="not(href='')"> | |
<xsl:attribute name="href"> | |
<xsl:value-of select="$href"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:for-each select="@w:tgtFrame"> | |
<xsl:attribute name="target"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:for-each> | |
<xsl:for-each select="@w:tooltip"> | |
<xsl:attribute name="title"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:for-each> | |
<xsl:call-template name="DisplayPContent"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</a> | |
</xsl:template> | |
<xsl:template match="w:hlink | w:hyperlink"> | |
<xsl:param name="b.bidi" select="''"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:call-template name="DisplayHlink"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyPPr.once"> | |
<xsl:param name="i.bdrRange.this"/> | |
<xsl:param name="i.bdrRange.last"/> | |
<xsl:param name="pr.bdrBetween"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="b.bidi"/> | |
<xsl:if test="not($i.bdrRange.this = $i.bdrRange.last)"> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$pr.bdrBetween"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
</xsl:if> | |
<xsl:if test="not($pr.bdrBetween = '')"> | |
<xsl:choose> | |
<xsl:when test="$i.bdrRange.this = 1">padding:0 0 1pt;</xsl:when> | |
<xsl:when test="$i.bdrRange.this = i.bdrRange.last">padding:1pt 0 0;</xsl:when> | |
<xsl:otherwise>padding:1pt 0 1pt;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
<xsl:choose> | |
<xsl:when test="$b.bidi = $off">direction:ltr;unicode-bidi:normal;</xsl:when> | |
<xsl:when test="$b.bidi = $on">direction:rtl;unicode-bidi:embed;text-align:right;</xsl:when> | |
</xsl:choose> | |
<xsl:variable name="nInd" select="substring($prsP,$iInd)"/> | |
<xsl:variable name="pr.listInd"> | |
<xsl:for-each select="w:pPr"> | |
<xsl:call-template name="PrsGetListPr"> | |
<xsl:with-param name="type" select="$prrListInd"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:if test="not($nInd='' and $pr.listInd='')"> | |
<xsl:variable name="nInd.left" select="substring-before($nInd,$sep2)"/> | |
<xsl:variable name="temp1" select="substring-after($nInd,$sep2)"/> | |
<xsl:variable name="nInd.leftChars" select="substring-before($temp1,$sep2)"/> | |
<xsl:variable name="temp2" select="substring-after($temp1,$sep2)"/> | |
<xsl:variable name="nInd.right" select="substring-before($temp2,$sep2)"/> | |
<xsl:variable name="temp3" select="substring-after($temp2,$sep2)"/> | |
<xsl:variable name="nInd.rightChars" select="substring-before($temp3,$sep2)"/> | |
<xsl:variable name="temp4" select="substring-after($temp3,$sep2)"/> | |
<xsl:variable name="nInd.hanging" select="substring-before($temp4,$sep2)"/> | |
<xsl:variable name="temp5" select="substring-after($temp4,$sep2)"/> | |
<xsl:variable name="nInd.hangingChars" select="substring-before($temp5,$sep2)"/> | |
<xsl:variable name="temp6" select="substring-after($temp5,$sep2)"/> | |
<xsl:variable name="nInd.firstLine" select="substring-before($temp6,$sep2)"/> | |
<xsl:variable name="nInd.firstLineChars" select="substring-after($temp6,$sep2)"/> | |
<xsl:variable name="pr.listInd.left" select="substring-before($pr.listInd,$sep2)"/> | |
<xsl:variable name="temp1a" select="substring-after($pr.listInd,$sep2)"/> | |
<xsl:variable name="pr.listInd.leftChars" select="substring-before($temp1a,$sep2)"/> | |
<xsl:variable name="temp2a" select="substring-after($temp1a,$sep2)"/> | |
<xsl:variable name="pr.listInd.hanging" select="substring-before($temp2a,$sep2)"/> | |
<xsl:variable name="pr.listInd.hangingChars" select="substring-after($temp2a,$sep2)"/> | |
<xsl:variable name="marginSide.before"> | |
margin- | |
<xsl:choose> | |
<xsl:when test="$b.bidi=$on">right</xsl:when> | |
<xsl:otherwise>left</xsl:otherwise> | |
</xsl:choose> | |
: | |
</xsl:variable> | |
<xsl:variable name="marginSide.after"> | |
margin- | |
<xsl:choose> | |
<xsl:when test="$b.bidi=$on">left</xsl:when> | |
<xsl:otherwise>right</xsl:otherwise> | |
</xsl:choose> | |
: | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not($pr.listInd.left = '')"> | |
<xsl:value-of select="$marginSide.before"/><xsl:value-of select="$pr.listInd.left div 20"/>pt; | |
</xsl:when> | |
<xsl:when test="not($pr.listInd.leftChars = '' and $pr.listInd.hangingChars='')"> | |
<xsl:value-of select="$marginSide.before"/> | |
<xsl:variable name="leftchars"> | |
<xsl:choose> | |
<xsl:when test="$pr.listInd.leftChars=''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$pr.listInd.leftChars div 100 * 12"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="hangingchars"> | |
<xsl:choose> | |
<xsl:when test="$pr.listInd.hangingChars=''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$pr.listInd.hangingChars div 100 * 12"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$leftchars + $hangingchars"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:when> | |
<xsl:when test="not($nInd.left = '')"> <!-- Modified by Parwati to handle negative indentation --> | |
<xsl:value-of select="$marginSide.before"/> | |
<xsl:choose> | |
<xsl:when test="$nInd.left < 0"> | |
0pt; | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$nInd.left div 20"/>pt; | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="not($nInd.leftChars = '' and $nInd.hangingChars='')"> | |
<xsl:value-of select="$marginSide.before"/> | |
<xsl:variable name="leftchars"> | |
<xsl:choose> | |
<xsl:when test="$nInd.leftChars=''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$nInd.leftChars div 100"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="hangingchars"> | |
<xsl:choose> | |
<xsl:when test="$nInd.hangingChars=''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$nInd.hangingChars div 100"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:value-of select="$leftchars + $hangingchars"/> | |
<xsl:text>em;</xsl:text> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="not($nInd.right = '')"> | |
<xsl:value-of select="$marginSide.after"/><xsl:value-of select="$nInd.right div 20"/>pt; | |
</xsl:when> | |
<xsl:when test="not($nInd.rightChars = '')"> | |
<xsl:value-of select="$marginSide.after"/><xsl:value-of select="$nInd.rightChars div 100"/>em; | |
</xsl:when> | |
</xsl:choose> | |
<!-- TEXT INDENTATION FOR TABLE MODIFIED BY PRASAHANTH--> | |
<xsl:choose> | |
<xsl:when test="not($nInd.hanging='')"> | |
<xsl:if test="not(../../w:tc)"> | |
text-indent:<xsl:value-of | |
select="$nInd.hanging div 20"/>pt; <!-- - sign before 20 removed by Parwati --> | |
</xsl:if> | |
</xsl:when> | |
<!-- TEXT INDENTATION FOR TABLE MODIFIED BY PRASAHANTH--> | |
<xsl:when test="not($nInd.hangingChars='')"> | |
text-indent:<xsl:value-of select="$nInd.hangingChars div -100"/>em; | |
</xsl:when> | |
<xsl:when test="not($nInd.firstLine='')"> | |
text-indent:<xsl:value-of select="$nInd.firstLine div 20"/>pt; | |
</xsl:when> | |
<xsl:when test="not($nInd.firstLineChars='')"> | |
text-indent:<xsl:value-of select="$nInd.firstLineChars div 100"/>em; | |
</xsl:when> | |
<xsl:when test="not($pr.listInd.hanging='')"> | |
text-indent:<xsl:value-of select="$pr.listInd.hanging div -20"/>pt; | |
</xsl:when> | |
<xsl:when test="not($pr.listInd.hangingChars='')"> | |
text-indent:<xsl:value-of select="$pr.listInd.hangingChars div -100 * 12"/>pt; | |
</xsl:when> | |
</xsl:choose> | |
</xsl:if> | |
<xsl:variable name="fTextAutospaceO" select="substring($prsP,$iTextAutospaceO,1)"/> | |
<xsl:variable name="fTextAutospaceN" select="substring($prsP,$iTextAutospaceN,1)"/> | |
<xsl:choose> | |
<xsl:when test="not($fTextAutospaceN = $off) and $fTextAutospaceO = $off"> | |
text-autospace:ideograph-numeric; | |
</xsl:when> | |
<xsl:when test="not($fTextAutospaceO = $off) and $fTextAutospaceN = $off">text-autospace:ideograph-other; | |
</xsl:when> | |
<xsl:when test="$fTextAutospaceO = $off and $fTextAutospaceN = $off">text-autospace:none;</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ApplyPPr.many"> | |
<xsl:param name="cxtSpacing" select="$cxtSpacing_all"/> | |
<xsl:variable name="spacing" select="w:pPr[1]/w:spacing[1]"/> | |
<xsl:choose> | |
<xsl:when | |
test="($spacing/@w:before-autospacing and not($spacing/@w:before-autospacing = 'off')) or $cxtSpacing = $cxtSpacing_none or $cxtSpacing = $cxtSpacing_bottom"> | |
</xsl:when> | |
<xsl:when test="$spacing/@w:before"> | |
margin-top:<xsl:value-of select="$spacing/@w:before div 20"/>pt; | |
</xsl:when> | |
<xsl:when test="$spacing/@w:before-lines"> | |
margin-top:<xsl:value-of select="$spacing/@w:before-lines *.12"/>pt; | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when | |
test="($spacing/@w:after-autospacing and not($spacing/@w:after-autospacing = 'off')) or $cxtSpacing = $cxtSpacing_none or $cxtSpacing = $cxtSpacing_top"> | |
</xsl:when> | |
<xsl:when test="$spacing/@w:after"> | |
margin-bottom:<xsl:value-of select="$spacing/@w:after div 20"/>pt; | |
</xsl:when> | |
<xsl:when test="$spacing/@w:after-lines"> | |
margin-bottom:<xsl:value-of select="$spacing/@w:after-lines *.12"/>pt; | |
</xsl:when> | |
</xsl:choose> | |
<xsl:for-each select="w:pPr[1]"> | |
<xsl:for-each select="w:snapToGrid[1]"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">layout-grid-mode:char;</xsl:when> | |
<xsl:otherwise>layout-grid-mode:both;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
<xsl:for-each select="w:keepNext[1]"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">page-break-after:auto;</xsl:when> | |
<xsl:otherwise>page-break-after:avoid;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
<xsl:for-each select="w:pageBreakBefore[1]"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">page-break-before:auto;</xsl:when> | |
<xsl:otherwise>page-break-before:always;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyPPr.class"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sParaStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sParaStyleBase"> | |
<xsl:call-template name="RecursiveApplyPPr.class"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyPPr.class"/> | |
</xsl:template> | |
<xsl:template name="ApplyPPr.class"> | |
<xsl:apply-templates select="w:pPr[1]/*" mode="ppr"/> | |
</xsl:template> | |
<xsl:template match="w:shd" mode="ppr"> | |
<xsl:call-template name="ApplyShd"/> | |
</xsl:template> | |
<xsl:template match="WX:shd" mode="ppr"> | |
<xsl:call-template name="ApplyShdHint"/> | |
</xsl:template> | |
<xsl:template match="w:textDirection" mode="ppr"> | |
<xsl:call-template name="ApplyTextDirection"/> | |
</xsl:template> | |
<!-- ID 1 Fix linespacing issue - div from 20 to 10--> | |
<xsl:template match="w:spacing[@w:lineRule or @w:line]" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="not(@w:lineRule) or @w:lineRule = 'exact'or @w:lineRule = 'auto'"> | |
line-height:<xsl:value-of select="@w:line div 10"/>pt; | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:topLinePunct" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">punctuation-trim:none;</xsl:when> | |
<xsl:otherwise>punctuation-trim:leading;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:overflowPunct" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">punctuation-wrap:simple;</xsl:when> | |
<xsl:otherwise>punctuation-wrap:hanging;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:jc" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'left'">text-align:left;</xsl:when> | |
<xsl:when test="@w:val = 'center'">text-align:center;</xsl:when> | |
<xsl:when test="@w:val = 'right'">text-align:right;</xsl:when> | |
<xsl:when test="@w:val = 'both'">text-align:justify;text-justify:inter-ideograph;</xsl:when> | |
<xsl:when test="@w:val = 'distribute'">text-align:justify;text-justify:distribute-all-lines;</xsl:when> | |
<xsl:when test="@w:val = 'low-kashida'">text-align:justify;text-justify:kashida;text-kashida:0%;</xsl:when> | |
<xsl:when test="@w:val = 'medium-kashida'">text-align:justify;text-justify:kashida;text-kashida:10%; | |
</xsl:when> | |
<xsl:when test="@w:val = 'high-kashida'">text-align:justify;text-justify:kashida;text-kashida:20%; | |
</xsl:when> | |
<xsl:when test="@w:val = 'thai-distribute'">text-align:justify;text-justify:inter-cluster;</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:textAlignment" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'top'">vertical-align:top;</xsl:when> | |
<xsl:when test="@w:val = 'center'">vertical-align:middle;</xsl:when> | |
<xsl:when test="@w:val = 'baseline'">vertical-align:baseline;</xsl:when> | |
<xsl:when test="@w:val = 'bottom'">vertical-align:bottom;</xsl:when> | |
<xsl:when test="@w:val = 'auto'">vertical-align:baseline;</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:wordWrap" mode="ppr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">word-break:break-all;</xsl:when> | |
<xsl:otherwise>word-break:normal;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="*" mode="ppr"/> | |
<xsl:template name="DisplayPContent"> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="runStyleName"/> | |
<xsl:call-template name="DisplayRBorder"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="runStyleName" select="$runStyleName"/> | |
</xsl:call-template> | |
<xsl:if test="count(*[not(name()='w:pPr')])=0"> | |
<xsl:text disable-output-escaping="yes"> </xsl:text> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="GetPStyleId"> | |
<xsl:choose> | |
<xsl:when test="w:pPr/w:pStyle/@w:val"> | |
<xsl:value-of select="w:pPr/w:pStyle/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$paraStyleID_Default"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyPPr.many"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sParaStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sParaStyleBase"> | |
<xsl:call-template name="RecursiveApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:template> | |
<xsl:template match="w:p"> | |
<xsl:param name="bdrBetween" select="''"/> | |
<xsl:param name="prsPAccum" select="''"/> | |
<xsl:param name="prsP" select="$prsPDefault"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:if test="not(w:pPr/w:pStyle/@w:val='z-TopofForm') and not(w:pPr/w:pStyle/@w:val='z-BottomofForm')"> | |
<p> | |
<xsl:variable name="pStyleId"> | |
<xsl:call-template name="GetPStyleId"/> | |
</xsl:variable> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$pStyleId"/> | |
<xsl:value-of select="$paraStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:variable name="sParaStyleName" select="($nsStyles[@w:styleId=$pStyleId])[1]"/> | |
<xsl:variable name="b.bidi"> | |
<xsl:choose> | |
<xsl:when test="w:pPr[1]/w:rPr[1]/w:rtl[1]"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$off"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="prsR.updated"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$sParaStyleName"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsP.updated1"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$sParaStyleName"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsP.updated"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="prsP" select="$prsP.updated1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="styleMod"> | |
<xsl:value-of select="$prsPAccum"/> | |
<xsl:for-each select="$sParaStyleName"> | |
<xsl:call-template name="RecursiveApplyPPr.many"/> | |
</xsl:for-each> | |
<xsl:call-template name="ApplyPPr.many"> | |
<xsl:with-param name="cxtSpacing"> | |
<xsl:variable name="cspacing" select="$sParaStyleName/w:pPr[1]/w:contextualSpacing[1]"/> | |
<xsl:if test="$cspacing and not($cspacing/@w:val = 'off')"> | |
<xsl:if test="following-sibling::*[1]/w:pPr[1]/w:pStyle[1]/@w:val = $pStyleId"> | |
<xsl:value-of select="$cxtSpacing_top"/> | |
</xsl:if> | |
<xsl:if test="preceding-sibling::*[1]/w:pPr[1]/w:pStyle[1]/@w:val = $pStyleId"> | |
<xsl:value-of select="$cxtSpacing_bottom"/> | |
</xsl:if> | |
</xsl:if> | |
</xsl:with-param> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyPPr.class"/> | |
<xsl:call-template name="ApplyPPr.once"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsP" select="$prsP.updated"/> | |
<xsl:with-param name="i.bdrRange.this" select="position()"/> | |
<xsl:with-param name="i.bdrRange.last" select="last()"/> | |
<xsl:with-param name="pr.bdrBetween" select="$bdrBetween"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:if test="not($styleMod='')"> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$styleMod"/> | |
</xsl:attribute> | |
</xsl:if> | |
<span> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$pStyleId"/> | |
<xsl:value-of select="$charStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:call-template name="DisplayPContent"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR.updated"/> | |
<xsl:with-param name="runStyleName"> | |
<xsl:value-of select="$pStyleId"/> | |
<xsl:value-of select="$charStyleSuffix"/> | |
</xsl:with-param> | |
</xsl:call-template> | |
</span> | |
</p> | |
<!-- <xsl:if test="./w:r/w:lastRenderedPageBreak/@ColumnEnd"> Added by Parwati to handle columns | |
<xsl:variable name="columnNo"> | |
<xsl:value-of select="./w:r/w:lastRenderedPageBreak/@colNum"/> | |
</xsl:variable> | |
<xsl:call-template name="ColumnAddition"> | |
<xsl:with-param name="totalColumns" select="$columnNo"></xsl:with-param> | |
</xsl:call-template> | |
</xsl:if> End --> | |
<!--By Sunil svg shapes positioning--> | |
<xsl:if test="./w:r/div/svg"> | |
<!--<br/> | |
<br/>--> | |
</xsl:if> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:sdt/w:sdtContent"> | |
<span class="c-input"> | |
<xsl:attribute name="data-alias"> | |
<xsl:value-of select="../w:sdtPr/w:alias/@w:val"/> | |
</xsl:attribute> | |
<xsl:attribute name="data-tag"> | |
<xsl:value-of select="../w:sdtPr/w:tag/@w:val"/> | |
</xsl:attribute> | |
<xsl:attribute name="data-type"> | |
<xsl:choose> | |
<xsl:when test="../sdtPr/w:date"> | |
<xsl:value-of select="'date'"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="'input'"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
<xsl:apply-templates/> | |
</span> | |
</xsl:template> | |
<xsl:template match="w:sdt/w:sdtContent/w:tc/w:p | w:sdt/w:sdtContent/w:p"> | |
<p> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="./w:pPr/w:pStyle/@w:val"/> | |
<xsl:value-of select="$charStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:attribute name="style"> | |
text-align:<xsl:value-of select="./w:pPr/w:jc/@w:val"/> | |
</xsl:attribute> | |
<span> | |
<xsl:apply-templates/> | |
</span> | |
</p> | |
</xsl:template> | |
<xsl:template name="DisplayBodyContent"> | |
<xsl:param name="ns.content" | |
select="descendant::*[(parent::WX:sect or parent::WX:sub-section) and not(name()='WX:sub-section')]"/> | |
<xsl:param name="prsPAccum" select="''"/> | |
<xsl:param name="prsP" select="$prsPDefault"/> | |
<xsl:param name="prsR" select="$prsRDefault"/> | |
<xsl:apply-templates> | |
<xsl:with-param name="ns.content" select="$ns.content"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:apply-templates> | |
<xsl:if test="count($ns.content)=0"> | |
<xsl:text disable-output-escaping="yes"> </xsl:text> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyTcPr.class"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sTblStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sTblStyleBase"> | |
<xsl:call-template name="RecursiveApplyTcPr.class"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyTcPr.class"/> | |
</xsl:template> | |
<xsl:template name="ApplyTcPr.class"> | |
<xsl:apply-templates select="w:tcPr[1]/*" mode="tcpr"/> | |
</xsl:template> | |
<xsl:template match="w:shd" mode="tcpr"> | |
<xsl:call-template name="ApplyShd"/> | |
</xsl:template> | |
<xsl:template match="w:textDirection" mode="tcpr"> | |
<xsl:call-template name="ApplyTextDirection"/> | |
</xsl:template> | |
<xsl:template match="w:tcFitText" mode="tcpr"> | |
<xsl:if test="not(@w:val = 'off')">text-fit:100%;</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:vAlign" mode="tcpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'center'">vertical-align:middle;</xsl:when> | |
<xsl:when test="@w:val = 'bottom'">vertical-align:bottom;</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:noWrap" mode="tcpr"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">white-space:normal;</xsl:when> | |
<xsl:otherwise>white-space:nowrap;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:tcW" mode="tcpr"> | |
width:<xsl:call-template name="EvalTableWidth"/>; | |
</xsl:template> | |
<xsl:template match="*" mode="tcpr"/> | |
<xsl:template name="ApplyExtraCornerBorders"> | |
<xsl:param name="cnfType"/> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:choose> | |
<xsl:when test="$cnfType=$cnfNWCell"> | |
<xsl:call-template name="ApplyExtraCornerBordersNW"> | |
<xsl:with-param name="sTblStyle" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:when test="$cnfType=$cnfNECell"> | |
<xsl:call-template name="ApplyExtraCornerBordersNE"> | |
<xsl:with-param name="sTblStyle" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:when test="$cnfType=$cnfSECell"> | |
<xsl:call-template name="ApplyExtraCornerBordersSE"> | |
<xsl:with-param name="sTblStyle" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:when test="$cnfType=$cnfSWCell"> | |
<xsl:call-template name="ApplyExtraCornerBordersSW"> | |
<xsl:with-param name="sTblStyle" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="ApplyExtraCornerBordersNW"> | |
<xsl:param name="sTblStyle"/> | |
<xsl:variable name="firstColBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfFirstCol][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:variable name="firstRowBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfFirstRow][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyExtraCornerBordersNE"> | |
<xsl:param name="sTblStyle"/> | |
<xsl:variable name="lastColBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfLastCol][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:variable name="firstRowBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfFirstRow][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstRowBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyExtraCornerBordersSE"> | |
<xsl:param name="sTblStyle"/> | |
<xsl:variable name="lastColBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfLastCol][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:variable name="lastRowBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfLastRow][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastColBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyExtraCornerBordersSW"> | |
<xsl:param name="sTblStyle"/> | |
<xsl:variable name="firstColBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfFirstCol][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:variable name="lastRowBorders" | |
select="$sTblStyle/w:tblStylePr[@w:type=$cnfLastRow][1]/w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$lastRowBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr"> | |
<xsl:for-each select="$firstColBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:with-param> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyTcBordersFromCnf"> | |
<xsl:param name="tcBorders"/> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfType"/> | |
<xsl:param name="thisRow"/> | |
<xsl:param name="lastRow"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdrSide_right.bidi"/> | |
<xsl:param name="bdrSide_left.bidi"/> | |
<xsl:variable name="thisBdr.top"> | |
<xsl:choose> | |
<xsl:when test="$tcBorders/w:top"> | |
<xsl:for-each select="$tcBorders/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($cnfType='')"> | |
<xsl:choose> | |
<xsl:when | |
test="$cnfType=$cnfBand1Vert or $cnfType=$cnfBand2Vert or $cnfType=$cnfFirstCol or $cnfType=$cnfLastCol"> | |
<xsl:variable name="p.cnfFirstRow" | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfFirstRow][1]"/> | |
<xsl:choose> | |
<xsl:when test="$p.cnfFirstRow and $thisRow=2"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($p.cnfFirstRow) and $thisRow=1"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideH[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:top[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.top"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="thisBdr.bottom"> | |
<xsl:choose> | |
<xsl:when test="$tcBorders/w:bottom"> | |
<xsl:for-each select="$tcBorders/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($cnfType='')"> | |
<xsl:choose> | |
<xsl:when | |
test="$cnfType=$cnfBand1Vert or $cnfType=$cnfBand2Vert or $cnfType=$cnfFirstCol or $cnfType=$cnfLastCol"> | |
<xsl:variable name="p.cnfLastRow" | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfLastRow][1]"/> | |
<xsl:choose> | |
<xsl:when test="$p.cnfLastRow and $thisRow=$lastRow - 1"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($p.cnfLastRow) and $thisRow=$lastRow"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideH[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:bottom[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.bottom"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="thisBdr.left"> | |
<xsl:choose> | |
<xsl:when test="$tcBorders/w:left"> | |
<xsl:for-each select="$tcBorders/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($cnfType='')"> | |
<xsl:choose> | |
<xsl:when test="$cnfType=$cnfBand1Horz or $cnfType=$cnfBand2Horz"> | |
<xsl:variable name="p.cnfFirstCol" | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfFirstCol][1]"/> | |
<xsl:choose> | |
<xsl:when test="$p.cnfFirstCol and position()=2"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($p.cnfFirstCol) and position()=1"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideV[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="$cnfType=$cnfFirstRow or $cnfType=$cnfLastRow"> | |
<xsl:choose> | |
<xsl:when test="position()=1"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideV[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:left[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.left"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="thisBdr.right"> | |
<xsl:choose> | |
<xsl:when test="$tcBorders/w:right"> | |
<xsl:for-each select="$tcBorders/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($cnfType='')"> | |
<xsl:choose> | |
<xsl:when test="$cnfType=$cnfBand1Horz or $cnfType=$cnfBand2Horz"> | |
<xsl:variable name="p.cnfLastCol" | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfLastCol][1]"/> | |
<xsl:choose> | |
<xsl:when test="$p.cnfLastCol and position()=last() - 1"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="not($p.cnfLastCol) and position()=last()"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideV[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="$cnfType=$cnfFirstRow or $cnfType=$cnfLastRow"> | |
<xsl:choose> | |
<xsl:when test="position()=last()"> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:insideV[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each | |
select="$sTblStyleName/w:tblStylePr[@w:type=$cnfType][1]/w:tcPr[1]/w:tcBorders[1]/w:right[1]"> | |
<xsl:call-template name="GetBorderPr"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.right"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$thisBdr.top"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$thisBdr.right"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right.bidi"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$thisBdr.bottom"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$thisBdr.left"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left.bidi"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template name="ApplyTcPr.once"> | |
<xsl:param name="cellspacing"/> | |
<xsl:param name="cellpadding.default"/> | |
<xsl:param name="cellpadding.custom"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdr.insideV"/> | |
<xsl:param name="thisRow"/> | |
<xsl:param name="lastRow"/> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="cnfCol"/> | |
<xsl:param name="b.bidivisual"/> | |
<xsl:variable name="cnfType"> | |
<xsl:if test="not($cnfRow='' and $cnfCol='')"> | |
<xsl:call-template name="GetCnfType"> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:variable name="cnfTypeRow"> | |
<xsl:if test="not($cnfRow='')"> | |
<xsl:call-template name="GetCnfTypeRow"> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:variable name="cnfTypeCol"> | |
<xsl:if test="not($cnfCol='')"> | |
<xsl:call-template name="GetCnfTypeCol"> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:variable name="tcborders" select="w:tcPr[1]/w:tcBorders[1]"/> | |
<xsl:variable name="bdrSide_left.bidi"> | |
<xsl:choose> | |
<xsl:when test="$b.bidivisual = $on"> | |
<xsl:value-of select="$bdrSide_right"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdrSide_left"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="bdrSide_right.bidi"> | |
<xsl:choose> | |
<xsl:when test="$b.bidivisual = $on"> | |
<xsl:value-of select="$bdrSide_left"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdrSide_right"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:for-each select="$sTblStyleName/w:tblPr[1]/w:tblBorders[1]"> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.top"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.bottom"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.right"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right.bidi"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.left"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left.bidi"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
<xsl:call-template name="ApplyExtraCornerBorders"> | |
<xsl:with-param name="cnfType" select="$cnfType"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyTcBordersFromCnf"> | |
<xsl:with-param name="cnfType" select="$cnfTypeRow"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="tcBorders" select="$tcborders"/> | |
<xsl:with-param name="bdrSide_right.bidi" select="$bdrSide_right.bidi"/> | |
<xsl:with-param name="bdrSide_left.bidi" select="$bdrSide_left.bidi"/> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyTcBordersFromCnf"> | |
<xsl:with-param name="cnfType" select="$cnfTypeCol"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="tcBorders" select="$tcborders"/> | |
<xsl:with-param name="bdrSide_right.bidi" select="$bdrSide_right.bidi"/> | |
<xsl:with-param name="bdrSide_left.bidi" select="$bdrSide_left.bidi"/> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
</xsl:call-template> | |
<xsl:variable name="cellpadding.custom.merged"> | |
<xsl:variable name="temp.direct"> | |
<xsl:for-each select="w:tcPr[1]/w:tcMar[1]"> | |
<xsl:call-template name="ApplyCellMar"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:value-of select="$temp.direct"/> | |
<xsl:if test="$temp.direct=''"> | |
<xsl:variable name="temp.cnf"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="GetCnfPr.cell"> | |
<xsl:with-param name="type" select="$prrCustomCellpadding"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:value-of select="$temp.cnf"/> | |
<xsl:if test="$temp.cnf=''"> | |
<xsl:value-of select="$cellpadding.custom"/> | |
</xsl:if> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:variable name="cellpadding.default.merged"> | |
<xsl:variable name="temp.cnf"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="GetCnfPr.cell"> | |
<xsl:with-param name="type" select="$prrDefaultCellpadding"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:value-of select="$temp.cnf"/> | |
<xsl:if test="$temp.cnf=''"> | |
<xsl:value-of select="$cellpadding.default"/> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="$cellpadding.custom.merged = 'none' and not($cellpadding.default.merged='')"> | |
<xsl:value-of select="$cellpadding.default.merged"/> | |
</xsl:when> | |
<xsl:when test="not($cellpadding.custom.merged='')"> | |
<xsl:value-of select="$cellpadding.custom.merged"/> | |
</xsl:when> | |
<xsl:when test="not($cellpadding.default.merged='')"> | |
<xsl:value-of select="$cellpadding.default.merged"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:tc"> | |
<xsl:param name="sTblStyleName" select="($nsStyles[@w:styleId=$tblStyleID_Default])[1]"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="cellspacing"/> | |
<xsl:param name="cellpadding.default"/> | |
<xsl:param name="cellpadding.custom"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdr.insideV"/> | |
<xsl:param name="bdr.insideH"/> | |
<xsl:param name="thisRow"/> | |
<xsl:param name="lastRow"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="b.bidivisual"/> | |
<xsl:variable name="cnfCol" select="string(w:tcPr[1]/w:cnfStyle[1]/@w:val)"/> | |
<xsl:variable name="vmerge" select="w:tcPr[1]/w:vMerge[1]"/> | |
<xsl:variable name="me" select="."/> | |
<xsl:variable name="tblCount" select="count(ancestor::w:tbl)"/> | |
<xsl:variable name="meInContext" | |
select="ancestor::w:tr[1]/*[count($me|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="before" | |
select="count($meInContext/preceding-sibling::*[descendant-or-self::*[name()='w:tc' and (count(ancestor::w:tbl)=$tblCount)]])"/> | |
<xsl:variable name="after" | |
select="count($meInContext/following-sibling::*[descendant-or-self::*[name()='w:tc' and (count(ancestor::w:tbl)=$tblCount)]])"/> | |
<!-- TO FIX THE COVERPAGE issue added by Shbuh | |
<xsl:variable name="tStyleId" /> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$tStyleId"/> | |
<xsl:value-of select="$tblStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:variable name="sTblStyleName" select="($nsStyles[@w:styleId=$tStyleId])[1]"/> | |
TO FIX THE COVERPAGE issue added by Shbuha--> | |
<xsl:if test="not($vmerge and not($vmerge/@w:val))"> | |
<td> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$sTblStyleName/@w:styleId"/> | |
<xsl:value-of select="$cellStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:for-each select="w:tcPr[1]/w:gridSpan[1]/@w:val"> | |
<xsl:attribute name="colspan"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:for-each> | |
<xsl:variable name="rowspan"> | |
<xsl:choose> | |
<xsl:when test="not($vmerge)">1</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="myRow" select="ancestor::w:tr[1]"/> | |
<xsl:variable name="myRowInContext" | |
select="$myRow/ancestor::w:tbl[1]/*[count($myRow|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="belowMe" | |
select="$myRowInContext/following-sibling::*//w:tc[count(ancestor::w:tbl)=$tblCount][$before + 1]"/> | |
<xsl:variable name="NextRestart" select="($belowMe//w:tcPr/w:vMerge[@w:val='restart'])[1]"/> | |
<xsl:variable name="NextRestartInContext" | |
select="$NextRestart/ancestor::w:tbl[1]/*[count($NextRestart|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="mergesAboveMe" | |
select="count($myRowInContext/preceding-sibling::*[(descendant-or-self::*[name()='w:tc'])[$before + 1][descendant-or-self::*[name()='w:vMerge']]])"/> | |
<xsl:variable name="mergesAboveNextRestart" | |
select="count($NextRestartInContext/preceding-sibling::*[(descendant-or-self::*[name()='w:tc'])[$before + 1][descendant-or-self::*[name()='w:vMerge']]])"/> | |
<xsl:choose> | |
<xsl:when test="$NextRestart"> | |
<xsl:value-of select="$mergesAboveNextRestart - $mergesAboveMe"/> | |
</xsl:when> | |
<xsl:when test="$vmerge/@w:val"> | |
<xsl:value-of | |
select="count($belowMe[descendant-or-self::*[name()='w:vMerge']]) + 1"/> | |
</xsl:when> | |
<xsl:otherwise>1</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:if test="$vmerge"> | |
<xsl:attribute name="rowspan"> | |
<xsl:value-of select="$rowspan"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:variable name="lastRow.updated" select="$lastRow - $rowspan + 1"/> | |
<xsl:variable name="bdr.bottom.updated"> | |
<xsl:choose> | |
<xsl:when test="$cellspacing='' and $thisRow=$lastRow.updated"> | |
<xsl:value-of select="$bdr.bottom"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.insideH"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="bdr.left.updated"> | |
<xsl:choose> | |
<xsl:when test="$cellspacing='' and $before=0"> | |
<xsl:value-of select="$bdr.left"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.insideV"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="bdr.right.updated"> | |
<xsl:choose> | |
<xsl:when test="$cellspacing='' and $after=0"> | |
<xsl:value-of select="$bdr.right"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.insideV"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:attribute name="style"> | |
<xsl:if test="not($cnfRow='' and $cnfCol='')"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="GetCnfPr.all"> | |
<xsl:with-param name="type" select="$prrApplyTcPr"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyTcPr.class"/> | |
<xsl:call-template name="ApplyTcPr.once"> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow.updated"/> | |
<xsl:with-param name="cellspacing" select="$cellspacing"/> | |
<xsl:with-param name="cellpadding.default" select="$cellpadding.default"/> | |
<xsl:with-param name="cellpadding.custom" select="$cellpadding.custom"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left.updated"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right.updated"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom.updated"/> | |
<xsl:with-param name="bdr.insideV" select="$bdr.insideV"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="b.bidivisual" select="$b.bidivisual"/> | |
</xsl:call-template> | |
</xsl:attribute> | |
<xsl:choose> | |
<xsl:when test="$cnfRow='' and $cnfCol=''"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="WrapCnf"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="cnfCol" select="$cnfCol"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</td> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyTrPr.class"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sTblStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sTblStyleBase"> | |
<xsl:call-template name="RecursiveApplyTrPr.class"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyTrPr.class"/> | |
</xsl:template> | |
<xsl:template name="ApplyTrPr.class"> | |
<xsl:for-each select="w:trPr"> | |
<xsl:text>height:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="w:trHeight/@w:val"> | |
<xsl:value-of select="w:trHeight[1]/@w:val div 20"/>pt | |
</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>;</xsl:text> | |
<xsl:for-each select="w:cantSplit[1]"> | |
<xsl:choose> | |
<xsl:when test="@w:val = 'off'">page-break-inside:auto;</xsl:when> | |
<xsl:otherwise>page-break-inside:avoid;</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="DisplayEmptyCell"> | |
<xsl:param name="i" select="1"/> | |
<td colspan="$i"></td> | |
</xsl:template> | |
<xsl:template match="w:tr"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="cellspacing"/> | |
<xsl:param name="cellpadding.default"/> | |
<xsl:param name="cellpadding.custom"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdr.insideH"/> | |
<xsl:param name="bdr.insideV"/> | |
<xsl:param name="b.bidivisual"/> | |
<tr> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$sTblStyleName/@w:styleId"/> | |
<xsl:value-of select="$rowStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:variable name="cnfRow" select="string(w:trPr[1]/w:cnfStyle[1]/@w:val)"/> | |
<xsl:variable name="styleMod"> | |
<xsl:if test="not($cnfRow='')"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="GetCnfPr.row"> | |
<xsl:with-param name="type" select="$prrCantSplit"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyTrPr.class"/> | |
</xsl:variable> | |
<xsl:if test="not($styleMod='')"> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$styleMod"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:variable name="me" select="."/> | |
<xsl:variable name="tblCount" select="count(ancestor::w:tbl)"/> | |
<xsl:variable name="meInContext" | |
select="ancestor::w:tbl[1]/*[count($me|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="before" | |
select="count($meInContext/preceding-sibling::*[descendant-or-self::*[name()='w:tr' and (count(ancestor::w:tbl)=$tblCount)]])"/> | |
<xsl:variable name="after" | |
select="count($meInContext/following-sibling::*[descendant-or-self::*[name()='w:tr' and (count(ancestor::w:tbl)=$tblCount)]])"/> | |
<xsl:variable name="thisRow" select="$before + 1"/> | |
<xsl:variable name="lastRow" select="$before + $after + 1"/> | |
<xsl:variable name="bdr.top.updated"> | |
<xsl:choose> | |
<xsl:when test="$cellspacing='' and $thisRow=1"> | |
<xsl:value-of select="$bdr.top"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$bdr.insideH"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:for-each select="w:trPr[1]/w:gridBefore[1]/@w:val"> | |
<xsl:call-template name="DisplayEmptyCell"> | |
<xsl:with-param name="i"> | |
<xsl:value-of select="."/> | |
</xsl:with-param> | |
</xsl:call-template> | |
</xsl:for-each> | |
<xsl:apply-templates select="*[not(name()='w:trPr')]"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow"/> | |
<xsl:with-param name="cellspacing" select="$cellspacing"/> | |
<xsl:with-param name="cellpadding.default" select="$cellpadding.default"/> | |
<xsl:with-param name="cellpadding.custom" select="$cellpadding.custom"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top.updated"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
<xsl:with-param name="bdr.insideV" select="$bdr.insideV"/> | |
<xsl:with-param name="bdr.insideH" select="$bdr.insideH"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="b.bidivisual" select="$b.bidivisual"/> | |
</xsl:apply-templates> | |
<xsl:for-each select="w:trPr[1]/w:gridAfter[1]/@w:val"> | |
<xsl:call-template name="DisplayEmptyCell"> | |
<xsl:with-param name="i"> | |
<xsl:value-of select="."/> | |
</xsl:with-param> | |
</xsl:call-template> | |
</xsl:for-each> | |
</tr> | |
</xsl:template> | |
<xsl:template name="RecursiveApplyTblPr.class"> | |
<xsl:if test="w:basedOn"> | |
<xsl:variable name="baseStyleName" select="w:basedOn[1]/@w:val"/> | |
<xsl:variable name="sTblStyleBase" select="($nsStyles[@w:styleId=$baseStyleName])[1]"/> | |
<xsl:for-each select="$sTblStyleBase"> | |
<xsl:call-template name="RecursiveApplyTblPr.class"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyTblPr.class"/> | |
</xsl:template> | |
<xsl:template name="ApplyTblPr.class"> | |
<xsl:for-each select="w:tblPr[1]"> | |
<xsl:if test="w:tblpPr/@w:topFromText"> | |
margin-top:<xsl:value-of select="w:tblpPr/@w:topFromText[1] div 20"/>pt; | |
</xsl:if> | |
<xsl:if test="w:tblpPr/@w:rightFromText"> | |
margin-right:<xsl:value-of select="w:tblpPr/@w:rightFromText[1] div 20"/>pt; | |
</xsl:if> | |
<xsl:if test="w:tblpPr/@w:bottomFromText"> | |
margin-bottom:<xsl:value-of select="w:tblpPr/@w:bottomFromText[1] div 20"/>pt; | |
</xsl:if> | |
<xsl:if test="w:tblpPr/@w:leftFromText"> | |
margin-left:<xsl:value-of select="w:tblpPr/@w:leftFromText[1] div 20"/>pt; | |
</xsl:if> | |
<xsl:for-each select="w:tblW[1]"> | |
<xsl:if test="@w:type != 'auto'"> | |
width:<xsl:call-template name="EvalTableWidth"/>; | |
</xsl:if> | |
</xsl:for-each> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template name="tblCore"> | |
<table> | |
<xsl:variable name="tStyleId"> | |
<xsl:choose> | |
<xsl:when test="w:tblPr[1]/w:tblStyle[1]/@w:val"> | |
<xsl:value-of select="w:tblPr[1]/w:tblStyle[1]/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$tblStyleID_Default"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:attribute name="class"> | |
<xsl:value-of select="$tStyleId"/> | |
<xsl:value-of select="$tblStyleSuffix"/> | |
</xsl:attribute> | |
<xsl:variable name="sTblStyleName" select="($nsStyles[@w:styleId=$tStyleId])[1]"/> | |
<xsl:variable name="cellspacingTEMP"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrCellspacing"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="cellspacing"> | |
<xsl:choose> | |
<xsl:when test="$cellspacingTEMP='0'"></xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$cellspacingTEMP"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="cellpadding.default"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrDefaultCellpadding"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="cellpadding.custom"> | |
<xsl:for-each select="$sTblStyleName/w:tcPr[1]/w:tcMar[1]"> | |
<xsl:call-template name="ApplyCellMar"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="tblInd"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrTblInd"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.top"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_top"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.left"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_left"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.bottom"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_bottom"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.right"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_right"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.insideH"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_insideH"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="bdr.insideV"> | |
<xsl:call-template name="GetSingleTblPr"> | |
<xsl:with-param name="type" select="$prrBdrPr_insideV"/> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="b.bidivisual"> | |
<xsl:for-each select="w:tblPr[1]/w:bidiVisual[1]"> | |
<xsl:value-of select="$on"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="align"> | |
<xsl:for-each select="w:tblPr[1]/w:tblpPr[1]/@w:tblpXSpec"> | |
<xsl:value-of select="."/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:if test="not($align='')"> | |
<xsl:attribute name="align"> | |
<xsl:choose> | |
<xsl:when test="$align = 'right' or $align = 'outside'">right</xsl:when> | |
<xsl:otherwise>left</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:attribute name="cellspacing"> | |
<xsl:choose> | |
<xsl:when test="$cellspacing=''">0</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="($cellspacing div 1440) * $pixelsPerInch"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
<xsl:if test="$cellspacing=''"> | |
<xsl:attribute name="cellspacing">0</xsl:attribute> | |
</xsl:if> | |
<xsl:variable name="styleMod"> | |
<xsl:call-template name="ApplyTblPr.class"/> | |
<xsl:choose> | |
<xsl:when test="$cellspacing=''">border-collapse:collapse;</xsl:when> | |
<xsl:otherwise> | |
<xsl:text>border-collapse:separate;</xsl:text> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.top"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_top"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.left"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_left"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.bottom"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_bottom"/> | |
</xsl:call-template> | |
<xsl:call-template name="ApplyBorderPr"> | |
<xsl:with-param name="pr.bdr" select="$bdr.right"/> | |
<xsl:with-param name="bdrSide" select="$bdrSide_right"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:if test="$b.bidivisual=$on">direction:rtl;</xsl:if> | |
<xsl:if test="not(w:tblPr/w:tblpPr)"> | |
<xsl:text>margin-</xsl:text> | |
<xsl:choose> | |
<xsl:when test="$b.bidivisual=$on">right</xsl:when> | |
<xsl:otherwise>left</xsl:otherwise> | |
</xsl:choose> | |
<xsl:text>:</xsl:text> | |
<xsl:value-of select="$tblInd"/> | |
<xsl:text>;</xsl:text> | |
</xsl:if> | |
</xsl:variable> | |
<xsl:if test="not($styleMod='')"> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="$styleMod"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:variable name="prsPAccum"> | |
<xsl:for-each select="$sTblStyleName"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:variable name="prsR"> | |
<xsl:call-template name="PrsUpdateRPr"> | |
<xsl:with-param name="ndPrContainer" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="prsP"> | |
<xsl:call-template name="PrsUpdatePPr"> | |
<xsl:with-param name="ndPrContainer" select="$sTblStyleName"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:apply-templates select="*[not(name()='w:tblPr' or name()='w:tblGrid')]"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="cellspacing" select="$cellspacing"/> | |
<xsl:with-param name="cellpadding.default" select="$cellpadding.default"/> | |
<xsl:with-param name="cellpadding.custom" select="$cellpadding.custom"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
<xsl:with-param name="bdr.insideH" select="$bdr.insideH"/> | |
<xsl:with-param name="bdr.insideV" select="$bdr.insideV"/> | |
<xsl:with-param name="b.bidivisual" select="$b.bidivisual"/> | |
</xsl:apply-templates> | |
<xsl:for-each select="w:tblGrid[1]"> | |
<!--<xsl:text disable-output-escaping="yes"><![if !supportMisalignedColumns]></xsl:text>--> | |
<tr height="0"> | |
<xsl:for-each select="w:gridCol"> | |
<xsl:variable name="gridStyle"> | |
margin:0;padding:0;border:none;width:<xsl:call-template name="EvalTableWidth"/>; | |
</xsl:variable> | |
<td style="{$gridStyle}"/> | |
</xsl:for-each> | |
</tr> | |
<!--<xsl:text disable-output-escaping="yes"><![endif]></xsl:text>--> | |
</xsl:for-each> | |
</table> | |
</xsl:template> | |
<xsl:template match="w:tbl[w:tblPr/w:jc/@w:val]"> | |
<xsl:variable name="p.Jc" select="w:tblPr/w:jc/@w:val"/> | |
<div> | |
<xsl:attribute name="align"> | |
<xsl:value-of select="$p.Jc"/> | |
</xsl:attribute> | |
<xsl:call-template name="tblCore"/> | |
</div> | |
</xsl:template> | |
<xsl:template match="w:tbl"> | |
<xsl:call-template name="tblCore"/> | |
</xsl:template> | |
<xsl:template name="hrCore"> | |
<xsl:param name="p.Hr"/> | |
<hr> | |
<xsl:attribute name="style"> | |
<xsl:value-of select="substring-after($p.Hr/@style, ';')"/> | |
</xsl:attribute> | |
<xsl:attribute name="align"> | |
<xsl:value-of select="$p.Hr/@o:hralign"/> | |
</xsl:attribute> | |
<xsl:if test="$p.Hr/@o:hrnoshade='t'"> | |
<xsl:attribute name="noshade"> | |
<xsl:text>1</xsl:text> | |
</xsl:attribute> | |
<xsl:attribute name="color"> | |
<xsl:value-of select="$p.Hr/@fillcolor"/> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:if test="$p.Hr/@o:hrpct"> | |
<xsl:attribute name="width"> | |
<xsl:value-of select="$p.Hr/@o:hrpct div 10"/> | |
<xsl:text>%</xsl:text> | |
</xsl:attribute> | |
</xsl:if> | |
</hr> | |
</xsl:template> | |
<xsl:template match="w:p[w:r[1]//v:rect/@o:hrstd and not(w:r[2])]"> | |
<xsl:call-template name="hrCore"> | |
<xsl:with-param name="p.Hr" select="w:r//v:rect"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="v:rect[@o:hrstd]"> | |
<xsl:call-template name="hrCore"> | |
<xsl:with-param name="p.Hr" select="."/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="w:body"> | |
<xsl:attribute name="style"> | |
<xsl:variable name="divBody" select="/w:document/w:divs/w:div[w:bodyDiv/@w:val='on']"/> | |
<xsl:variable name="dxaBodyLeft"> | |
<xsl:value-of select="$divBody/w:marLeft/@w:val"/> | |
</xsl:variable> | |
<xsl:variable name="dxaBodyRight"> | |
<xsl:value-of select="$divBody/w:marRight/@w:val"/> | |
</xsl:variable> | |
<xsl:if test="not($dxaBodyLeft='' or $dxaBodyLeft=0)"> | |
<xsl:text>margin-left:</xsl:text> | |
<xsl:value-of select="$dxaBodyLeft div 20"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:if> | |
<xsl:if test="not($dxaBodyRight='' or $dxaBodyRight=0)"> | |
<xsl:text>margin-right:</xsl:text> | |
<xsl:value-of select="$dxaBodyRight div 20"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:if> | |
</xsl:attribute> | |
<xsl:apply-templates select="*"/> | |
</xsl:template> | |
<xsl:template match="w:font"> | |
<xsl:text>@font-face{font-family:"</xsl:text> | |
<xsl:value-of select="@w:name"/> | |
<xsl:text>";panose-1:</xsl:text> | |
<xsl:variable name="panose1"> | |
<xsl:call-template name="ConvertHexToDec"> | |
<xsl:with-param name="value" select="w:panose-1[1]/@w:val"/> | |
<xsl:with-param name="i" select="2"/> | |
<xsl:with-param name="s" select="2"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:value-of select="substring($panose1,2)"/> | |
<xsl:text>;}</xsl:text> | |
</xsl:template> | |
<xsl:template name="MakeRStyle"> | |
<xsl:text>.</xsl:text> | |
<xsl:value-of select="@w:styleId"/> | |
<xsl:value-of select="$charStyleSuffix"/> | |
<xsl:text>{</xsl:text> | |
<xsl:call-template name="MakeRStyleCore"/> | |
<xsl:text>} | |
</xsl:text> | |
</xsl:template> | |
<xsl:template name="MakeRStyleCore"> | |
<xsl:if test="w:basedOn/@w:val"> | |
<xsl:variable name="sBasedOn"> | |
<xsl:value-of select="w:basedOn/@w:val"/> | |
</xsl:variable> | |
<xsl:for-each select="$nsStyles[@w:styleId=$sBasedOn]"> | |
<xsl:call-template name="MakeRStyleCore"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:call-template name="ApplyRPr.class"/> | |
</xsl:template> | |
<xsl:template name="MakePStyle"> | |
<xsl:text>.</xsl:text> | |
<xsl:value-of select="@w:styleId"/> | |
<xsl:value-of select="$paraStyleSuffix"/> | |
<xsl:text>{ | |
</xsl:text> | |
<xsl:call-template name="MakePStyleCore"/> | |
<xsl:text>} | |
</xsl:text> | |
<xsl:call-template name="MakeRStyle"/> | |
</xsl:template> | |
<xsl:template name="MakePStyleCore"> | |
<xsl:param name="beforeAutospace" select="$off"/> | |
<xsl:param name="afterAutospace" select="$off"/> | |
<xsl:variable name="spacing" select="w:pPr[1]/w:spacing[1]"/> | |
<xsl:variable name="beforeAutospaceHere"> | |
<xsl:choose> | |
<xsl:when test="$spacing/@w:before-autospacing = 'on'"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$beforeAutospace"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="afterAutospaceHere"> | |
<xsl:choose> | |
<xsl:when test="$spacing/@w:after-autospacing = 'on'"> | |
<xsl:value-of select="$on"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$afterAutospace"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="w:basedOn/@w:val"> | |
<xsl:variable name="sBasedOn"> | |
<xsl:value-of select="w:basedOn/@w:val"/> | |
</xsl:variable> | |
<xsl:for-each select="$nsStyles[@w:styleId=$sBasedOn]"> | |
<xsl:call-template name="MakePStyleCore"> | |
<xsl:with-param name="beforeAutospace" select="$beforeAutospaceHere"/> | |
<xsl:with-param name="afterAutospace" select="$afterAutospaceHere"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text>margin-left:</xsl:text> | |
<xsl:value-of select="$paraMarginDefaultLeft"/> | |
<xsl:text>;margin-right:</xsl:text> | |
<xsl:value-of select="$paraMarginDefaultRight"/> | |
<xsl:if test="not($beforeAutospace = $on)"> | |
<xsl:if test="(not($spacing/@w:before-autospacing) or $spacing/@w:before-autospacing = 'off')"> | |
<xsl:text>;margin-top:</xsl:text> | |
<xsl:value-of select="$paraMarginDefaultTop"/> | |
</xsl:if> | |
</xsl:if> | |
<xsl:if test="not($afterAutospace = $on)"> | |
<xsl:if test="(not($spacing/@w:after-autospacing) or $spacing/@w:after-autospacing = 'off')"> | |
<xsl:text>;margin-bottom:</xsl:text> | |
<xsl:value-of select="$paraMarginDefaultBottom"/> | |
</xsl:if> | |
</xsl:if> | |
<xsl:text>;font-size:10.0pt;font-family:"Times New Roman";</xsl:text> | |
<xsl:for-each select="/w:document[1]/w:styles[1]/w:docDefaults/w:pPrDefault"> | |
<xsl:call-template name="ApplyPPr.many"/> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:call-template name="ApplyPPr.class"/> | |
</xsl:template> | |
<xsl:template name="MakeTblStyle"> | |
<xsl:variable name="styleId" select="@w:styleId"/> | |
<xsl:text>.</xsl:text> | |
<xsl:value-of select="$styleId"/> | |
<xsl:value-of select="$tblStyleSuffix"/> | |
<xsl:text>{</xsl:text> | |
<xsl:call-template name="RecursiveApplyTblPr.class"/> | |
<xsl:text>} </xsl:text> | |
<xsl:text>.</xsl:text> | |
<xsl:value-of select="$styleId"/> | |
<xsl:value-of select="$rowStyleSuffix"/> | |
<xsl:text>{</xsl:text> | |
<xsl:call-template name="RecursiveApplyTrPr.class"/> | |
<xsl:text>} </xsl:text> | |
<xsl:text>.</xsl:text> | |
<xsl:value-of select="$styleId"/> | |
<xsl:value-of select="$cellStyleSuffix"/> | |
<xsl:text>{vertical-align:top;</xsl:text> | |
<xsl:call-template name="RecursiveApplyTcPr.class"/> | |
<xsl:call-template name="RecursiveApplyPPr.class"/> | |
<xsl:call-template name="RecursiveApplyRPr.class"/> | |
<xsl:text>} </xsl:text> | |
<xsl:for-each select="w:tblStylePr"> | |
<xsl:text>.</xsl:text><xsl:value-of select="$styleId"/>-<xsl:value-of select="@w:type"/> | |
<xsl:text>{vertical-align:top;</xsl:text> | |
<xsl:call-template name="ApplyPPr.class"/> | |
<xsl:call-template name="ApplyRPr.class"/> | |
<xsl:text>} </xsl:text> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template match="w:style"> | |
<xsl:choose> | |
<xsl:when test="@w:type = 'character'"> | |
<xsl:call-template name="MakeRStyle"/> | |
</xsl:when> | |
<xsl:when test="@w:type = 'paragraph'"> | |
<xsl:call-template name="MakePStyle"/> | |
</xsl:when> | |
<xsl:when test="@w:type = 'table'"> | |
<xsl:call-template name="MakeTblStyle"/> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="a:fontScheme"> | |
.<xsl:value-of select="$minorAsciiTheme"/>{font-family:<xsl:value-of select="./a:minorFont/a:latin/@typeface"/>;} | |
.<xsl:value-of select="$majorAsciiTheme"/>{font-family:<xsl:value-of select="./a:majorFont/a:latin/@typeface"/>;} | |
.<xsl:value-of select="$minorAnsiTheme"/>{font-family:<xsl:value-of select="./a:minorFont/a:latin/@typeface"/>;} | |
.<xsl:value-of select="$majorAnsiTheme"/>{font-family:<xsl:value-of select="./a:majorFont/a:latin/@typeface"/>;} | |
.<xsl:value-of select="$minorEATheme"/>{font-family:<xsl:value-of select="./a:minorFont/a:ea/@typeface"/>;} | |
.<xsl:value-of select="$majorEATheme"/>{font-family:<xsl:value-of select="./a:majorFont/a:ea/@typeface"/>;} | |
.<xsl:value-of select="$minorCSTheme"/>{font-family:<xsl:value-of select="./a:minorFont/a:cs/@typeface"/>;} | |
.<xsl:value-of select="$majorCSTheme"/>{font-family:<xsl:value-of select="./a:majorFont/a:cs/@typeface"/>;} | |
</xsl:template> | |
<xsl:template match="w:bookmarkStart"> | |
<a name="{@w:name}"/> | |
</xsl:template> | |
<xsl:template match="w:ins"> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<ins> | |
<xsl:call-template name="DisplayPContent"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</ins> | |
</xsl:template> | |
<xsl:template match="w:del"> | |
<xsl:param name="b.bidi"/> | |
<xsl:param name="prsR"/> | |
<xsl:if test="/w:document/w:settings/w:trackRevisions"> | |
<del> | |
<xsl:call-template name="DisplayPContent"> | |
<xsl:with-param name="b.bidi" select="$b.bidi"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
</xsl:call-template> | |
</del> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="aml:annotation[@w:type='Word.Comment']"> | |
<xsl:variable name="id" select="@aml:id + 1"/> | |
<a class="msocomanchor" id="_anchor_{$id}" onmouseover="msoCommentShow('_anchor_{$id}','_com_{$id}')" | |
onmouseout="msoCommentHide('_com_{$id}')" href="#_msocom_{$id}" language="JavaScript" | |
name="_msoanchor_{$id}"> | |
<xsl:value-of select="concat('[',@w:initials,$id,']')"/> | |
</a> | |
</xsl:template> | |
<xsl:template name="DisplayAnnotationText"> | |
<xsl:variable name="id" select="@aml:id + 1"/> | |
<div id="_com_{$id}" class="msocomtxt" language="JavaScript" | |
onmouseover="msoCommentShow('_anchor_{$id}','_com_{$id}')" onmouseout="msoCommentHide('_com_{$id}')"> | |
<a name="_msocom_{$id}"></a> | |
<a href="#_msoanchor_{$id}" class="msocomoff"> | |
<xsl:value-of select="concat('[',@w:initials,$id,']')"/> | |
</a> | |
<xsl:for-each select="aml:content"> | |
<xsl:call-template name="DisplayBodyContent"> | |
<xsl:with-param name="ns.content" select="*"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</div> | |
</xsl:template> | |
<xsl:template name="DisplayAnnotationScript"> | |
<!-- <xsl:text disable-output-escaping="yes"><![if !supportAnnotations]></xsl:text> --> | |
<style id="dynCom" type="text/css"></style> | |
<script type="text/javascript" language="JavaScript"> | |
<xsl:comment> | |
<xsl:text disable-output-escaping="yes"> | |
function msoCommentShow(anchor_id, com_id) | |
{ | |
if(msoBrowserCheck()) | |
{ | |
c = document.all(com_id); | |
a = document.all(anchor_id); | |
if (null != c && null == c.length && null != a && null == a.length) | |
{ | |
var cw = c.offsetWidth; | |
var ch = c.offsetHeight; | |
var aw = a.offsetWidth; | |
var ah = a.offsetHeight; | |
var x = a.offsetLeft; | |
var y = a.offsetTop; | |
var el = a; | |
while (el.tagName != "BODY") | |
{ | |
el = el.offsetParent; | |
x = x + el.offsetLeft; | |
y = y + el.offsetTop; | |
} | |
var bw = document.body.clientWidth; | |
var bh = document.body.clientHeight; | |
var bsl = document.body.scrollLeft; | |
var bst = document.body.scrollTop; | |
if (x + cw + ah / 2 > bw + bsl && x + aw - ah / 2 - cw >= bsl ) | |
{ c.style.left = x + aw - ah / 2 - cw; } | |
else | |
{ c.style.left = x + ah / 2; } | |
if (y + ch + ah / 2 > bh + bst && y + ah / 2 - ch >= bst ) | |
{ c.style.top = y + ah / 2 - ch; } | |
else | |
{ c.style.top = y + ah / 2; } | |
c.style.visibility = "visible"; | |
} } } | |
function msoCommentHide(com_id) | |
{ | |
if(msoBrowserCheck()) | |
{ | |
c = document.all(com_id); | |
if (null != c && null == c.length) | |
{ | |
c.style.visibility = "hidden"; | |
c.style.left = -1000; | |
c.style.top = -1000; | |
} } | |
} | |
function msoBrowserCheck() | |
{ | |
ms = navigator.appVersion.indexOf("MSIE"); | |
vers = navigator.appVersion.substring(ms + 5, ms + 6); | |
ie4 = (ms > 0) && (parseInt(vers) >= 4); | |
return ie4; | |
} | |
if (msoBrowserCheck()) | |
{ | |
document.styleSheets.dynCom.addRule(".msocomanchor","background: infobackground"); | |
document.styleSheets.dynCom.addRule(".msocomoff","display: none"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","visibility: hidden"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","position: absolute"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","top: -1000"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","left: -1000"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","width: 33%"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","background: infobackground"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","color: infotext"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","border-top: 1pt solid threedlightshadow"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","border-right: 2pt solid threedshadow"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","border-bottom: 2pt solid threedshadow"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","border-left: 1pt solid threedlightshadow"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","padding: 3pt 3pt 3pt 3pt"); | |
document.styleSheets.dynCom.addRule(".msocomtxt","z-index: 100"); | |
} | |
</xsl:text> | |
</xsl:comment> | |
</script> | |
<!--<xsl:text disable-output-escaping="yes"><![endif]></xsl:text>--> | |
</xsl:template> | |
<xsl:template name="copyElements"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="cellspacing"/> | |
<xsl:param name="cellpadding.default"/> | |
<xsl:param name="cellpadding.custom"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdr.insideV"/> | |
<xsl:param name="bdr.insideH"/> | |
<xsl:param name="thisRow"/> | |
<xsl:param name="lastRow"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="b.bidivisual"/> | |
<xsl:element name="{name()}" namespace="{namespace-uri()}"> | |
<xsl:for-each select="@*"> | |
<xsl:attribute name="{name()}" namespace="{namespace-uri()}"> | |
<xsl:value-of select="."/> | |
</xsl:attribute> | |
</xsl:for-each> | |
<xsl:apply-templates> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="cellspacing" select="$cellspacing"/> | |
<xsl:with-param name="cellpadding.default" select="$cellpadding.default"/> | |
<xsl:with-param name="cellpadding.custom" select="$cellpadding.custom"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.insideV" select="$bdr.insideV"/> | |
<xsl:with-param name="bdr.insideH" select="$bdr.insideH"/> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="b.bidivisual" select="$b.bidivisual"/> | |
</xsl:apply-templates> | |
</xsl:element> | |
</xsl:template> | |
<xsl:template match="*"> | |
<xsl:param name="sTblStyleName"/> | |
<xsl:param name="prsPAccum"/> | |
<xsl:param name="prsP"/> | |
<xsl:param name="prsR"/> | |
<xsl:param name="cellspacing"/> | |
<xsl:param name="cellpadding.default"/> | |
<xsl:param name="cellpadding.custom"/> | |
<xsl:param name="bdr.top"/> | |
<xsl:param name="bdr.left"/> | |
<xsl:param name="bdr.bottom"/> | |
<xsl:param name="bdr.right"/> | |
<xsl:param name="bdr.insideV"/> | |
<xsl:param name="bdr.insideH"/> | |
<xsl:param name="thisRow"/> | |
<xsl:param name="lastRow"/> | |
<xsl:param name="cnfRow"/> | |
<xsl:param name="b.bidivisual"/> | |
<xsl:call-template name="copyElements"> | |
<xsl:with-param name="sTblStyleName" select="$sTblStyleName"/> | |
<xsl:with-param name="prsPAccum" select="$prsPAccum"/> | |
<xsl:with-param name="prsP" select="$prsP"/> | |
<xsl:with-param name="prsR" select="$prsR"/> | |
<xsl:with-param name="cellspacing" select="$cellspacing"/> | |
<xsl:with-param name="cellpadding.default" select="$cellpadding.default"/> | |
<xsl:with-param name="cellpadding.custom" select="$cellpadding.custom"/> | |
<xsl:with-param name="bdr.top" select="$bdr.top"/> | |
<xsl:with-param name="bdr.left" select="$bdr.left"/> | |
<xsl:with-param name="bdr.bottom" select="$bdr.bottom"/> | |
<xsl:with-param name="bdr.right" select="$bdr.right"/> | |
<xsl:with-param name="bdr.insideV" select="$bdr.insideV"/> | |
<xsl:with-param name="bdr.insideH" select="$bdr.insideH"/> | |
<xsl:with-param name="thisRow" select="$thisRow"/> | |
<xsl:with-param name="lastRow" select="$lastRow"/> | |
<xsl:with-param name="cnfRow" select="$cnfRow"/> | |
<xsl:with-param name="b.bidivisual" select="$b.bidivisual"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="v:*"> | |
<xsl:choose> | |
<xsl:when test=".//w10:wrap[@type='topAndBottom']"> | |
<o:wrapblock> | |
<xsl:call-template name="copyElements"/> | |
</o:wrapblock> | |
<br style="mso-ignore:vglayout" clear='ALL'/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="copyElements"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="w:ruby"> | |
<ruby> | |
<xsl:attribute name="lang"> | |
<xsl:value-of select="w:rubyPr/w:lid/@w:val"/> | |
</xsl:attribute> | |
<xsl:attribute name="style"> | |
<xsl:variable name="align" select="w:rubyPr/w:rubyAlign/@w:val"/> | |
<xsl:text>ruby-align:</xsl:text> | |
<xsl:choose> | |
<xsl:when test="$align='rightVertical'"> | |
<xsl:text>auto</xsl:text> | |
</xsl:when> | |
<xsl:when test="$align='distributeLetter'"> | |
<xsl:text>distribute-letter</xsl:text> | |
</xsl:when> | |
<xsl:when test="$align='distributeSpace'"> | |
<xsl:text>distribute-space</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$align"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:attribute> | |
<span> | |
<xsl:if test="w:rubyPr/w:hpsBaseText"> | |
<xsl:attribute name="style"> | |
<xsl:text>font-size:</xsl:text> | |
<xsl:value-of select="w:rubyPr/w:hpsBaseText/@w:val"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:attribute> | |
</xsl:if> | |
<xsl:apply-templates select="w:rubyBase/w:r"/> | |
</span> | |
<rt> | |
<span> | |
<xsl:if test="w:rubyPr/w:hps"> | |
<xsl:attribute name="style"> | |
<xsl:text>font-size:</xsl:text> | |
<xsl:value-of select="w:rubyPr/w:hps/@w:val div 2"/> | |
<xsl:text>pt;</xsl:text> | |
</xsl:attribute> | |
<xsl:apply-templates select="w:rt/w:r/w:t"/> | |
<!--<xsl:apply-templates select="w:r/w:t"/>--> | |
</xsl:if> | |
</span> | |
</rt> | |
</ruby> | |
</xsl:template> | |
<xsl:template match="w:footnote"> | |
<xsl:variable name="me" select="."/> | |
<xsl:variable name="meInContext" | |
select="ancestor::w:r[1]/*[count($me|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="start"> | |
<xsl:choose> | |
<xsl:when test="$ndDocPr/w:footnotePr/w:numStart"> | |
<xsl:value-of select="$ndDocPr/w:footnotePr/w:numStart/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="1"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="position" | |
select="count($meInContext/preceding::*[name()='w:footnote' and ancestor::w:body]) + $start"/> | |
<sup> | |
<a> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="$footnoteRefLink"/> | |
<xsl:value-of select="$position"/> | |
</xsl:attribute> | |
<xsl:attribute name="href"> | |
<xsl:text>#</xsl:text> | |
<xsl:value-of select="$footnoteLink"/> | |
<xsl:value-of select="$position"/> | |
</xsl:attribute> | |
<xsl:text>[</xsl:text> | |
<xsl:value-of select="$position"/> | |
<xsl:text>]</xsl:text> | |
</a> | |
</sup> | |
</xsl:template> | |
<xsl:template match="w:endnote"> | |
<xsl:variable name="me" select="."/> | |
<xsl:variable name="meInContext" | |
select="ancestor::w:r[1]/*[count($me|descendant-or-self::*)=count(descendant-or-self::*)]"/> | |
<xsl:variable name="start"> | |
<xsl:choose> | |
<xsl:when test="$ndDocPr/w:endnotePr/w:numStart"> | |
<xsl:value-of select="$ndDocPr/w:endnotePr/w:numStart/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="1"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="position" | |
select="count($meInContext/preceding::*[name()='w:endnote' and ancestor::w:body]) + $start"/> | |
<sup> | |
<a> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="$endnoteRefLink"/> | |
<xsl:value-of select="$position"/> | |
</xsl:attribute> | |
<xsl:attribute name="href"> | |
<xsl:text>#</xsl:text> | |
<xsl:value-of select="$endnoteLink"/> | |
<xsl:value-of select="$position"/> | |
</xsl:attribute> | |
<xsl:text>[</xsl:text> | |
<xsl:value-of select="$position"/> | |
<xsl:text>]</xsl:text> | |
</a> | |
</sup> | |
</xsl:template> | |
<xsl:template name="IsListBullet"> | |
<xsl:variable name="numId" select="w:numId/@w:val"/> | |
<xsl:variable name="ilvl" select="w:ilvl/@w:val"/> | |
<xsl:variable name="list" select="$ndLists/w:num[@w:numId=$numId][1]"/> | |
<xsl:variable name="nfc"> | |
<xsl:choose> | |
<xsl:when | |
test="$ndLists/w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:for-each | |
select="$ndLists/w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:choose> | |
<xsl:when test="$list/w:lvlOverride[@w:ilvl=$ilvl]/w:numFmt"> | |
<xsl:value-of select="$list/w:lvlOverride[@w:ilvl=$ilvl]/w:numFmt/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of | |
select="$ndLists/w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]/w:numFmt/@w:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when test="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:for-each select="$list/w:lvlOverride[@w:ilvl=$ilvl]"> | |
<xsl:value-of select="w:numFmt/@w:val"/> | |
</xsl:for-each> | |
</xsl:when> | |
<xsl:when | |
test="$ndLists/w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:listStyleLink"> | |
<xsl:variable name="linkedStyleId" | |
select="$ndLists/w:abstractNum[@w:abstractNumId=$list/w:abstractNumId/@w:val][1]/w:listStyleLink/@w:val"/> | |
<xsl:variable name="linkedStyle" select="$nsStyles[@w:styleId=$linkedStyleId]"/> | |
<xsl:variable name="linkedList" select="w:num[@w:numId=$linkedStyle/w:pPr/w:numPr/w:numId/@w:val]"/> | |
<xsl:for-each | |
select="$ndLists/w:abstractNum[@w:abstractNumId=$linkedList/w:abstractNumId/@w:val][1]/w:lvl[@w:ilvl=$ilvl][1]"> | |
<xsl:value-of select="w:numFmt/@w:val"/> | |
</xsl:for-each> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:if test="$nfc=$nfcBullet"> | |
<xsl:value-of select="$on"/> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template match="w:fldSimple"> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="w:*"/> | |
<xsl:template match="o:WordFieldCodes"/> | |
<xsl:template match="w:cfChunk"> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="w:sdt"> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="w:sdtContent"> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="w:smartTag"> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<!--this template is added now | |
<xsl:template match="w:background" mode="rpr"> | |
bgcolor=<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="@w:color"/> | |
</xsl:call-template>; | |
</xsl:template> | |
--> | |
<xsl:template match="/w:document"> | |
<html> | |
<head> | |
<xsl:for-each select="$ndOfficeDocPr/o:HyperlinkBase[1]"> | |
<base href="{(.)}"/> | |
</xsl:for-each> | |
<xsl:call-template name="DisplayAnnotationScript"/> | |
<!--<xsl:comment>--> | |
<!--<xsl:text disable-output-escaping="yes">[if !mso]></xsl:text>--> | |
<xsl:text disable-output-escaping="yes"><style></xsl:text> | |
<xsl:text> | |
v\:* {behavior:url(#default#VML);} | |
o\:* {behavior:url(#default#VML);} | |
w10\:* {behavior:url(#default#VML);} | |
.shape {behavior:url(#default#VML);} | |
</xsl:text> | |
<xsl:text disable-output-escaping="yes"></style></xsl:text> | |
<!--<xsl:text disable-output-escaping="yes"><![endif]</xsl:text>--> | |
<!-- </xsl:comment> --> | |
<style> | |
<!-- <xsl:comment> --> | |
<xsl:apply-templates select="w:fonts[1]/w:font"/> | |
del {text-decoration:line-through;color:red;} | |
<xsl:choose> | |
<xsl:when test="/w:document/w:settings/w:trackRevisions"> | |
ins {text-decoration:underline;color:teal;} | |
</xsl:when> | |
<xsl:otherwise> | |
ins {text-decoration:none;} | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:apply-templates select="a:theme/a:themeElements/a:fontScheme"/> | |
<xsl:apply-templates select="$nsStyles"/> | |
<!-- </xsl:comment> --> | |
</style> | |
</head> | |
<body> | |
<xsl:if test="w:background/@w:color"> | |
<xsl:variable name="color"> <!-- Added by Parwati to handle Background Page Color--> | |
<xsl:text>#</xsl:text> | |
</xsl:variable> | |
<xsl:attribute name="bgcolor"> | |
<xsl:value-of select="$color"/> | |
<xsl:value-of select="w:background/@w:color"/> | |
</xsl:attribute> | |
</xsl:if> | |
<!-- Added for column rendering by Parwati | |
<xsl:if test="//w:body//w:sectPr//w:cols[@w:num] | //w:body/w:p/w:pPr/w:sectPr/w:cols[@w:num] | //w:body/w:sdt/w:sdtContent"> | |
<xsl:text disable-output-escaping="yes"><table cellpadding="5px"></xsl:text> | |
<xsl:text disable-output-escaping="yes"><tr></xsl:text> | |
<xsl:text disable-output-escaping="yes"><td valign="top"></xsl:text> | |
</xsl:if> | |
End of change by Parwati --> | |
<xsl:apply-templates select="w:body|w:cfChunk"/> | |
<xsl:if test="//v:background"> | |
<xsl:for-each select="//v:background[1]"> | |
<xsl:call-template name="copyElements"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:for-each select="//aml:annotation[@w:type='Word.Comment']"> | |
<xsl:call-template name="DisplayAnnotationText"/> | |
</xsl:for-each> | |
<xsl:if test="//w:body//w:footnote"> | |
<xsl:variable name="start"> | |
<xsl:choose> | |
<xsl:when test="$ndDocPr/w:footnotePr/w:numStart"> | |
<xsl:value-of select="$ndDocPr/w:footnotePr/w:numStart/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="0"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<hr align="left" size="1" width="33%"/> | |
<xsl:for-each select="//w:body//w:footnote"> | |
<a> | |
<xsl:attribute name="href"> | |
<xsl:text>#</xsl:text> | |
<xsl:value-of select="$footnoteRefLink"/> | |
<xsl:value-of select="position() + $start"/> | |
</xsl:attribute> | |
<xsl:attribute name="target"> | |
<xsl:text>_self</xsl:text> | |
</xsl:attribute> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="$footnoteLink"/> | |
<xsl:value-of select="position() + $start"/> | |
</xsl:attribute> | |
<xsl:text>[</xsl:text> | |
<xsl:value-of select="position() + $start"/> | |
<xsl:text>]</xsl:text> | |
</a> | |
<xsl:apply-templates select="*"/> | |
</xsl:for-each> | |
</xsl:if> | |
<xsl:if test="//w:body//w:endnote"> | |
<xsl:variable name="start"> | |
<xsl:choose> | |
<xsl:when test="$ndDocPr/w:endnotePr/w:numStart"> | |
<xsl:value-of select="$ndDocPr/w:endnotePr/w:numStart/@w:val"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="0"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<hr align="left" size="1" width="33%"/> | |
<xsl:for-each select="//w:body//w:endnote"> | |
<a> | |
<xsl:attribute name="href"> | |
<xsl:text>#</xsl:text> | |
<xsl:value-of select="$endnoteRefLink"/> | |
<xsl:value-of select="position() + $start"/> | |
</xsl:attribute> | |
<xsl:attribute name="target"> | |
<xsl:text>_self</xsl:text> | |
</xsl:attribute> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="$endnoteLink"/> | |
<xsl:value-of select="position() + $start"/> | |
</xsl:attribute> | |
<xsl:text>[</xsl:text> | |
<xsl:value-of select="position() + $start"/> | |
<xsl:text>]</xsl:text> | |
</a> | |
<xsl:apply-templates select="*"/> | |
</xsl:for-each> | |
</xsl:if> | |
<!-- Added for column rendering by Parwati | |
<xsl:if test="//w:body/w:sectPr/w:cols/@w:num | //w:body/w:p/w:pPr/w:sectPr/w:cols[@w:num] | //w:body/w:sdt/w:sdtContent"> | |
<xsl:text disable-output-escaping="yes"></td></xsl:text> | |
<xsl:text disable-output-escaping="yes"></tr></xsl:text> | |
<xsl:text disable-output-escaping="yes"></table></xsl:text> | |
</xsl:if> | |
End of change by Parwati --> | |
<!--<xsl:if test="//w:body//w:sdt//w:sdtContent and //w:body/w:p/w:r/w:lastRenderedPageBreak"> --><!-- For coverpage Added by Parwati--><!-- | |
<xsl:text disable-output-escaping="yes"></div></xsl:text> | |
</xsl:if>--> | |
</body> | |
</html> | |
</xsl:template> | |
<xsl:template match="w:drawing"> | |
<xsl:variable name="w"> | |
<xsl:value-of select=".//wp:extent/@cx"/> | |
</xsl:variable> | |
<xsl:variable name="h"> | |
<xsl:value-of select=".//wp:extent/@cy"/> | |
</xsl:variable> | |
<img src="?image={.//a:blip/@r:embed[1]}"> | |
<xsl:attribute name="width"> | |
<xsl:value-of select="number($w) div 9525"/>px | |
</xsl:attribute> | |
<xsl:attribute name="height"> | |
<xsl:value-of select="number($h) div 9525"/>px | |
</xsl:attribute> | |
</img> | |
</xsl:template> | |
<xsl:template match="w:customXml"> | |
<xsl:apply-templates select="*"/> | |
</xsl:template> | |
<xsl:template match="/"> | |
<!--ADDED for Equations --> | |
<xsl:if test="$pmathml"> | |
<xsl:processing-instruction name="xml-stylesheet" | |
>type="text/xsl" href="<xsl:value-of select="$pmathml"/>" | |
</xsl:processing-instruction> | |
</xsl:if> | |
<xsl:if test="$dtd"> | |
<xsl:text disable-output-escaping="yes"><![CDATA[ | |
<!DOCTYPE html SYSTEM "]]></xsl:text> | |
<xsl:value-of select="$dtd"/> | |
<xsl:text disable-output-escaping="yes"><![CDATA[" [ | |
<!ENTITY % MATHML.prefixed "INCLUDE" > | |
<!ENTITY % MATHML.prefix "mml" > | |
]> | |
]]> | |
</xsl:text> | |
</xsl:if> | |
<!--ADDED for Equations --> | |
<xsl:apply-templates select="*"/> | |
</xsl:template> | |
<!--ADDED FOR MATHML SUPPORT BY SHUBHA --> | |
<!-- Every single unicode character that is recognized by OMML as an operator --> | |
<xsl:variable name="sOperators" | |
select="concat( | |
'!"()+,-/⫾:;<', | |
'=>?[\]{|}¡¬±', | |
'·¿×÷        ', | |
' ‐‒–—‖†‡•․‥…', | |
'‼⁀⁎⁏⁐ ⁡⁢⁣⅀←↑', | |
'→↓↔↕↖↗↘↙↚↛↜↝', | |
'↞↟↠↡↢↣↤↥↦↧↨↩', | |
'↪↫↬↭↮↯↰↱↲↳↶↷', | |
'↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅', | |
'⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑', | |
'⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝', | |
'⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩', | |
'⇴⇵⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿', | |
'∀∁∂∃∄∆∇∈∉∊∋∌', | |
'∍∏∐∑−∓∔∕∖∗∘∙', | |
'√∛∜∝∣∤∥∦∧∨∩∪', | |
'∫∬∭∮∯∰∱∲∳∴∵∶', | |
'∷∸∹∺∻∼∽∾≀≁≂≃', | |
'≄≅≆≇≈≉≊≋≌≍≎≏', | |
'≐≑≒≓≔≕≖≗≘≙≚≛', | |
'≜≝≞≟≠≡≢≣≤≥≦≧', | |
'≨≩≪≫≬≭≮≯≰≱≲≳', | |
'≴≵≶≷≸≹≺≻≼≽≾≿', | |
'⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋', | |
'⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗', | |
'⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⊢⊣', | |
'⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰', | |
'⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼', | |
'⊽⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊', | |
'⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖', | |
'⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢', | |
'⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮', | |
'⋯⋰⋱⋲⋳⋴⋵⋶⋷⋸⋹⋺', | |
'⋻⋼⋽⋾⋿⌅⌆⌈⌉⌊⌋⌜', | |
'⌝⌞⌟⌢⌣〈〉⌽⌿⎰⎱▲', | |
'△▴▵▶▷▸▹▼▽▾▿◀', | |
'◁◂◃◄◅◊○◦◫◬◸◹', | |
'◺◻◼◽◾◿★☆❲❳⟑⟒', | |
'⟓⟔⟕⟖⟗⟘⟙⟚⟛⟜⟝⟞', | |
'⟟⟠⟡⟢⟣⟤⟥⟦⟧⟨⟩⟪', | |
'⟫⟰⟱⟲⟳⟴⟵⟶⟷⟸⟹⟺', | |
'⟻⟼⟽⟾⟿⤀⤁⤂⤃⤄⤅⤆', | |
'⤇⤈⤉⤊⤋⤌⤍⤎⤏⤐⤑⤒', | |
'⤓⤔⤕⤖⤗⤘⤙⤚⤛⤜⤝⤞', | |
'⤟⤠⤡⤢⤣⤤⤥⤦⤧⤨⤩⤪', | |
'⤫⤬⤭⤮⤯⤰⤱⤲⤳⤴⤵⤶', | |
'⤷⤸⤹⤺⤻⤼⤽⤾⤿⥀⥁⥂', | |
'⥃⥄⥅⥆⥇⥈⥉⥊⥋⥌⥍⥎', | |
'⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚', | |
'⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦', | |
'⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲', | |
'⥳⥴⥵⥶⥷⥸⥹⥺⥻⥼⥽⥾', | |
'⥿⦀⦂⦃⦄⦅⦆⦇⦈⦉⦊⦋', | |
'⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖⦗', | |
'⦘⦙⦚⦶⦷⦸⦹⧀⧁⧄⧅⧆', | |
'⧇⧈⧎⧏⧐⧑⧒⧓⧔⧕⧖⧗', | |
'⧘⧙⧚⧛⧟⧡⧢⧣⧤⧥⧦⧫', | |
'⧴⧵⧶⧷⧸⧹⧺⧻⧼⧽⧾⧿', | |
'⨀⨁⨂⨃⨄⨅⨆⨇⨈⨉⨊⨋', | |
'⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗', | |
'⨘⨙⨚⨛⨜⨝⨞⨟⨠⨡⨢⨣', | |
'⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨯', | |
'⨰⨱⨲⨳⨴⨵⨶⨷⨸⨹⨺⨻', | |
'⨼⨽⨾⨿⩀⩁⩂⩃⩄⩅⩆⩇', | |
'⩈⩉⩊⩋⩌⩍⩎⩏⩐⩑⩒⩓', | |
'⩔⩕⩖⩗⩘⩙⩚⩛⩜⩝⩞⩟', | |
'⩠⩡⩢⩣⩤⩥⩦⩧⩨⩩⩪⩫', | |
'⩬⩭⩮⩯⩰⩱⩲⩳⩴⩵⩶⩷', | |
'⩸⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃', | |
'⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏', | |
'⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛', | |
'⪜⪝⪞⪟⪠⪡⪢⪣⪤⪥⪦⪧', | |
'⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳', | |
'⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿', | |
'⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋', | |
'⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗', | |
'⫘⫙⫚⫛⫝̸⫝⫞⫟⫠⫢⫣⫤', | |
'⫥⫦⫧⫨⫩⫪⫫⫬⫭⫮⫯⫰', | |
'⫲⫳⫴⫵⫶⫷⫸⫹⫺⫻⫼⫽')"/> | |
<!-- A string of '-'s repeated exactly as many times as the operators above --> | |
<xsl:variable name="sMinuses"> | |
<xsl:call-template name="SRepeatChar"> | |
<xsl:with-param name="cchRequired" select="string-length($sOperators)"/> | |
<xsl:with-param name="ch" select="'-'"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<!-- Every single unicode character that is recognized by OMML as a number --> | |
<xsl:variable name="sNumbers" select="'0123456789'"/> | |
<!-- A string of '0's repeated exactly as many times as the list of numbers above --> | |
<xsl:variable name="sOnes"> | |
<xsl:call-template name="SRepeatChar"> | |
<xsl:with-param name="cchRequired" select="string-length($sNumbers)"/> | |
<xsl:with-param name="ch" select="'1'"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<!-- %%Template: SReplace | |
Replace all occurences of sOrig in sInput with sReplacement | |
and return the resulting string. --> | |
<xsl:template name="SReplace"> | |
<xsl:param name="sInput"/> | |
<xsl:param name="sOrig"/> | |
<xsl:param name="sReplacement"/> | |
<xsl:choose> | |
<xsl:when test="not(contains($sInput, $sOrig))"> | |
<xsl:value-of select="$sInput"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="sBefore" select="substring-before($sInput, $sOrig)"/> | |
<xsl:variable name="sAfter" select="substring-after($sInput, $sOrig)"/> | |
<xsl:variable name="sAfterProcessed"> | |
<xsl:call-template name="SReplace"> | |
<xsl:with-param name="sInput" select="$sAfter"/> | |
<xsl:with-param name="sOrig" select="$sOrig"/> | |
<xsl:with-param name="sReplacement" select="$sReplacement"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:value-of select="concat($sBefore, concat($sReplacement, $sAfterProcessed))"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- --> | |
<xsl:template match="m:e | m:den | m:num | m:lim | m:sup | m:sub"> | |
<xsl:choose> | |
<!-- If there is no scriptLevel speified, just call through --> | |
<xsl:when test="not(m:argPr[last()]/m:scrLvl/@m:val)"> | |
<!-- DPC make sure only one element returned --> | |
<mml:mrow> | |
<xsl:apply-templates select="*"/> | |
</mml:mrow> | |
</xsl:when> | |
<!-- Otherwise, create an mstyle and set the script level --> | |
<xsl:otherwise> | |
<mml:mstyle> | |
<xsl:attribute name="scriptlevel"> | |
<xsl:value-of select="m:argPr[last()]/m:scrLvl/@m:val"/> | |
</xsl:attribute> | |
<xsl:apply-templates select="*"/> | |
</mml:mstyle> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- | |
MS stylesheet uses DOE which is (a) unevil, (b) non necessary, and (c) breaks the pass through a temporay tree to get rid of namespace nodes. | |
repeat the templates here without doe (and without double quoting amp) | |
--> | |
<xsl:template match="m:nary"> | |
<xsl:variable name="sLowerCaseSubHide"> | |
<xsl:choose> | |
<xsl:when test="count(m:naryPr[last()]/m:subHide) = 0"> | |
<xsl:text>off</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="translate(m:naryPr[last()]/m:subHide/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="sLowerCaseSupHide"> | |
<xsl:choose> | |
<xsl:when test="count(m:naryPr[last()]/m:supHide) = 0"> | |
<xsl:text>off</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="translate(m:naryPr[last()]/m:supHide/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not($sLowerCaseSupHide='off') and | |
not($sLowerCaseSubHide='off')"> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</xsl:when> | |
<xsl:when test="not($sLowerCaseSubHide='off')"> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msup> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:msup> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mover> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:mover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="not($sLowerCaseSupHide='off')"> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msub> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:msub> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munder> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:munder> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msubsup> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:msubsup> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munderover> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:munderover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
</xsl:template> | |
<!--<xsl:template name="CreateGroupChr"> | |
<xsl:variable name="sLowerCasePos" select="translate(m:groupChrPr[last()]/m:pos/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')" /> | |
<xsl:choose> | |
<xsl:when test="$sLowerCasePos!='top' or | |
not(m:groupChrPr[last()]/m:pos/@m:val) or | |
m:groupChrPr[last()]/m:pos/@m:val=''"> | |
<mml:munder> | |
<xsl:apply-templates select="m:e[1]" /> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="string-length(m:groupChrPr[last()]/m:chr/@m:val) >= 1"> | |
<xsl:value-of select="substring(m:groupChrPr[last()]/m:chr/@m:val,1,1)" /> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="no">⏟</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</mml:munder> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mover> | |
<xsl:apply-templates select="m:e[1]" /> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="string-length(m:groupChrPr[last()]/m:chr/@m:val) >= 1"> | |
<xsl:value-of select="substring(m:groupChrPr[last()]/m:chr/@m:val,1,1)" /> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="no">⏟</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</mml:mover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template>--> | |
<xsl:template match="m:sSub"> | |
<mml:msub> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:mrow> | |
</mml:msub> | |
</xsl:template> | |
<xsl:template match="m:sSup"> | |
<mml:msup> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:mrow> | |
</mml:msup> | |
</xsl:template> | |
<xsl:template match="m:sSubSup"> | |
<mml:msubsup> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:mrow> | |
</mml:msubsup> | |
</xsl:template> | |
<xsl:template match="m:groupChr"> | |
<xsl:variable name="sLowerCaseOpEmu" select="translate(m:groupChrPr[last()]/m:opEmu/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCaseOpEmu='on'"> | |
<mml:mrow> | |
<xsl:call-template name="CreateGroupChr"/> | |
</mml:mrow> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:call-template name="CreateGroupChr"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!--Display cos,sin --> | |
<xsl:template name="fName"> | |
<xsl:for-each select="m:fName/*"> | |
<xsl:apply-templates select="."/> | |
</xsl:for-each> | |
</xsl:template> | |
<xsl:template match="m:func"> | |
<mml:mrow> | |
<mml:mrow> | |
<xsl:call-template name="fName"/> | |
</mml:mrow> | |
<mml:mo>⁡</mml:mo> | |
<xsl:apply-templates select="*[position() > 1]"/> | |
</mml:mrow> | |
</xsl:template> | |
<!-- %%Template: match m:f | |
m:f maps directly to mfrac. | |
--> | |
<xsl:template match="m:f"> | |
<mml:mfrac> | |
<xsl:call-template name="CreateMathMLFracProp"> | |
<xsl:with-param name="type" select="m:fPr[last()]/m:type/@m:val"/> | |
<xsl:with-param name="baseJc" select="m:fPr[last()]/m:baseJc/@m:val"/> | |
<xsl:with-param name="numJc" select="m:fPr[last()]/m:numJc/@m:val"/> | |
<xsl:with-param name="denJc" select="m:fPr[last()]/m:type/@m:val"/> | |
</xsl:call-template> | |
<mml:mrow> | |
<xsl:apply-templates select="m:num[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:den[1]"/> | |
</mml:mrow> | |
</mml:mfrac> | |
</xsl:template> | |
<!-- %%Template: CreateMathMLFracProp | |
Make fraction properties based on supplied parameters. | |
OMML differentiates between a linear fraction and a skewed | |
one. For MathML, we write both as bevelled. | |
--> | |
<xsl:template name="CreateMathMLFracProp"> | |
<xsl:param name="type"/> | |
<xsl:param name="baseJc"/> | |
<xsl:param name="numJc"/> | |
<xsl:param name="denJc"/> | |
<xsl:variable name="sLowerCaseType" | |
select="translate($type, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:variable name="sLowerCaseNumJc" | |
select="translate($numJc, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:variable name="sLowerCaseDenJc" | |
select="translate($denJc, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:if test="$sLowerCaseType='skw' or $sLowerCaseType='lin'"> | |
<xsl:attribute name="bevelled">true</xsl:attribute> | |
</xsl:if> | |
<xsl:if test="$sLowerCaseType='nobar'"> | |
<xsl:attribute name="linethickness">0pt</xsl:attribute> | |
</xsl:if> | |
<xsl:choose> | |
<xsl:when test="sLowerCaseNumJc='right'"> | |
<xsl:attribute name="numalign">right</xsl:attribute> | |
</xsl:when> | |
<xsl:when test="sLowerCaseNumJc='left'"> | |
<xsl:attribute name="numalign">left</xsl:attribute> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="sLowerCaseDenJc='right'"> | |
<xsl:attribute name="numalign">right</xsl:attribute> | |
</xsl:when> | |
<xsl:when test="sLowerCaseDenJc='left'"> | |
<xsl:attribute name="numalign">left</xsl:attribute> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="m:bar"> | |
<xsl:variable name="sLowerCasePos" select="translate(m:barPr/m:pos/@m:val, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCasePos!='bot' or | |
not($sLowerCasePos) or | |
$sLowerCasePos='' "> | |
<mml:mover> | |
<xsl:attribute name="accent">true</xsl:attribute> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:text disable-output-escaping="yes">&#x000AF;</xsl:text> | |
</mml:mo> | |
</mml:mover> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munder> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:text disable-output-escaping="yes">&#x00332;</xsl:text> | |
</mml:mo> | |
</mml:munder> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- %%Template match m:d | |
Process a delimiter. | |
--> | |
<xsl:template match="m:d"> | |
<mml:mfenced> | |
<!-- open: default is ( for both OMML and MathML --> | |
<xsl:if test="m:dPr[1]/m:begChr/@m:val and not(m:dPr[1]/m:begChr/@m:val ='(')"> | |
<xsl:attribute name="open"> | |
<xsl:value-of select="m:dPr[1]/m:begChr/@m:val"/> | |
</xsl:attribute> | |
</xsl:if> | |
<!-- close: default is ) for both OMML and MathML --> | |
<xsl:if test="m:dPr[1]/m:endChr/@m:val and not(m:dPr[1]/m:endChr/@m:val =')')"> | |
<xsl:attribute name="close"> | |
<xsl:value-of select="m:dPr[1]/m:endChr/@m:val"/> | |
</xsl:attribute> | |
</xsl:if> | |
<!-- separator: the default is ',' for MathML, and '|' for OMML --> | |
<xsl:choose> | |
<!-- Matches MathML default. Write nothing --> | |
<xsl:when test="m:dPr[1]/m:sepChr/@m:val = ','"/> | |
<!-- OMML default: | --> | |
<xsl:when test="not(m:dPr[1]/m:sepChr/@m:val)"> | |
<xsl:attribute name="separators"> | |
<xsl:value-of select="'|'"/> | |
</xsl:attribute> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:attribute name="separators"> | |
<xsl:value-of select="m:dPr[1]/m:sepChr/@m:val"/> | |
</xsl:attribute> | |
</xsl:otherwise> | |
</xsl:choose> | |
<!-- now write all the children. Put each one into an mrow | |
just in case it produces multiple runs, etc --> | |
<xsl:for-each select="m:e"> | |
<mml:mrow> | |
<xsl:apply-templates select="."/> | |
</mml:mrow> | |
</xsl:for-each> | |
</mml:mfenced> | |
</xsl:template> | |
<xsl:template match="m:r"> | |
<xsl:variable name="sLowerCaseNor" select="translate(child::m:rPr[last()]/m:nor/@m:val, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCaseNor='on'"> | |
<mml:mtext> | |
<xsl:value-of select=".//m:t"/> | |
</mml:mtext> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:for-each select=".//m:t"> | |
<xsl:call-template name="ParseMt"> | |
<xsl:with-param name="sToParse" select="text()"/> | |
<xsl:with-param name="mscr" select="../m:rPr[last()]/m:scr/@m:val"/> | |
<xsl:with-param name="msty" select="../m:rPr[last()]/m:sty/@m:val"/> | |
<xsl:with-param name="mnor" select="../m:rPr[last()]/m:nor/@m:val"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template name="CreateAttributesforToken"> | |
<xsl:param name="mscr"/> | |
<xsl:param name="msty"/> | |
<xsl:param name="mnor"/> | |
<xsl:param name="nCharToPrint"/> | |
<xsl:param name="sTokenType"/> | |
<xsl:variable name="sLowerCaseNor" select="translate($mnor, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCaseNor = 'on'"> | |
<xsl:attribute name="mathvariant">normal</xsl:attribute> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="mathvariant"> | |
<xsl:choose> | |
<!-- numbers don't care --> | |
<xsl:when test="$sTokenType='mn'"/> | |
<xsl:when test="$mscr='monospace'">monospace</xsl:when> | |
<xsl:when test="$mscr='sans-serif' and $msty='i'">sans-serif-italic</xsl:when> | |
<xsl:when test="$mscr='sans-serif' and $msty='b'">bold-sans-serif</xsl:when> | |
<xsl:when test="$mscr='sans-serif'">sans-serif</xsl:when> | |
<xsl:when test="$mscr='fraktur' and $msty='b'">bold-fraktur</xsl:when> | |
<xsl:when test="$mscr='fraktur'">fraktur</xsl:when> | |
<xsl:when test="$mscr='double-struck'">double-struck</xsl:when> | |
<xsl:when test="$mscr='script' and $msty='b'">bold-script</xsl:when> | |
<xsl:when test="$mscr='script'">script</xsl:when> | |
<xsl:when test="($mscr='roman' or not($mscr) or $mscr='') and $msty='b'">bold</xsl:when> | |
<xsl:when test="($mscr='roman' or not($mscr) or $mscr='') and $msty='i'">italic</xsl:when> | |
<xsl:when test="($mscr='roman' or not($mscr) or $mscr='') and $msty='p'">normal</xsl:when> | |
<xsl:otherwise/> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="fontweight"> | |
<xsl:choose> | |
<xsl:when test="$msty='b' or $msty='bi'">bold</xsl:when> | |
<xsl:otherwise>normal</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="fontstyle"> | |
<xsl:choose> | |
<xsl:when test="$msty='p' or $msty='b'">normal</xsl:when> | |
<xsl:otherwise>italic</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<!-- Writing of attributes begins here --> | |
<xsl:choose> | |
<!-- Don't write mathvariant for operators unless they want to be normal --> | |
<xsl:when test="$sTokenType='mo' and $mathvariant!='normal'"/> | |
<!-- A single character within an mi is already italics, don't write --> | |
<xsl:when | |
test="$sTokenType='mi' and $nCharToPrint=1 and ($mathvariant='' or $mathvariant='italic')"/> | |
<xsl:when | |
test="$sTokenType='mi' and $nCharToPrint > 1 and ($mathvariant='' or $mathvariant='italic')"> | |
<xsl:attribute name="mathvariant"> | |
<xsl:value-of select="'italic'"/> | |
</xsl:attribute> | |
</xsl:when> | |
<xsl:when test="$mathvariant!='italic' and $mathvariant!=''"> | |
<xsl:attribute name="mathvariant"> | |
<xsl:value-of select="$mathvariant"/> | |
</xsl:attribute> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:if test="not($sTokenType='mi' and $nCharToPrint=1) and $fontstyle='italic'"> | |
<xsl:attribute name="fontstyle">italic</xsl:attribute> | |
</xsl:if> | |
<xsl:if test="$fontweight='bold'"> | |
<xsl:attribute name="fontweight">bold</xsl:attribute> | |
</xsl:if> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="m:eqArr"> | |
<mml:mtable> | |
<xsl:attribute name="frame">none</xsl:attribute> | |
<xsl:attribute name="columnlines">none</xsl:attribute> | |
<xsl:attribute name="rowlines">none</xsl:attribute> | |
<xsl:for-each select="m:e"> | |
<mml:mtr> | |
<mml:mtd> | |
<mml:maligngroup/> | |
<xsl:choose> | |
<xsl:when test="m:argPr[last()]/m:scrLvl/@m:val!='0' or | |
not(m:argPr[last()]/m:scrLvl/@m:val) or | |
m:argPr[last()]/m:scrLvl/@m:val=''"> | |
<mml:mrow> | |
<xsl:call-template name="CreateEqArrRow"> | |
<xsl:with-param name="align" select="1"/> | |
<xsl:with-param name="ndCur" select="*[1]"/> | |
</xsl:call-template> | |
</mml:mrow> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mstyle> | |
<xsl:attribute name="scriptlevel"> | |
<xsl:value-of select="m:argPr[last()]/m:scrLvl/@m:val"/> | |
</xsl:attribute> | |
<xsl:call-template name="CreateEqArrRow"> | |
<xsl:with-param name="align" select="1"/> | |
<xsl:with-param name="ndCur" select="*[1]"/> | |
</xsl:call-template> | |
</mml:mstyle> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mtd> | |
</mml:mtr> | |
</xsl:for-each> | |
</mml:mtable> | |
</xsl:template> | |
<xsl:template name="CreateEqArrRow"> | |
<xsl:param name="align"/> | |
<xsl:param name="ndCur"/> | |
<xsl:variable name="sAllMt"> | |
<xsl:for-each select="$ndCur/m:t"> | |
<xsl:value-of select="."/> | |
</xsl:for-each> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="local-name($ndCur)='r' and | |
namespace-uri($ndCur)='http://schemas.microsoft.com/office/omml/2004/12/core'"> | |
<xsl:call-template name="ParseEqArrMr"> | |
<xsl:with-param name="sToParse" select="$sAllMt"/> | |
<xsl:with-param name="mscr" select="../m:rPr[last()]/m:scr/@m:val"/> | |
<xsl:with-param name="msty" select="../m:rPr[last()]/m:sty/@m:val"/> | |
<xsl:with-param name="mnor" select="../m:rPr[last()]/m:nor/@m:val"/> | |
<xsl:with-param name="align" select="$align"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:apply-templates select="$ndCur"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:if test="count($ndCur/following-sibling::*) > 0"> | |
<xsl:variable name="cAmp"> | |
<xsl:call-template name="CountAmp"> | |
<xsl:with-param name="sAllMt" select="$sAllMt"/> | |
<xsl:with-param name="cAmp" select="0"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:call-template name="CreateEqArrRow"> | |
<xsl:with-param name="align" select="($align+($cAmp mod 2)) mod 2"/> | |
<xsl:with-param name="ndCur" select="$ndCur/following-sibling::*[1]"/> | |
</xsl:call-template> | |
</xsl:if> | |
</xsl:template> | |
<xsl:template name="CountAmp"> | |
<xsl:param name="sAllMt"/> | |
<xsl:param name="cAmp"/> | |
<xsl:choose> | |
<xsl:when test="string-length(substring-after($sAllMt, '&')) > 0 or | |
substring($sAllMt, string-length($sAllMt))='&'"> | |
<xsl:call-template name="CountAmp"> | |
<xsl:with-param name="sAllMt" select="substring-after($sAllMt, '&')"/> | |
<xsl:with-param name="cAmp" select="$cAmp+1"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$cAmp"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- %%Template: ParseEqArrMr | |
Similar to ParseMt, but this one has to do more for an equation | |
array. The presence of & in a run that is in an equation array | |
indicates alignment | |
--> | |
<xsl:template name="ParseEqArrMr"> | |
<xsl:param name="sToParse"/> | |
<xsl:param name="msty"/> | |
<xsl:param name="mscr"/> | |
<xsl:param name="mnor"/> | |
<xsl:param name="align"/> | |
<xsl:if test="string-length($sToParse) > 0"> | |
<xsl:choose> | |
<xsl:when test="substring($sToParse,1,1) = '&'"> | |
<xsl:choose> | |
<xsl:when test="$align='0'"> | |
<mml:maligngroup/> | |
</xsl:when> | |
<xsl:when test="$align='1'"> | |
<mml:malignmark> | |
<xsl:attribute name="edge">left</xsl:attribute> | |
</mml:malignmark> | |
</xsl:when> | |
</xsl:choose> | |
<xsl:call-template name="ParseEqArrMr"> | |
<xsl:with-param name="sToParse" select="substring($sToParse,2)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="align"> | |
<xsl:choose> | |
<xsl:when test="$align='1'">0</xsl:when> | |
<xsl:otherwise>1</xsl:otherwise> | |
</xsl:choose> | |
</xsl:with-param> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:variable name="sRepNumWith1"> | |
<xsl:call-template name="SReplaceNumWithOne"> | |
<xsl:with-param name="sToParse" select="$sToParse"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="sRepOperWith-"> | |
<xsl:call-template name="SReplaceOperWithMinus"> | |
<xsl:with-param name="sToParse" select="$sRepNumWith1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="iFirstOper" | |
select="string-length($sRepOperWith-) - string-length(substring-after($sRepOperWith-, '-'))"/> | |
<xsl:variable name="iFirstNum" | |
select="string-length($sRepOperWith-) - string-length(substring-after($sRepOperWith-, '0'))"/> | |
<xsl:variable name="iFirstAmp" | |
select="string-length($sRepOperWith-) - string-length(substring-after($sRepOperWith-, '&'))"/> | |
<xsl:variable name="fNumAtPos1"> | |
<xsl:choose> | |
<xsl:when test="substring($sRepOperWith-,1,1)='0'">1</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="fOperAtPos1"> | |
<xsl:choose> | |
<xsl:when test="substring($sRepOperWith-,1,1)='-'">1</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<!-- Case I: The string begins with neither a number, nor an operator --> | |
<xsl:when test="$fNumAtPos1='0' and $fOperAtPos1='0'"> | |
<xsl:variable name="nCharToPrint"> | |
<xsl:choose> | |
<xsl:when test="($iFirstOper=$iFirstNum) and | |
($iFirstAmp=$iFirstOper) and | |
($iFirstOper=string-length($sToParse)) and | |
$fNumAtPos1='0' and | |
$fOperAtPos1='0'"> | |
<xsl:value-of select="string-length($sToParse)"/> | |
</xsl:when> | |
<xsl:when test="($iFirstOper < $iFirstNum) and | |
($iFirstOper < $iFirstAmp)"> | |
<xsl:value-of select="$iFirstOper - 1"/> | |
</xsl:when> | |
<xsl:when test="($iFirstNum < $iFirstOper) and | |
($iFirstNum < $iFirstAmp)"> | |
<xsl:value-of select="$iFirstNum - 1"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$iFirstAmp - 1"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<mml:mi> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="nCharToPrint" select="$nCharToPrint"/> | |
<xsl:with-param name="sTokenType" select="'mi'"/> | |
</xsl:call-template> | |
<xsl:value-of select="substring($sToParse,1,$nCharToPrint)"/> | |
</mml:mi> | |
<xsl:call-template name="ParseEqArrMr"> | |
<xsl:with-param name="sToParse" select="substring($sToParse, $nCharToPrint+1)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="align" select="$align"/> | |
</xsl:call-template> | |
</xsl:when> | |
<!-- Case II: There is an operator at position 1 --> | |
<xsl:when test="$fOperAtPos1='1'"> | |
<mml:mo> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr"/> | |
<xsl:with-param name="msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="sTokenType" select="'mo'"/> | |
</xsl:call-template> | |
<xsl:value-of select="substring($sToParse,1,1)"/> | |
</mml:mo> | |
<xsl:call-template name="ParseEqArrMr"> | |
<xsl:with-param name="sToParse" select="substring($sToParse, 2)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="align" select="$align"/> | |
</xsl:call-template> | |
</xsl:when> | |
<!-- Case III: There is a number at position 1 --> | |
<xsl:otherwise> | |
<xsl:variable name="sConsecNum"> | |
<xsl:call-template name="SNumStart"> | |
<xsl:with-param name="sToParse" select="$sToParse"/> | |
<xsl:with-param name="sPattern" select="$sRepNumWith1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<mml:mn> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr"/> | |
<xsl:with-param name="msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="sTokenType" select="'mn'"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sConsecNum"/> | |
</mml:mn> | |
<xsl:call-template name="ParseEqArrMr"> | |
<xsl:with-param name="sToParse" select="substring-after($sToParse, $sConsecNum)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="align" select="$align"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<!-- %%Template: SNumStart | |
Return the longest substring of sToParse starting from the | |
start of sToParse that is a number. In addition, it takes the | |
pattern string, which is sToParse with all of its numbers | |
replaced with a 0. sPattern should be the same length | |
as sToParse | |
--> | |
<xsl:template name="SNumStart"> | |
<xsl:param name="sToParse" select="''"/> | |
<xsl:param name="sPattern" select="'$sToParse'"/> <!-- if we don't get anything, take the string itself --> | |
<xsl:choose> | |
<!-- the pattern says this is a number, recurse with the rest --> | |
<xsl:when test="substring($sPattern, 1, 1) = '1'"> | |
<xsl:call-template name="SNumStart"> | |
<xsl:with-param name="sToParse" select="$sToParse"/> | |
<xsl:with-param name="sPattern" select="substring($sPattern, 2)"/> | |
</xsl:call-template> | |
</xsl:when> | |
<!-- the pattern says we've run out of numbers. Take as many | |
characters from sToParse as we shaved off sPattern --> | |
<xsl:otherwise> | |
<xsl:value-of select="substring($sToParse, 1, string-length($sToParse) - string-length($sPattern))"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- %%Template: ParseMt | |
Produce a run of text. Technically, OMML makes no distinction | |
between numbers, operators, and other characters in a run. For | |
MathML we need to break these into mi, mn, or mo elements. | |
See also ParseEqArrMr | |
--> | |
<xsl:template name="ParseMt"> | |
<xsl:param name="sToParse"/> | |
<xsl:param name="msty"/> | |
<xsl:param name="mscr"/> | |
<xsl:param name="mnor"/> | |
<xsl:if test="string-length($sToParse) > 0"> | |
<xsl:variable name="sRepNumWith1"> | |
<xsl:call-template name="SReplaceNumWithOne"> | |
<xsl:with-param name="sToParse" select="$sToParse"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="sRepOperWith-"> | |
<xsl:call-template name="SReplaceOperWithMinus"> | |
<xsl:with-param name="sToParse" select="$sRepNumWith1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<xsl:variable name="iFirstOper" | |
select="string-length($sRepOperWith-) - string-length(substring-after($sRepOperWith-, '-'))"/> | |
<xsl:variable name="iFirstNum" | |
select="string-length($sRepOperWith-) - string-length(substring-after($sRepOperWith-, '0'))"/> | |
<xsl:variable name="fNumAtPos1"> | |
<xsl:choose> | |
<xsl:when test="substring($sRepOperWith-,1,1)='1'">1</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="fOperAtPos1"> | |
<xsl:choose> | |
<xsl:when test="substring($sRepOperWith-,1,1)='-'">1</xsl:when> | |
<xsl:otherwise>0</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<!-- Case I: The string begins with neither a number, nor an operator --> | |
<xsl:when test="$fOperAtPos1='0' and $fNumAtPos1='0'"> | |
<xsl:variable name="nCharToPrint"> | |
<xsl:choose> | |
<xsl:when test="($iFirstOper=$iFirstNum) and | |
($iFirstOper=string-length($sToParse)) and | |
(substring($sRepOperWith-, string-length($sRepOperWith-))!='0') and | |
(substring($sRepOperWith-, string-length($sRepOperWith-))!='-')"> | |
<xsl:value-of select="string-length($sToParse)"/> | |
</xsl:when> | |
<xsl:when test="$iFirstOper < $iFirstNum"> | |
<xsl:value-of select="$iFirstOper - 1"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="$iFirstNum - 1"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<mml:mi> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="nCharToPrint" select="$nCharToPrint"/> | |
<xsl:with-param name="sTokenType" select="'mi'"/> | |
</xsl:call-template> | |
<xsl:value-of select="translate(substring($sToParse,1,$nCharToPrint),' ',' ')"/> | |
</mml:mi> | |
<xsl:call-template name="ParseMt"> | |
<xsl:with-param name="sToParse" select="substring($sToParse, $nCharToPrint+1)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
</xsl:call-template> | |
</xsl:when> | |
<!-- Case II: There is an operator at position 1 --> | |
<xsl:when test="$fOperAtPos1='1'"> | |
<mml:mo> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr"/> | |
<xsl:with-param name="msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="sTokenType" select="'mo'"/> | |
</xsl:call-template> | |
<xsl:value-of select="substring($sToParse,1,1)"/> | |
</mml:mo> | |
<xsl:call-template name="ParseMt"> | |
<xsl:with-param name="sToParse" select="substring($sToParse, 2)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
</xsl:call-template> | |
</xsl:when> | |
<!-- Case III: There is a number at position 1 --> | |
<xsl:otherwise> | |
<xsl:variable name="sConsecNum"> | |
<xsl:call-template name="SNumStart"> | |
<xsl:with-param name="sToParse" select="$sToParse"/> | |
<xsl:with-param name="sPattern" select="$sRepNumWith1"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<mml:mn> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="'p'"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
<xsl:with-param name="sTokenType" select="'mn'"/> | |
</xsl:call-template> | |
<xsl:value-of select="$sConsecNum"/> | |
</mml:mn> | |
<xsl:call-template name="ParseMt"> | |
<xsl:with-param name="sToParse" select="substring-after($sToParse, $sConsecNum)"/> | |
<xsl:with-param name="mscr" select="$mscr"/> | |
<xsl:with-param name="msty" select="$msty"/> | |
<xsl:with-param name="mnor" select="$mnor"/> | |
</xsl:call-template> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:if> | |
</xsl:template> | |
<!-- %%Template SReplaceOperWithMinus | |
Go through the given string and replace every instance | |
of an operator with a minus '-'. This helps quickly identify | |
the first instance of an operator. | |
--> | |
<xsl:template name="SReplaceOperWithMinus"> | |
<xsl:param name="sToParse" select="''"/> | |
<xsl:value-of select="translate($sToParse, $sOperators, $sMinuses)"/> | |
</xsl:template> | |
<!-- %%Template SRepeatCharAcc | |
The core of SRepeatChar with an accumulator. The current | |
string is in param $acc, and we will double and recurse, | |
if we're less than half of the required length or else just | |
add the right amount of characters to the accumulator and | |
return | |
--> | |
<xsl:template name="SRepeatCharAcc"> | |
<xsl:param name="cchRequired" select="1"/> | |
<xsl:param name="ch" select="'-'"/> | |
<xsl:param name="acc" select="$ch"/> | |
<xsl:variable name="cchAcc" select="string-length($acc)"/> | |
<xsl:choose> | |
<xsl:when test="(2 * $cchAcc) < $cchRequired"> | |
<xsl:call-template name="SRepeatCharAcc"> | |
<xsl:with-param name="cchRequired" select="$cchRequired"/> | |
<xsl:with-param name="ch" select="$ch"/> | |
<xsl:with-param name="acc" select="concat($acc, $acc)"/> | |
</xsl:call-template> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="concat($acc, substring($acc, 1, $cchRequired - $cchAcc))"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- %%Template SRepeatChar | |
Generates a string nchRequired long by repeating the given character ch | |
--> | |
<xsl:template name="SRepeatChar"> | |
<xsl:param name="cchRequired" select="1"/> | |
<xsl:param name="ch" select="'-'"/> | |
<xsl:call-template name="SRepeatCharAcc"> | |
<xsl:with-param name="cchRequired" select="$cchRequired"/> | |
<xsl:with-param name="ch" select="$ch"/> | |
<xsl:with-param name="acc" select="$ch"/> | |
</xsl:call-template> | |
</xsl:template> | |
<!-- %%Template SReplaceNumWithOne | |
Go through the given string and replace every instance | |
of an number with a One '1'. This helps quickly identify | |
the first occurence of a number. | |
Considers the '.' and ',' part of a number iff they are sandwiched | |
between two other numbers. 1.3 will be recognized as a number, | |
x.3 will not be. Since these characters can also be an operator, this | |
should be called before SReplaceOperWithMinus. | |
--> | |
<xsl:template name="SReplaceNumWithOne"> | |
<xsl:param name="sToParse" select="''"/> | |
<!-- First do a simple replace. Numbers will all be come 0's. | |
After this point, the pattern involving the . or , that | |
we are looking for will become 1.1 or 1,1 --> | |
<xsl:variable name="sSimpleReplace" select="translate($sToParse, $sNumbers, $sOnes)"/> | |
<!-- And then, replace 1.1 with just 111. This means that the . will | |
become part of the number --> | |
<xsl:variable name="sReplacePeriod"> | |
<xsl:call-template name="SReplace"> | |
<xsl:with-param name="sInput" select="$sSimpleReplace"/> | |
<xsl:with-param name="sOrig" select="'1.1'"/> | |
<xsl:with-param name="sReplacement" select="'111'"/> | |
</xsl:call-template> | |
</xsl:variable> | |
<!-- And then, replace 1,1 with just 111. This means that the , will | |
become part of the number --> | |
<xsl:call-template name="SReplace"> | |
<xsl:with-param name="sInput" select="$sReplacePeriod"/> | |
<xsl:with-param name="sOrig" select="'1,1'"/> | |
<xsl:with-param name="sReplacement" select="'111'"/> | |
</xsl:call-template> | |
</xsl:template> | |
<xsl:template match="m:m"> | |
<mml:mtable> | |
<xsl:call-template name="CreateMathMLMatrixAttr"> | |
<xsl:with-param name="mcJc" select="m:mPr[last()]/m:mcs/m:mc/m:mcPr[last()]/m:mcJc/@m:val"/> | |
</xsl:call-template> | |
<xsl:for-each select="m:mr"> | |
<mml:mtr> | |
<xsl:for-each select="m:e"> | |
<mml:mtd> | |
<xsl:apply-templates select="."/> | |
</mml:mtd> | |
</xsl:for-each> | |
</mml:mtr> | |
</xsl:for-each> | |
</mml:mtable> | |
</xsl:template> | |
<xsl:template name="CreateMathMLMatrixAttr"> | |
<xsl:param name="mcJc"/> | |
<xsl:variable name="sLowerCaseMcjc" select="translate($mcJc, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCaseMcjc='left'"> | |
<xsl:attribute name="columnalign">left</xsl:attribute> | |
</xsl:when> | |
<xsl:when test="$sLowerCaseMcjc='right'"> | |
<xsl:attribute name="columnalign">right</xsl:attribute> | |
</xsl:when> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="m:limLow"> | |
<mml:munder> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:lim[1]"/> | |
</mml:mrow> | |
</mml:munder> | |
</xsl:template> | |
<xsl:template match="m:limUpp"> | |
<mml:mover> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:lim[1]"/> | |
</mml:mrow> | |
</mml:mover> | |
</xsl:template> | |
<xsl:template match="m:rad"> | |
<xsl:variable name="sLowerCaseDegHide" select="translate(m:radPr[last()]/m:degHide/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCaseDegHide='on'"> | |
<mml:msqrt> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:msqrt> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mroot> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:deg[1]"/> | |
</mml:mrow> | |
</mml:mroot> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="m:acc"> | |
<mml:mover> | |
<xsl:attribute name="accent">true</xsl:attribute> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mtext> | |
<xsl:call-template name="CreateAttributesforToken"> | |
<xsl:with-param name="mscr" select="m:e[1]/*/m:rPr[last()]/m:scr/@m:val"/> | |
<xsl:with-param name="msty" select="m:e[1]/*/m:rPr[last()]/m:sty/@m:val"/> | |
<xsl:with-param name="mnor" select="m:e[1]/*/m:rPr[last()]/m:nor/@m:val"/> | |
</xsl:call-template> | |
<xsl:choose> | |
<xsl:when test="not(m:accPr[last()]/m:chr)"> | |
<xsl:value-of select="'̂'"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="substring(m:accPr/m:chr/@m:val,1,1)"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mtext> | |
</mml:mover> | |
</xsl:template> | |
<xsl:template match="m:sPre"> | |
<mml:mmultiscripts> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
<mml:mprescripts/> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:mrow> | |
</mml:mmultiscripts> | |
</xsl:template> | |
<!-- Fixex --> | |
<!-- avoid printing fnames twice --> | |
<xsl:template match="m:func"> | |
<mml:mrow> | |
<mml:mrow> | |
<xsl:apply-templates select="m:fName[1]/*"/> | |
</mml:mrow> | |
<mml:mo></mml:mo> | |
<xsl:apply-templates select="m:fName[1]/following-sibling::*"/> | |
</mml:mrow> | |
</xsl:template> | |
<!-- m:r reconstituted from Word comments don't have character data in m:t it is directly i m:r (and style information is in interleaved span and i elements, weird but true --> | |
<xsl:template match="m:r[not(.//m:t)]"> | |
<xsl:for-each select=".//text()[translate(.,' &','')]"> | |
<xsl:call-template name="ParseMt"> | |
<xsl:with-param name="sToParse" select="translate(.,' &','')"/> | |
<xsl:with-param name="mscr" select="../m:rPr[last()]/m:scr/@m:val"/> | |
<xsl:with-param name="msty" select="../m:rPr[last()]/m:sty/@m:val"/> | |
<xsl:with-param name="mnor" select="../m:rPr[last()]/m:nor/@m:val"/> | |
</xsl:call-template> | |
</xsl:for-each> | |
</xsl:template> | |
<!-- | |
MS stylesheet uses DOE which is (a) unevil, (b) non necessary, and (c) breaks the pass through a temporay tree to get rid of namespace nodes. | |
repeat the templates here without doe (and without double quoting amp) | |
--> | |
<xsl:template match="m:nary"> | |
<xsl:variable name="sLowerCaseSubHide"> | |
<xsl:choose> | |
<xsl:when test="count(m:naryPr[last()]/m:subHide) = 0"> | |
<xsl:text>off</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="translate(m:naryPr[last()]/m:subHide/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:variable name="sLowerCaseSupHide"> | |
<xsl:choose> | |
<xsl:when test="count(m:naryPr[last()]/m:supHide) = 0"> | |
<xsl:text>off</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="translate(m:naryPr[last()]/m:supHide/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="not($sLowerCaseSupHide='off') and | |
not($sLowerCaseSubHide='off')"> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</xsl:when> | |
<xsl:when test="not($sLowerCaseSubHide='off')"> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msup> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:msup> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mover> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:mover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:when test="not($sLowerCaseSupHide='off')"> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msub> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:msub> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munder> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
</mml:munder> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:choose> | |
<xsl:when test="m:naryPr[last()]/m:limLoc/@m:val='subSup'"> | |
<mml:msubsup> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:msubsup> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munderover> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="not(m:naryPr[last()]/m:chr/@m:val) or | |
m:naryPr[last()]/m:chr/@m:val=''"> | |
<xsl:text disable-output-escaping="no">∫</xsl:text> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:value-of select="m:naryPr[last()]/m:chr/@m:val"/> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
<xsl:apply-templates select="m:sub[1]"/> | |
<xsl:apply-templates select="m:sup[1]"/> | |
</mml:munderover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:otherwise> | |
</xsl:choose> | |
<mml:mrow> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mrow> | |
</xsl:template> | |
<xsl:template name="CreateGroupChr"> | |
<xsl:variable name="sLowerCasePos" select="translate(m:groupChrPr[last()]/m:pos/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCasePos!='top' or | |
not(m:groupChrPr[last()]/m:pos/@m:val) or | |
m:groupChrPr[last()]/m:pos/@m:val=''"> | |
<mml:munder> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="string-length(m:groupChrPr[last()]/m:chr/@m:val) >= 1"> | |
<xsl:value-of select="substring(m:groupChrPr[last()]/m:chr/@m:val,1,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="no">⏟</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</mml:munder> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:mover> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:choose> | |
<xsl:when test="string-length(m:groupChrPr[last()]/m:chr/@m:val) >= 1"> | |
<xsl:value-of select="substring(m:groupChrPr[last()]/m:chr/@m:val,1,1)"/> | |
</xsl:when> | |
<xsl:otherwise> | |
<xsl:text disable-output-escaping="no">⏟</xsl:text> | |
</xsl:otherwise> | |
</xsl:choose> | |
</mml:mo> | |
</mml:mover> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<xsl:template match="m:bar"> | |
<xsl:variable name="sLowerCasePos" select="translate(m:barPr/m:pos/@m:val, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:choose> | |
<xsl:when test="$sLowerCasePos!='bot' or | |
not($sLowerCasePos) or | |
$sLowerCasePos='' "> | |
<mml:mover> | |
<xsl:attribute name="accent">true</xsl:attribute> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:text disable-output-escaping="no">¯</xsl:text> | |
</mml:mo> | |
</mml:mover> | |
</xsl:when> | |
<xsl:otherwise> | |
<mml:munder> | |
<xsl:apply-templates select="m:e[1]"/> | |
<mml:mo> | |
<xsl:text disable-output-escaping="no">̲</xsl:text> | |
</mml:mo> | |
</mml:munder> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!-- wrong name for (m)phantom --> | |
<xsl:template match="m:phant"> | |
<xsl:variable name="sLowerCaseWidth" select="translate(m:phantPr[last()]/m:width/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:variable name="sLowerCaseAsc" select="translate(m:phantPr[last()]/m:asc/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:variable name="sLowerCaseDec" select="translate(m:phantPr[last()]/m:dec/@m:val, | |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ', | |
'abcdefghijklmnopqrstuvwxyz')"/> | |
<xsl:if test="not($sLowerCaseWidth='off' and | |
$sLowerCaseAsc='off' and | |
$sLowerCaseDec='off')"> | |
<mml:mphantom> | |
<xsl:apply-templates select="m:e[1]"/> | |
</mml:mphantom> | |
</xsl:if> | |
</xsl:template> | |
<!--TEMPLATES NEWLY ADDED--> | |
<xsl:template match="m:oMath"> | |
<xsl:variable name="varAlign"> | |
<xsl:value-of select="preceding-sibling::m:oMathParaPr/m:jc/@m:val"/> | |
</xsl:variable> | |
<xsl:variable name="spStyle"> | |
<xsl:choose> | |
<xsl:when test="((parent::m:oMathPara) and not(preceding-sibling::m:oMathParaPr))"> | |
display:block; | |
</xsl:when> | |
<xsl:otherwise> | |
</xsl:otherwise> | |
</xsl:choose> | |
font-family:<xsl:value-of select=".//w:rPr[last()]/w:rFonts/@w:ascii"/>; | |
font-size:<xsl:value-of select=".//w:rPr[last()]/w:sz/@w:val div 2"/>pt; | |
<xsl:choose> | |
<xsl:when test="string-length(.//w:rPr[last()]/w:color/@w:val) = 0"> | |
color: | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select="ancestor::w:p/w:pPr/w:rPr[last()]/w:color/@w:val"/> | |
</xsl:call-template> | |
; | |
</xsl:when> | |
<xsl:otherwise> | |
color: | |
<xsl:call-template name="ConvHexColor"> | |
<xsl:with-param name="value" select=".//w:rPr[last()]/w:color/@w:val"/> | |
</xsl:call-template> | |
; | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when test="string-length(.//w:rPr[last()]/w:highlight/@w:val) = 0"> | |
background-color: | |
<xsl:call-template name="ConvColor"> | |
<xsl:with-param name="value" select="ancestor::w:p/w:pPr/w:rPr[last()]/w:hightlight/@w:val"/> | |
</xsl:call-template> | |
; | |
</xsl:when> | |
<xsl:otherwise> | |
background-color: | |
<xsl:call-template name="ConvColor"> | |
<xsl:with-param name="value" select=".//w:rPr[last()]/w:highlight/@w:val"/> | |
</xsl:call-template> | |
; | |
</xsl:otherwise> | |
</xsl:choose> | |
<xsl:choose> | |
<xsl:when | |
test="string-length(.//w:rPr[last()]/w:u[1]/@w:val) = 0 or .//w:rPr[last()]/w:u[1]/@w:val = 'off' or .//w:rPr[last()]/w:u[1]/@w:val = 'none' or .//w:rPr[last()]/w:u[1]/@w:val = '0' "> | |
text-decoration:none; | |
</xsl:when> | |
<xsl:otherwise> | |
text-decoration:underline; | |
</xsl:otherwise> | |
</xsl:choose> | |
text-align:<xsl:value-of select="$varAlign"></xsl:value-of>; | |
</xsl:variable> | |
<xsl:choose> | |
<xsl:when test="(parent::m:oMathPara) and not(preceding-sibling::m:oMathParaPr)"> | |
<span style="{$spStyle}"> | |
<mml:math display="block"> | |
<xsl:apply-templates select="*"/> | |
</mml:math> | |
</span> | |
</xsl:when> | |
<xsl:otherwise> | |
<div align="{$varAlign}"> | |
<span style="{$spStyle}"> | |
<mml:math> | |
<xsl:apply-templates select="*"/> | |
</mml:math> | |
</span> | |
</div> | |
</xsl:otherwise> | |
</xsl:choose> | |
</xsl:template> | |
<!--ADDED FOR MATHML SUPPORT BY SHUBHA align="{$varAlign}" --> | |
<xsl:template match="m:t"> | |
<xsl:choose> | |
<xsl:when test="/@xml:space"> | |
  | |
</xsl:when> | |
</xsl:choose> | |
<xsl:apply-templates select="*"/> | |
</xsl:template> | |
</xsl:stylesheet> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment