Kaydet (Commit) 5dd259cb authored tarafından Moritz Kuett's avatar Moritz Kuett Kaydeden (comit) Thorsten Behrens

fdo#47576: Support for textual links added (SVG Export)

Added Support to export textual links in SVG files, images still do not work

Change-Id: Id230618d2cc068b94eb0f0051d5db249a88a42f2
üst 275dbf60
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
using ::rtl::OUString; using ::rtl::OUString;
static const char aXMLElemG[] = "g"; static const char aXMLElemG[] = "g";
static const char aXMLElemA[] = "a";
static const char aXMLElemDefs[] = "defs"; static const char aXMLElemDefs[] = "defs";
static const char aXMLElemLine[] = "line"; static const char aXMLElemLine[] = "line";
static const char aXMLElemRect[] = "rect"; static const char aXMLElemRect[] = "rect";
...@@ -1795,20 +1796,31 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos, ...@@ -1795,20 +1796,31 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos,
mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "PlaceholderText" ); mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "PlaceholderText" );
mbIsPlacehlolderShape = sal_False; mbIsPlacehlolderShape = sal_False;
} }
else if( mbIsURLField && !msUrl.isEmpty() )
{
mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "UrlField" );
mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrXLinkHRef, msUrl );
mbIsURLField = sal_False;
}
addFontAttributes( /* isTexTContainer: */ false ); addFontAttributes( /* isTexTContainer: */ false );
mpContext->AddPaintAttr( COL_TRANSPARENT, aTextColor ); mpContext->AddPaintAttr( COL_TRANSPARENT, aTextColor );
SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS );
OUString sTextContent = rText; OUString sTextContent = rText;
mrExport.GetDocHandler()->characters( sTextContent );
// <a> tag for link should be the innermost tag, inside <tspan>
if( !mbIsPlacehlolderShape && mbIsURLField && !msUrl.isEmpty() )
{
mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "UrlField" );
mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrXLinkHRef, msUrl );
SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS );
mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrXLinkHRef, msUrl );
{
SvXMLElementExport aSVGAElem( mrExport, XML_NAMESPACE_NONE, aXMLElemA, mbIWS, mbIWS );
mrExport.GetDocHandler()->characters( sTextContent );
}
}
else
{
SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS );
mrExport.GetDocHandler()->characters( sTextContent );
}
mnTextWidth += mpVDev->GetTextWidth( sTextContent ); mnTextWidth += mpVDev->GetTextWidth( sTextContent );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment