diff options
-rw-r--r-- | include/oox/export/utils.hxx | 6 | ||||
-rw-r--r-- | oox/source/export/drawingml.cxx | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/include/oox/export/utils.hxx b/include/oox/export/utils.hxx index f82598974ad8..06ddfe3391e5 100644 --- a/include/oox/export/utils.hxx +++ b/include/oox/export/utils.hxx @@ -48,6 +48,12 @@ static inline sal_Int64 TwipsToEMU( sal_Int32 nTwips ) return sal_Int64( nTwips ) * 635; } +template <typename T> +OString writePercentage(T number) +{ + return OString::number(number) + "%"; +} + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index cf25f2a47661..5f869eef95eb 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -620,17 +620,18 @@ void DrawingML::WriteOutline( Reference< XPropertySet > rXPropSet ) if( bDashSet && aStyleLineStyle != drawing::LineStyle_DASH ) { // line style is a dash and it was not set by the shape style + // TODO: the XML_d and XML_sp values seem insane mpFS->startElementNS( XML_a, XML_custDash, FSEND ); int i; for( i = 0; i < aLineDash.Dots; i ++ ) mpFS->singleElementNS( XML_a, XML_ds, - XML_d, aLineDash.DotLen ? I64S( aLineDash.DotLen*1000 ) : "100000", - XML_sp, I64S( aLineDash.Distance*1000 ), + XML_d, aLineDash.DotLen ? writePercentage( aLineDash.DotLen*1000 ) : "100000%", + XML_sp, writePercentage( aLineDash.Distance*1000 ), FSEND ); for( i = 0; i < aLineDash.Dashes; i ++ ) mpFS->singleElementNS( XML_a, XML_ds, - XML_d, aLineDash.DashLen ? I64S( aLineDash.DashLen*1000 ) : "100000", - XML_sp, I64S( aLineDash.Distance*1000 ), + XML_d, aLineDash.DashLen ? writePercentage( aLineDash.DashLen*1000 ) : "100000%", + XML_sp, writePercentage( aLineDash.Distance*1000 ), FSEND ); mpFS->endElementNS( XML_a, XML_custDash ); } |