diff options
author | Horacio Fernandes <horacio.fernandes@gmail.com> | 2012-12-02 17:52:26 -0400 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2012-12-03 16:58:02 +0000 |
commit | b49ea0c9d24aa48d62590cb3443c3ad4143d2e2f (patch) | |
tree | 072de4eb517caca867bad25790850d86d2cf5366 /filter | |
parent | b9915592cb5aea0b52be4beed708a198486a1f3b (diff) |
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 <pmladek@suse.cz>
Tested-by: Petr Mladek <pmladek@suse.cz>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/svg/svgwriter.cxx | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index b9e556db95f2..2f269ba9fda9 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 ); } |