From ec33be1d135c1523b4d872eb2f86c515f0419509 Mon Sep 17 00:00:00 2001 From: "Attila Bakos (NISZ)" Date: Thu, 7 Jan 2021 11:31:39 +0100 Subject: [PATCH] tdf#136059 OOXML export: fix shape wrap "Contour" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Custom shapes lost their contour setting, e.g. the text was wrapped around the bounding box of a diamond instead of the shape. Change-Id: Ic1e276b8957751aad95cc2624e9f54dcb853ddad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108930 Tested-by: László Németh Reviewed-by: László Németh --- sw/qa/extras/ooxmlexport/data/tdf136059.odt | Bin 0 -> 17964 bytes sw/qa/extras/ooxmlexport/ooxmlexport16.cxx | 7 ++ sw/source/filter/ww8/docxsdrexport.cxx | 74 ++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100755 sw/qa/extras/ooxmlexport/data/tdf136059.odt diff --git a/sw/qa/extras/ooxmlexport/data/tdf136059.odt b/sw/qa/extras/ooxmlexport/data/tdf136059.odt new file mode 100755 index 0000000000000000000000000000000000000000..50d808d12f2fd93b3339c18e38ed62c0f23dba07 GIT binary patch literal 17964 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 literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx index c35db2c88cd1..37610a23f43f 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx @@ -31,6 +31,13 @@ protected: } }; +DECLARE_OOXMLEXPORT_TEST(testTdf136059, "tdf136059.odt") +{ + CPPUNIT_ASSERT_EQUAL_MESSAGE("Contour has not been exported!", true, + getProperty(getShape(1), "SurroundContour")); + // With the fix this shall pass, see tdf136059. +} + DECLARE_OOXMLEXPORT_TEST(testTdf138892_noNumbering, "tdf138892_noNumbering.docx") { CPPUNIT_ASSERT_MESSAGE("Para1: Bullet point", !getProperty(getParagraph(1), "NumberingStyleName").isEmpty()); diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx index 1af1dce13942..297ecf30a2f6 100644 --- a/sw/source/filter/ww8/docxsdrexport.cxx +++ b/sw/source/filter/ww8/docxsdrexport.cxx @@ -10,6 +10,7 @@ #include "docxsdrexport.hxx" #include #include +#include #include #include #include @@ -34,6 +35,8 @@ #include #include +#include + using namespace com::sun::star; using namespace oox; @@ -792,6 +795,77 @@ void DocxSdrExport::startDMLAnchorInline(const SwFrameFormat* pFrameFormat, cons m_pImpl->getSerializer()->endElementNS(XML_wp, nWrapToken); } } + else + { + // In this case we likely had an odt document to be exported to docx. + // There is no grab-bag or something else so for a workaround, + // let's export the geometry of the shape... + // First get the UNO-shape + uno::Reference xShape( + const_cast(pFrameFormat->FindRealSdrObject())->getUnoShape(), + uno::UNO_QUERY); + + if (xShape && xShape->getShapeType() == u"com.sun.star.drawing.CustomShape") + { + try + { + // Get the properties of the Xshape + uno::Reference XProps(xShape, uno::UNO_QUERY); + // Get the "CustomShapeGeometry" property and from its Any() make a hashMap + comphelper::SequenceAsHashMap aCustomShapeGeometry( + XProps->getPropertyValue("CustomShapeGeometry")); + // Get the "Path" property and from its Any() make a hashMap + comphelper::SequenceAsHashMap aPath(aCustomShapeGeometry.getValue("Path")); + // From the Any() of the "Coordinates" property get the points + uno::Sequence aCoords + = aPath.getValue("Coordinates") + .get>(); + + // Check if only one side wrap allowed + OUString sWrapType; + switch (pFrameFormat->GetSurround().GetSurround()) + { + case text::WrapTextMode_DYNAMIC: + sWrapType = OUString("largest"); + break; + case text::WrapTextMode_LEFT: + sWrapType = OUString("left"); + break; + case text::WrapTextMode_RIGHT: + sWrapType = OUString("right"); + break; + case text::WrapTextMode_PARALLEL: + default: + sWrapType = OUString("bothSides"); + break; + } + + // And export: + nWrapToken = XML_wrapTight; + m_pImpl->getSerializer()->startElementNS(XML_wp, nWrapToken, XML_wrapText, + sWrapType); + + m_pImpl->getSerializer()->startElementNS(XML_wp, XML_wrapPolygon, XML_edited, + "0"); + + // There are the coordinates + for (sal_Int32 i = 0; i < aCoords.getLength(); i++) + m_pImpl->getSerializer()->singleElementNS( + XML_wp, (i == 0 ? XML_start : XML_lineTo), XML_x, + OString::number(aCoords[i].First.Value.get()), XML_y, + OString::number(aCoords[i].Second.Value.get())); + + m_pImpl->getSerializer()->endElementNS(XML_wp, XML_wrapPolygon); + + m_pImpl->getSerializer()->endElementNS(XML_wp, nWrapToken); + } + catch (uno::Exception& e) + { + TOOLS_WARN_EXCEPTION( + "sw.ww8", "DocxSdrExport::startDMLAnchorInline: exeption: " << e.Message); + } + } + } } // No? Then just approximate based on what we have.