diff options
Diffstat (limited to 'filter/source/svg/svgwriter.cxx')
-rw-r--r-- | filter/source/svg/svgwriter.cxx | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index a96efaaec878..f10906147777 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -1112,6 +1112,7 @@ bool SVGTextWriter::nextTextPortion() #endif msPageCount = ""; msDateTimeType = ""; + msTextFieldType = ""; if( xPortionTextRange.is() ) { #if OSL_DEBUG_LEVEL > 0 @@ -1155,6 +1156,7 @@ bool SVGTextWriter::nextTextPortion() ++pNames; } + msTextFieldType = sFieldName; #if OSL_DEBUG_LEVEL > 0 sInfo += "text field type: " + sFieldName + "; content: " + xTextField->getPresentation( /* show command: */ false ) + "; "; #endif @@ -1690,7 +1692,6 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos, if( mbIsPlaceholderShape ) { mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "PlaceholderText" ); - mbIsPlaceholderShape = false; } addFontAttributes( /* isTexTContainer: */ false ); @@ -1723,6 +1724,19 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos, SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); mrExport.GetDocHandler()->characters( msDateTimeType ); } + else if( mbIsPlaceholderShape && rText.startsWith("<") && rText.endsWith(">") ) + { + OUString sContent; + if( msTextFieldType == "PageNumber" ) + sContent = "<number>"; + else if( msTextFieldType == "PageName" ) + sContent = "<slide-name>"; + else + sContent = rText; + + SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); + mrExport.GetDocHandler()->characters( sContent ); + } else { SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); |