diff options
author | Sven Lüppken <sven@slueppken.de> | 2020-10-31 19:42:50 +0100 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-11-01 14:07:04 +0100 |
commit | 5cbdda84ff4c0b1b5e22bc8965fb5c4c275c365c (patch) | |
tree | d6f97cfa35c268e7131cfd5e7d539247f8f762a3 /sw/qa | |
parent | cef6b619da74f2f00520bb283b21c0347fc074e8 (diff) |
tdf#136814 Fix border padding in Word export
While converting twips to points in the Word export filer, information is lost due to
integer division. This patch tries to fix this by using floating-point division
and (hopefully) proper rounding. The example document attached to the bug ticket
works as expected now.
Change-Id: I4b5b2163e42932b5e877726d16635d9f02a43cb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105128
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'sw/qa')
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf136814.odt | bin | 0 -> 8249 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport15.cxx | 11 | ||||
-rw-r--r-- | sw/qa/extras/ww8export/data/tdf136814.odt | bin | 0 -> 8249 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export3.cxx | 12 |
4 files changed, 23 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf136814.odt b/sw/qa/extras/ooxmlexport/data/tdf136814.odt Binary files differnew file mode 100644 index 000000000000..2318de04b762 --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf136814.odt diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx index c2466dc809e6..8d98ccd39487 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx @@ -844,6 +844,17 @@ DECLARE_OOXMLEXPORT_TEST(testTdf135660, "tdf135660.docx") CPPUNIT_ASSERT_EQUAL_MESSAGE("Bottom wrap distance is wrong", static_cast<sal_Int32>(199), nWrapDistanceBottom); } +DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf136814, "tdf136814.odt") +{ + xmlDocUniquePtr pXmlDocument = parseExport("word/document.xml"); + + // Padding in this document is 0.10 cm which should translate to 3 pt (approx. 1.0583mm) + assertXPath(pXmlDocument, "/w:document/w:body/w:sectPr/w:pgBorders/w:top", "space", "3"); + assertXPath(pXmlDocument, "/w:document/w:body/w:sectPr/w:pgBorders/w:left", "space", "3"); + assertXPath(pXmlDocument, "/w:document/w:body/w:sectPr/w:pgBorders/w:bottom", "space", "3"); + assertXPath(pXmlDocument, "/w:document/w:body/w:sectPr/w:pgBorders/w:right", "space", "3"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/extras/ww8export/data/tdf136814.odt b/sw/qa/extras/ww8export/data/tdf136814.odt Binary files differnew file mode 100644 index 000000000000..2318de04b762 --- /dev/null +++ b/sw/qa/extras/ww8export/data/tdf136814.odt diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx index 380463e96f2f..c32ff278cc7a 100644 --- a/sw/qa/extras/ww8export/ww8export3.cxx +++ b/sw/qa/extras/ww8export/ww8export3.cxx @@ -677,6 +677,18 @@ DECLARE_WW8EXPORT_TEST(testTdf134570, "tdf134570.doc") } } +DECLARE_WW8EXPORT_TEST(testTdf136814, "tdf136814.odt") +{ + uno::Reference<beans::XPropertySet> xStyle(getStyles("PageStyles")->getByName("Standard"), uno::UNO_QUERY); + sal_Int32 nBorderDistance = static_cast<sal_Int32>(106); + + CPPUNIT_ASSERT_EQUAL(nBorderDistance, getProperty<sal_Int32>(xStyle, "TopBorderDistance")); + CPPUNIT_ASSERT_EQUAL(nBorderDistance, getProperty<sal_Int32>(xStyle, "RightBorderDistance")); + CPPUNIT_ASSERT_EQUAL(nBorderDistance, getProperty<sal_Int32>(xStyle, "BottomBorderDistance")); + CPPUNIT_ASSERT_EQUAL(nBorderDistance, getProperty<sal_Int32>(xStyle, "LeftBorderDistance")); +} + + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |