sw/qa/extras/ww8export/data/ooo92948-1.doc |binary sw/qa/extras/ww8export/ww8export.cxx | 19 +++++++++++++++++++ sw/source/filter/ww8/ww8par2.cxx | 1 + 3 files changed, 20 insertions(+)
New commits: commit 31cd8dbada7527629c559a6ff50014a3959c01ef Author: Michael Stahl <[email protected]> Date: Thu Feb 16 18:17:53 2017 +0100 i#92948 sw: WW8 import: fix table in Apo in header The document contains a table inside of a frame anchored in the header. In WW8TabDesc::WW8TabDesc() the update to nOrigPos makes a mess of things because the new nOrigPos value contains the value of nCpOfs (93) already, so later on when SwWW8ImplReader::TestApo() calls WW8PLCFxDesc::Save() / WW8PLCFxDesc::Restore(), the call to SeekPos() positions it on CP 325 instead of 232 and the subsequent call to GetSprms() finds nothing on the wrong position; thus TestApo() concludes that the paragraph has different Apo properties than the previous one and a new fly frame is created. (regression from 4bd341e2c8a1f3a4f4677eb879a60a4ffc3369db) (cherry picked from commit d4620d535bd5a8e73bdb9d556933b9ae22800a7d) sw: use the stupid line-ends for WNT (cherry picked from commit d1a8ca4951c076c605a47aadf6bdcac79d2bee8e) Change-Id: I697c4526c7c3a12119947ff5659c11ea9ee7fff8 Reviewed-on: https://gerrit.libreoffice.org/34360 Tested-by: Jenkins <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/sw/qa/extras/ww8export/data/ooo92948-1.doc b/sw/qa/extras/ww8export/data/ooo92948-1.doc new file mode 100644 index 0000000..f355eaa Binary files /dev/null and b/sw/qa/extras/ww8export/data/ooo92948-1.doc differ diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx index f5fffee..8af8713 100644 --- a/sw/qa/extras/ww8export/ww8export.cxx +++ b/sw/qa/extras/ww8export/ww8export.cxx @@ -328,6 +328,25 @@ DECLARE_WW8EXPORT_TEST(testListNolevel, "list-nolevel.doc") CPPUNIT_ASSERT_EQUAL(OUString("1."), aText); } +DECLARE_WW8EXPORT_TEST(testHeaderApoTable, "ooo92948-1.doc") +{ + // the problem was that a table anchored in the header was split across + // 3 text frames and quite messed up + + uno::Reference<text::XTextFramesSupplier> xTextFramesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xIndexAccess(xTextFramesSupplier->getTextFrames(), uno::UNO_QUERY); + uno::Reference<text::XText> xFrame(xIndexAccess->getByIndex(1), uno::UNO_QUERY); + + uno::Reference<text::XTextContent> xTable(getParagraphOrTable(1, xFrame)); + getCell(xTable, "A1", "Aan" SAL_NEWLINE_STRING "Recipient" SAL_NEWLINE_STRING "Recipient" SAL_NEWLINE_STRING); + getCell(xTable, "A2", "Kopie aan" SAL_NEWLINE_STRING); + getCell(xTable, "A3", "Datum" SAL_NEWLINE_STRING "31 juli 2008"); + getCell(xTable, "A4", "Locatie" SAL_NEWLINE_STRING "Locationr"); + getCell(xTable, "A5", "Van" SAL_NEWLINE_STRING "Sender "); + getCell(xTable, "A6", "Directie" SAL_NEWLINE_STRING "Department"); + getCell(xTable, "A7", "Telefoon" SAL_NEWLINE_STRING "Phone"); +} + DECLARE_WW8EXPORT_TEST(testBnc821208, "bnc821208.doc") { // WW8Num1z0 earned a Symbol font, turning numbers into rectangles. diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index 1ec8199..41e0657 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -2020,6 +2020,7 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader* pIoClass, WW8_CP nStartCp) : // PlcxMan currently points too far ahead so we need to bring // it back to where we are trying to make a table m_pIo->m_pPlcxMan->GetPap()->nOrigStartPos = aRes.nStartPos; + m_pIo->m_pPlcxMan->GetPap()->nCpOfs = aRes.nCpOfs; if (!(pPap->SeekPos(aRes.nStartPos))) { aRes.nEndPos = WW8_CP_MAX;
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
