DOCX drawingML export: fix paragraph margins
Without the EndParagraphProperties() call, w:spacing wasn't ever written as a paragraph property. Change-Id: Iff4ca2a9e0725ac38d7b528c220c8ea58fc89cab
This commit is contained in:
BIN
sw/qa/extras/ooxmlexport/data/dml-groupshape-paraspacing.docx
Executable file
BIN
sw/qa/extras/ooxmlexport/data/dml-groupshape-paraspacing.docx
Executable file
Binary file not shown.
@@ -2317,6 +2317,18 @@ DECLARE_OOXMLEXPORT_TEST(testDmlGroupshapeRelsize, "dml-groupshape-relsize.docx"
|
|||||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/wp14:sizeRelH", "relativeFrom", "page");
|
assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/wp14:sizeRelH", "relativeFrom", "page");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLARE_OOXMLEXPORT_TEST(testDmlGroupshapeParaspacing, "dml-groupshape-paraspacing.docx")
|
||||||
|
{
|
||||||
|
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
|
||||||
|
if (!pXmlDoc)
|
||||||
|
return;
|
||||||
|
// Paragraph spacing of shape text in groupshapes was left, the w:spacing element was missing in pPr.
|
||||||
|
assertXPath(pXmlDoc,
|
||||||
|
"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:pPr/w:spacing",
|
||||||
|
"before",
|
||||||
|
"240");
|
||||||
|
}
|
||||||
|
|
||||||
DECLARE_OOXMLEXPORT_TEST(testTrackChangesDeletedParagraphMark, "testTrackChangesDeletedParagraphMark.docx")
|
DECLARE_OOXMLEXPORT_TEST(testTrackChangesDeletedParagraphMark, "testTrackChangesDeletedParagraphMark.docx")
|
||||||
{
|
{
|
||||||
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
|
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
|
||||||
|
@@ -3466,11 +3466,13 @@ void DocxAttributeOutput::WriteOutliner(const OutlinerParaObject& rParaObj)
|
|||||||
sal_Int32 nAktPos = 0;
|
sal_Int32 nAktPos = 0;
|
||||||
sal_Int32 nEnd = aStr.getLength();
|
sal_Int32 nEnd = aStr.getLength();
|
||||||
|
|
||||||
m_pSerializer->startElementNS( XML_w, XML_p, FSEND );
|
StartParagraph(ww8::WW8TableNodeInfo::Pointer_t());
|
||||||
|
|
||||||
// Write paragraph properties.
|
// Write paragraph properties.
|
||||||
m_pSerializer->startElementNS(XML_w, XML_pPr, FSEND);
|
m_pSerializer->startElementNS(XML_w, XML_pPr, FSEND);
|
||||||
|
StartParagraphProperties();
|
||||||
aAttrIter.OutParaAttr(false);
|
aAttrIter.OutParaAttr(false);
|
||||||
|
EndParagraphProperties(0, 0, 0, 0);
|
||||||
m_pSerializer->endElementNS(XML_w, XML_pPr);
|
m_pSerializer->endElementNS(XML_w, XML_pPr);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@@ -3497,7 +3499,7 @@ void DocxAttributeOutput::WriteOutliner(const OutlinerParaObject& rParaObj)
|
|||||||
aAttrIter.NextPos();
|
aAttrIter.NextPos();
|
||||||
}
|
}
|
||||||
while( nAktPos < nEnd );
|
while( nAktPos < nEnd );
|
||||||
m_pSerializer->endElementNS( XML_w, XML_p );
|
EndParagraph(ww8::WW8TableNodeInfoInner::Pointer_t());
|
||||||
}
|
}
|
||||||
m_pSerializer->endElementNS( XML_w, XML_txbxContent );
|
m_pSerializer->endElementNS( XML_w, XML_txbxContent );
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user