sw/qa/extras/ooxmlexport/data/tdf133701.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport6.cxx    |   10 ++++++++++
 sw/source/filter/ww8/docxattributeoutput.cxx |    9 ++++++++-
 3 files changed, 18 insertions(+), 1 deletion(-)

New commits:
commit a2113f5f46921c38a0c4929bb564183009a838e9
Author:     Tibor Nagy <nagy.tib...@nisz.hu>
AuthorDate: Tue Jun 9 13:38:35 2020 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Fri Jun 19 14:01:30 2020 +0200

    tdf#133701 DOXC export: fix frame distance from text
    
    Vertical and horizontal minimum distances of frame
    and the text wrapping around the frame were not exported.
    
    Note: different left/right, top/bottom values aren't
    supported by OOXML hSpace, vSpace, so calculate
    average values to keep the page layout.
    
    Co-authored-by: Attila Bakos (NISZ)
    
    Change-Id: Ieef999003bcc6b9bba0a932ee4dd2b5461380c17
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96110
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/sw/qa/extras/ooxmlexport/data/tdf133701.docx 
b/sw/qa/extras/ooxmlexport/data/tdf133701.docx
new file mode 100644
index 000000000000..dfef409c268c
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf133701.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
index 877594f9f2f2..df0ee671c9c1 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
@@ -42,6 +42,16 @@ protected:
     }
 };
 
+DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf133701, "tdf133701.docx")
+{
+    xmlDocUniquePtr pXmlDocument = parseExport("word/document.xml");
+    if (!pXmlDocument)
+        return;
+
+    assertXPath(pXmlDocument, "/w:document/w:body/w:p[2]/w:pPr/w:framePr", 
"hSpace", "567");
+    assertXPath(pXmlDocument, "/w:document/w:body/w:p[2]/w:pPr/w:framePr", 
"vSpace", "284");
+}
+
 DECLARE_OOXMLEXPORT_TEST(testDmlShapeTitle, "dml-shape-title.docx")
 {
     CPPUNIT_ASSERT_EQUAL(OUString("Title"), getProperty<OUString>(getShape(1), 
"Title"));
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index d8479c410a37..0ebda68eed20 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -559,7 +559,6 @@ static void lcl_deleteAndResetTheLists( 
rtl::Reference<sax_fastparser::FastAttri
 
 void DocxAttributeOutput::PopulateFrameProperties(const SwFrameFormat* 
pFrameFormat, const Size& rSize)
 {
-
     sax_fastparser::FastAttributeList* attrList = 
FastSerializerHelper::createAttrList();
 
     awt::Point aPos(pFrameFormat->GetHoriOrient().GetPos(), 
pFrameFormat->GetVertOrient().GetPos());
@@ -570,6 +569,14 @@ void DocxAttributeOutput::PopulateFrameProperties(const 
SwFrameFormat* pFrameFor
     attrList->add( FSNS( XML_w, XML_x), OString::number(aPos.X));
     attrList->add( FSNS( XML_w, XML_y), OString::number(aPos.Y));
 
+    sal_Int16 nLeft = pFrameFormat->GetLRSpace().GetLeft();
+    sal_Int16 nRight = pFrameFormat->GetLRSpace().GetRight();
+    sal_Int16 nUpper = pFrameFormat->GetULSpace().GetUpper();
+    sal_Int16 nLower = pFrameFormat->GetULSpace().GetLower();
+
+    attrList->add(FSNS(XML_w, XML_hSpace), OString::number((nLeft + nRight) / 
2));
+    attrList->add(FSNS(XML_w, XML_vSpace), OString::number((nUpper + nLower) / 
2));
+
     OString relativeFromH = convertToOOXMLHoriOrientRel( 
pFrameFormat->GetHoriOrient().GetRelationOrient() );
     OString relativeFromV = convertToOOXMLVertOrientRel( 
pFrameFormat->GetVertOrient().GetRelationOrient() );
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to