filter/source/msfilter/msdffimp.cxx | 42 ++++++++++++++++++------------ sw/qa/extras/ww8export/data/tdf114308.doc |binary sw/qa/extras/ww8export/ww8export2.cxx | 8 +++++ 3 files changed, 34 insertions(+), 16 deletions(-)
New commits: commit 8ee1c7526a30c12c944ba35d8cef8d20dee63754 Author: Szymon KÅos <szymon.k...@collabora.com> Date: Fri Dec 8 19:31:02 2017 +0100 tdf#114308 DOC import correctly watermark without padding Change-Id: If44eb4d1354386f66c697206db9ab4d7f2be374d Reviewed-on: https://gerrit.libreoffice.org/46110 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Szymon KÅos <szymon.k...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/46155 Reviewed-by: Andras Timar <andras.ti...@collabora.com> Tested-by: Andras Timar <andras.ti...@collabora.com> diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 62908ffad094..d50f799d4e0e 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -4411,24 +4411,34 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r aSet.Put(makeSdrTextAutoGrowHeightItem(false)); aSet.Put(makeSdrTextAutoGrowWidthItem(false)); - double fRatio = 0; - VclPtr<VirtualDevice> pDevice = VclPtr<VirtualDevice>::Create(); - vcl::Font aFont = pDevice->GetFont(); - aFont.SetFamilyName( aFontName ); - aFont.SetFontSize( Size( 0, 96 ) ); - pDevice->SetFont( aFont ); - - auto nTextWidth = pDevice->GetTextWidth( aObjectText ); - OUString aObjName = GetPropertyString( DFF_Prop_wzName, rSt ); - if ( nTextWidth && aObjData.eShapeType == mso_sptTextPlainText - && aObjName.match( "PowerPlusWaterMarkObject" ) ) + bool bWithPadding = !( ngtextFStrikethrough & use_gtextFBestFit + && ngtextFStrikethrough & use_gtextFShrinkFit + && ngtextFStrikethrough & use_gtextFStretch + && ngtextFStrikethrough & gtextFBestFit + && ngtextFStrikethrough & gtextFShrinkFit + && ngtextFStrikethrough & gtextFStretch ); + + if ( bWithPadding ) { - fRatio = (double)pDevice->GetTextHeight() / nTextWidth; - sal_Int32 nNewHeight = fRatio * aObjData.aBoundRect.getWidth(); - sal_Int32 nPaddingY = aObjData.aBoundRect.getHeight() - nNewHeight; + // trim, remove additional space + VclPtr<VirtualDevice> pDevice = VclPtr<VirtualDevice>::Create(); + vcl::Font aFont = pDevice->GetFont(); + aFont.SetFamilyName( aFontName ); + aFont.SetFontSize( Size( 0, 96 ) ); + pDevice->SetFont( aFont ); + + auto nTextWidth = pDevice->GetTextWidth( aObjectText ); + OUString aObjName = GetPropertyString( DFF_Prop_wzName, rSt ); + if ( nTextWidth && aObjData.eShapeType == mso_sptTextPlainText + && aObjName.match( "PowerPlusWaterMarkObject" ) ) + { + double fRatio = (double)pDevice->GetTextHeight() / nTextWidth; + sal_Int32 nNewHeight = fRatio * aObjData.aBoundRect.getWidth(); + sal_Int32 nPaddingY = aObjData.aBoundRect.getHeight() - nNewHeight; - if ( nPaddingY > 0 ) - aObjData.aBoundRect.setHeight( nNewHeight ); + if ( nPaddingY > 0 ) + aObjData.aBoundRect.setHeight( nNewHeight ); + } } } pRet->SetMergedItemSet( aSet ); diff --git a/sw/qa/extras/ww8export/data/tdf114308.doc b/sw/qa/extras/ww8export/data/tdf114308.doc new file mode 100755 index 000000000000..36e6c7ec6999 Binary files /dev/null and b/sw/qa/extras/ww8export/data/tdf114308.doc differ diff --git a/sw/qa/extras/ww8export/ww8export2.cxx b/sw/qa/extras/ww8export/ww8export2.cxx index 0f2ed521d6d0..388fe8164656 100644 --- a/sw/qa/extras/ww8export/ww8export2.cxx +++ b/sw/qa/extras/ww8export/ww8export2.cxx @@ -116,6 +116,14 @@ DECLARE_WW8EXPORT_TEST(testTdf91687, "tdf91687.doc") CPPUNIT_ASSERT_EQUAL((sal_Int32)18105, xWatermark->getSize().Width); } +DECLARE_WW8EXPORT_TEST(testTdf114308, "tdf114308.doc") +{ + // Watermark with no additional padding + uno::Reference<drawing::XShape> xWatermark = getShape(1); + + CPPUNIT_ASSERT_EQUAL((sal_Int32)8729, xWatermark->getSize().Height); +} + DECLARE_WW8EXPORT_TEST(testTdf111480, "tdf111480.doc") { // Circular text was imported horizontally
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits