summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsw/qa/extras/ooxmlexport/data/tdf113399.docbin0 -> 73728 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport11.cxx16
-rw-r--r--sw/source/filter/ww8/docxsdrexport.cxx13
3 files changed, 29 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf113399.doc b/sw/qa/extras/ooxmlexport/data/tdf113399.doc
new file mode 100755
index 000000000000..1f3ddc993d06
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf113399.doc
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index 8a711978fb63..e2366e3d48b5 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -181,6 +181,22 @@ DECLARE_OOXMLEXPORT_TEST(testTdf113547, "tdf113547.docx")
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-635), aProps["FirstLineIndent"].get<sal_Int32>());
}
+DECLARE_OOXMLEXPORT_TEST(testTdf113399, "tdf113399.doc")
+{
+ // 0 padding was not preserved
+ // In LO 0 is the defualt, but in OOXML format the default is 254 / 127
+ uno::Reference<beans::XPropertySet> xPropSet(getShape(1), uno::UNO_QUERY);
+ sal_Int32 nPaddingValue;
+ xPropSet->getPropertyValue("TextLeftDistance") >>= nPaddingValue;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), nPaddingValue);
+ xPropSet->getPropertyValue("TextRightDistance") >>= nPaddingValue;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), nPaddingValue);
+ xPropSet->getPropertyValue("TextUpperDistance") >>= nPaddingValue;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), nPaddingValue);
+ xPropSet->getPropertyValue("TextLowerDistance") >>= nPaddingValue;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), nPaddingValue);
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index be5df4433546..29b32272f66d 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -1602,6 +1602,19 @@ void DocxSdrExport::writeDMLTextFrame(ww8::Frame const* pParentFrame, int nAncho
pFS->endElementNS(XML_w, XML_txbxContent);
pFS->endElementNS(XML_wps, XML_txbx);
}
+
+ // We need to init padding to 0, if it's not set.
+ // In LO the default is 0 and so ins attributes are not set when padding is 0
+ // but in MSO the default is 254 / 127, so we need to set 0 padding explicitely
+ if(!m_pImpl->m_pBodyPrAttrList->hasAttribute(XML_lIns))
+ m_pImpl->m_pBodyPrAttrList->add(XML_lIns, OString::number(0));
+ if(!m_pImpl->m_pBodyPrAttrList->hasAttribute(XML_tIns))
+ m_pImpl->m_pBodyPrAttrList->add(XML_tIns, OString::number(0));
+ if(!m_pImpl->m_pBodyPrAttrList->hasAttribute(XML_rIns))
+ m_pImpl->m_pBodyPrAttrList->add(XML_rIns, OString::number(0));
+ if(!m_pImpl->m_pBodyPrAttrList->hasAttribute(XML_bIns))
+ m_pImpl->m_pBodyPrAttrList->add(XML_bIns, OString::number(0));
+
sax_fastparser::XFastAttributeListRef xBodyPrAttrList(m_pImpl->m_pBodyPrAttrList);
m_pImpl->m_pBodyPrAttrList = nullptr;
if (!bTextBoxOnly)