include/oox/vml/vmlformatting.hxx | 3 ++- oox/source/export/vmlexport.cxx | 7 +++++++ oox/source/vml/vmlformatting.cxx | 12 +++++++++++- oox/source/vml/vmlshape.cxx | 2 +- sw/qa/extras/ooxmlexport/data/watermark-font.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport2.cxx | 5 +++++ 6 files changed, 26 insertions(+), 3 deletions(-)
New commits: commit f6f52c526cda640dd7595abd45727cb615c2b167 Author: Szymon KÅos <szymon.k...@collabora.com> Date: Wed May 31 00:03:06 2017 +0200 Watermark: VML export/import font size Change-Id: I11409dfc621018a761c70a640938e18ae679d3f5 Reviewed-on: https://gerrit.libreoffice.org/38254 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/include/oox/vml/vmlformatting.hxx b/include/oox/vml/vmlformatting.hxx index b07d8b01899a..5bfb0c09e0fb 100644 --- a/include/oox/vml/vmlformatting.hxx +++ b/include/oox/vml/vmlformatting.hxx @@ -258,7 +258,8 @@ struct OOX_DLLPUBLIC TextpathModel TextpathModel(); /** Writes the properties to the passed property map. */ - void pushToPropMap(oox::drawingml::ShapePropertyMap& rPropMap, const css::uno::Reference<css::drawing::XShape>& xShape) const; + void pushToPropMap(oox::drawingml::ShapePropertyMap& rPropMap, const css::uno::Reference<css::drawing::XShape>& xShape, + const GraphicHelper& rGraphicHelper) const; }; } // namespace vml diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx index ff121025acd3..d5b829d41c3f 100644 --- a/oox/source/export/vmlexport.cxx +++ b/oox/source/export/vmlexport.cxx @@ -812,6 +812,13 @@ void VMLExport::Commit( EscherPropertyContainer& rProps, const tools::Rectangle& OUString aTextPathFont = SvxMSDffManager::MSDFFReadZString(aStream, aFont.nPropSize, true); aStyle += "font-family:\"" + aTextPathFont + "\""; } + sal_uInt32 nSize; + if (rProps.GetOpt(ESCHER_Prop_gtextSize, nSize)) + { + float nSizeF = (sal_Int32)nSize / 65536; + OUString aSize = OUString::number(nSizeF); + aStyle += ";font-size:" + aSize + "pt"; + } if (!aStyle.isEmpty()) pAttrList->add(XML_style, OUStringToOString(aStyle, RTL_TEXTENCODING_UTF8)); m_pSerializer->singleElementNS(XML_v, XML_textpath, XFastAttributeListRef(pAttrList)); diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx index 6b9d1a9c654d..c52b48e6e674 100644 --- a/oox/source/vml/vmlformatting.cxx +++ b/oox/source/vml/vmlformatting.cxx @@ -880,7 +880,7 @@ beans::PropertyValue lcl_createTextpathProps() return aRet; } -void TextpathModel::pushToPropMap(ShapePropertyMap& rPropMap, const uno::Reference<drawing::XShape>& xShape) const +void TextpathModel::pushToPropMap(ShapePropertyMap& rPropMap, const uno::Reference<drawing::XShape>& xShape, const GraphicHelper& rGraphicHelper) const { if (moString.has()) { @@ -926,6 +926,16 @@ void TextpathModel::pushToPropMap(ShapePropertyMap& rPropMap, const uno::Referen uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY); xPropertySet->setPropertyValue("CharFontName", uno::makeAny(aValue)); } + else if (aName == "font-size") + { + oox::OptValue<OUString> aOptString(aValue); + sal_Int64 nEmu = lclGetEmu( rGraphicHelper, aOptString, 1 ); + // 1 point = 1/72 inch = 12,700 EMU + float nSize = nEmu / 12700; + + uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY); + xPropertySet->setPropertyValue("CharHeight", uno::makeAny(nSize)); + } } } } diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx index 17f52ff609b6..8d85b14701fb 100644 --- a/oox/source/vml/vmlshape.cxx +++ b/oox/source/vml/vmlshape.cxx @@ -518,7 +518,7 @@ void ShapeBase::convertShapeProperties( const Reference< XShape >& rxShape ) con } } else if (xSInfo->supportsService("com.sun.star.drawing.CustomShape")) - maTypeModel.maTextpathModel.pushToPropMap(aPropMap, rxShape); + maTypeModel.maTextpathModel.pushToPropMap(aPropMap, rxShape, rGraphicHelper); PropertySet( rxShape ).setProperties( aPropMap ); } diff --git a/sw/qa/extras/ooxmlexport/data/watermark-font.docx b/sw/qa/extras/ooxmlexport/data/watermark-font.docx index 82d7ec8a83fc..5a09dc9f788d 100644 Binary files a/sw/qa/extras/ooxmlexport/data/watermark-font.docx and b/sw/qa/extras/ooxmlexport/data/watermark-font.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx index d4fa7a410701..3b5e7a11d996 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx @@ -698,10 +698,15 @@ DECLARE_OOXMLEXPORT_TEST(testWatermarkFont, "watermark-font.docx") uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY); OUString aFont; + float nFontSize; // Check font family CPPUNIT_ASSERT(xPropertySet->getPropertyValue("CharFontName") >>= aFont); CPPUNIT_ASSERT_EQUAL(OUString("DejaVu Serif"), aFont); + + // Check font size + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("CharHeight") >>= nFontSize); + CPPUNIT_ASSERT_EQUAL((float)72, nFontSize); } DECLARE_OOXMLEXPORT_TEST(testFdo43093, "fdo43093.docx")
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits