filter/source/svg/svgwriter.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
New commits: commit b49ea0c9d24aa48d62590cb3443c3ad4143d2e2f Author: Horacio Fernandes <horacio.fernan...@gmail.com> Date: Sun Dec 2 17:52:26 2012 -0400 fdo#57215: Fixed wrong text rotation in SVG Export Added text rotation to "non-positioned characters" in SVG Export. Change-Id: I831644329625fa74e5a2436096d26ec22d8b0319 Reviewed-on: https://gerrit.libreoffice.org/1227 Reviewed-by: Petr Mladek <pmla...@suse.cz> Tested-by: Petr Mladek <pmla...@suse.cz> diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index b9e556d..2f269ba 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -1520,6 +1520,27 @@ void SVGTextWriter::startTextPosition( sal_Bool bExportX, sal_Bool bExportY ) mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrX, ::rtl::OUString::valueOf( maTextPos.X() ) ); if( bExportY ) mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrY, ::rtl::OUString::valueOf( maTextPos.Y() ) ); + + // if text is rotated, set transform matrix at new tspan element + const Font& rFont = mpVDev->GetFont(); + if( rFont.GetOrientation() ) + { + Point aRot( maTextPos ); + OUString aTransform( "translate(" ); + aTransform += OUString::valueOf( aRot.X() ) + ","; + aTransform += OUString::valueOf( aRot.Y() ) + ")"; + + aTransform += " rotate("; + aTransform += OUString::valueOf( rFont.GetOrientation() * -0.1 ); + aTransform += ")"; + + aTransform += " translate("; + aTransform += OUString::valueOf( -aRot.X() ) + ","; + aTransform += OUString::valueOf( -aRot.Y() ) + ")"; + + mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrTransform, aTransform ); + } + mpTextPositionElem = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits