[Libreoffice-commits] core.git: include/oox oox/source sw/qa

Szymon Kłos szymon.klos at collabora.com
Thu Jun 8 07:22:40 UTC 2017


 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.klos at 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 <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at 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")


More information about the Libreoffice-commits mailing list