mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
fix bug #52676
This commit is contained in:
@ -274,7 +274,7 @@ bool OOXDocumentWriter::SaveBySection()
|
||||
RtfParagraph *para = dynamic_cast<RtfParagraph *>(m_oDocument[0].props->operator[](i).get());
|
||||
bParaCurrEmpty = (para) ? (para->GetCount() < 1) : true;
|
||||
|
||||
sXml = m_oDocument[0].props->operator[](i)->RenderToOOX(oNewParam);
|
||||
sXml = m_oDocument[0].props->operator[](i)->RenderToOOX(oNewParam);
|
||||
|
||||
if (!sXml.empty() || !sXmlSectProp.empty())
|
||||
{
|
||||
@ -292,24 +292,30 @@ bool OOXDocumentWriter::SaveBySection()
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t nFind, nFindPict, pos = sXml.size();
|
||||
size_t nFindPPr, nFindP, nFindPictStart, nFindPictEnd, pos = sXml.size();
|
||||
|
||||
do
|
||||
{
|
||||
nFindPict = sXml.rfind(L"<w:pict>", pos);
|
||||
nFind = sXml.rfind(L"</w:pPr>", pos);
|
||||
pos = nFindPict - 1;
|
||||
}while(nFind != std::wstring::npos && nFindPict != std::wstring::npos && nFind > nFindPict);
|
||||
nFindPictStart = sXml.rfind(L"<w:pict>", pos);
|
||||
nFindPictEnd = sXml.rfind(L"/w:pict>", pos);
|
||||
nFindPPr = sXml.rfind(L"</w:pPr>", pos);
|
||||
nFindP = sXml.rfind(L"<w:p>", pos);
|
||||
|
||||
if( nFind != std::wstring::npos)
|
||||
pos = nFindPictStart - 1;
|
||||
|
||||
if (nFindPictStart == std::wstring::npos)
|
||||
break;
|
||||
|
||||
} while (true);
|
||||
|
||||
if (nFindPPr != std::wstring::npos)
|
||||
{
|
||||
sXml.insert( nFind, sXmlSectProp );
|
||||
sXml.insert(nFindPPr, sXmlSectProp );
|
||||
}
|
||||
else
|
||||
else if (nFindP != std::wstring::npos)
|
||||
{
|
||||
nFind = sXml.rfind( L"<w:p>" );
|
||||
if( std::wstring::npos != nFind )
|
||||
sXml.insert( nFind + 5, L"<w:pPr>" + sXmlSectProp + L"</w:pPr>" );
|
||||
if( std::wstring::npos != nFindP)
|
||||
sXml.insert(nFindP + 5, L"<w:pPr>" + sXmlSectProp + L"</w:pPr>" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user