diff options
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf115861.docx | bin | 0 -> 15035 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 7 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/dmapper/util.cxx | 14 |
4 files changed, 26 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf115861.docx b/sw/qa/extras/ooxmlexport/data/tdf115861.docx Binary files differnew file mode 100644 index 000000000000..f42a7bad2cfa --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf115861.docx diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx index ebc3d81d9f4a..813b0c3c4f3c 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx @@ -83,6 +83,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf112694, "tdf112694.docx") CPPUNIT_ASSERT(!getProperty<bool>(aPageStyle, "HeaderIsOn")); } +DECLARE_OOXMLEXPORT_TEST(testTdf115861, "tdf115861.docx") +{ + // Second item in the paragraph enumeration was a table, 2nd paragraph was + // lost. + CPPUNIT_ASSERT_EQUAL(OUString("(k)"), getParagraph(2)->getString()); +} + DECLARE_OOXMLEXPORT_TEST(testTdf67207_MERGEFIELD, "mailmerge.docx") { uno::Reference<beans::XPropertySet> xTextField = getProperty< uno::Reference<beans::XPropertySet> >(getRun(getParagraph(1), 2), "TextField"); diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 649898923a9b..ece3775fc686 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -390,6 +390,9 @@ void DomainMapper_Impl::AddDummyParaForTableInSection() void DomainMapper_Impl::RemoveLastParagraph( ) { + if (m_bDiscardHeaderFooter) + return; + if (m_aTextAppendStack.empty()) return; uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; @@ -1087,6 +1090,9 @@ static sal_Int32 lcl_getListId(const StyleSheetEntryPtr& rEntry, const StyleShee void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap ) { + if (m_bDiscardHeaderFooter) + return; + #ifdef DEBUG_WRITERFILTER TagLogger::getInstance().startElement("finishParagraph"); #endif diff --git a/writerfilter/source/dmapper/util.cxx b/writerfilter/source/dmapper/util.cxx index e721d6cecb9b..378e30b08a9d 100644 --- a/writerfilter/source/dmapper/util.cxx +++ b/writerfilter/source/dmapper/util.cxx @@ -34,7 +34,19 @@ std::string XTextRangeToString(uno::Reference< text::XTextRange > const & textRa #ifdef DEBUG_WRITERFILTER if (textRange.get()) { - OUString aOUStr = textRange->getString(); + OUString aOUStr; + + try + { + aOUStr = textRange->getString(); + } + catch (const uno::Exception& rException) + { + result += "(exception: "; + result += rException.Message.toUtf8().getStr(); + result += ")"; + } + OString aOStr(aOUStr.getStr(), aOUStr.getLength(), RTL_TEXTENCODING_ASCII_US ); result = aOStr.getStr(); |