mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
RtfFormatReader - fix styles (change equals id & name)
This commit is contained in:
@ -1003,7 +1003,7 @@ bool OOXRunReader::Parse( ReaderParameter oParam , RtfParagraph& oOutputParagrap
|
||||
oNewProperty = oParam.oRtf->m_oDefaultCharProp;
|
||||
|
||||
//применяем внешний стиль
|
||||
//oNewProperty.Merge( oOutputParagraph.m_oProperty.m_oCharProperty );
|
||||
oNewProperty.Merge( oOutputParagraph.m_oProperty.m_oCharProperty );
|
||||
oNewProperty.Merge( m_oCharProperty );
|
||||
|
||||
if( NULL != poStyle && TYPE_RTF_PROPERTY_STYLE_CHAR == poStyle->GetType() )
|
||||
|
||||
@ -779,7 +779,7 @@ std::wstring RtfCharProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
if( true == poRtfDocument->m_oStyleTable.GetStyle( m_nCharStyle, oStyle ) )
|
||||
{
|
||||
sResult += L"<w:pStyle w:val=\"";
|
||||
sResult += oStyle->m_sName;
|
||||
sResult += L"Style_" + std::to_wstring(m_nCharStyle); //oStyle->m_sName;
|
||||
sResult += L"\"/>";
|
||||
}
|
||||
}
|
||||
@ -1179,28 +1179,32 @@ std::wstring RtfStyle::RenderToOOXBegin(RenderParameter oRenderParameter)
|
||||
case stSection : sType = L"numbering"; break;
|
||||
case stTable : sType = L"table"; break;
|
||||
}
|
||||
sResult += L"<w:style w:type=\"" + sType + L"\" w:styleId=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\">";
|
||||
sResult += L"<w:name w:val=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\"/>";
|
||||
//sResult += L"<w:style w:type=\"" + sType + L"\" w:styleId=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\">";
|
||||
sResult += L"<w:style w:type=\"" + sType + L"\" w:styleId=\"" + L"Style_" + std::to_wstring(m_nID) + L"\">";
|
||||
sResult += L"<w:name w:val=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\"/>";
|
||||
|
||||
if( PROP_DEF != m_nBasedOn )
|
||||
{
|
||||
RtfStylePtr oBaseStyle;
|
||||
if( true == poDocument->m_oStyleTable.GetStyle( m_nBasedOn, oBaseStyle ) )
|
||||
sResult += L"<w:basedOn w:val=\"" + XmlUtils::EncodeXmlString( oBaseStyle->m_sName ) + L"\"/>";
|
||||
{
|
||||
sResult += L"<w:basedOn w:val=\"Style_" + std::to_wstring(m_nBasedOn) + L"\"/>";
|
||||
//sResult += L"<w:basedOn w:val=\"" + XmlUtils::EncodeXmlString( oBaseStyle->m_sName ) + L"\"/>";
|
||||
}
|
||||
}
|
||||
//if( PROP_DEF != m_nNext )
|
||||
// sResult += L"<w:next w:val=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\"/>", );//Todo
|
||||
//if( PROP_DEF != m_nLink )
|
||||
// sResult += L"<w:link w:val=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\"/>", );//Todo
|
||||
if( PROP_DEF != m_bHidden ) sResult += L"<w:hidden/>";
|
||||
if( PROP_DEF != m_bLocked ) sResult += L"<w:locked/>";
|
||||
if( PROP_DEF != m_bPersonal ) sResult += L"<w:personal w:val=\"true\" />";
|
||||
if( PROP_DEF != m_bCompose ) sResult += L"<w:personalCompose w:val=\"true\" />";
|
||||
if( PROP_DEF != m_bReply ) sResult += L"<w:personalReply w:val=\"true\" />";
|
||||
if( 1 == m_nSemiHidden ) sResult += L"<w:semiHidden/>";
|
||||
if( PROP_DEF != m_bQFormat ) sResult += L"<w:qformat/>";
|
||||
if( PROP_DEF != m_nPriority ) sResult += L"<w:uiPriority w:val=\"" + std::to_wstring(m_nPriority) + L"\"/>";
|
||||
if( PROP_DEF != m_bUnhiddenWhenUse ) sResult += L"<w:unhideWhenUsed/>";
|
||||
if( 1 == m_bHidden ) sResult += L"<w:hidden/>";
|
||||
if( 1 == m_bLocked ) sResult += L"<w:locked/>";
|
||||
if( 1 == m_bPersonal ) sResult += L"<w:personal w:val=\"true\" />";
|
||||
//if( 1 == m_bCompose ) sResult += L"<w:personalCompose w:val=\"true\" />";
|
||||
if( 1 == m_bReply ) sResult += L"<w:personalReply w:val=\"true\" />";
|
||||
if( 1 == m_nSemiHidden ) sResult += L"<w:semiHidden/>";
|
||||
if( 1 == m_bQFormat ) sResult += L"<w:qformat/>";
|
||||
if( 1 == m_bUnhiddenWhenUse ) sResult += L"<w:unhideWhenUsed/>";
|
||||
if( PROP_DEF != m_nPriority ) sResult += L"<w:uiPriority w:val=\"" + std::to_wstring(m_nPriority) + L"\"/>";
|
||||
|
||||
return sResult;
|
||||
}
|
||||
@ -1965,7 +1969,7 @@ std::wstring RtfParagraphProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
if( true == poRtfDocument->m_oStyleTable.GetStyle( m_nStyle, oCurStile ) )
|
||||
{
|
||||
sResult += L"<w:pStyle w:val=\"";
|
||||
sResult += oCurStile->m_sName;
|
||||
sResult += L"Style_" + std::to_wstring(m_nStyle);//oCurStile->m_sName;
|
||||
sResult += L"\"/>" ;
|
||||
}
|
||||
}
|
||||
@ -2558,7 +2562,7 @@ std::wstring RtfTableProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
if( true == poDocument->m_oStyleTable.GetStyle( m_nStyle, oCurStyle) )
|
||||
{
|
||||
sResult += L"<w:tblStyle w:val=\"";
|
||||
sResult += oCurStyle->m_sName;
|
||||
sResult += L"Style_" + std::to_wstring(m_nStyle); //oCurStyle->m_sName;
|
||||
sResult += L"\"/>";
|
||||
}
|
||||
}
|
||||
|
||||
@ -263,8 +263,8 @@ std::wstring RtfShape::RenderToRtf(RenderParameter oRenderParameter)
|
||||
m_nWrapType = 3;
|
||||
m_nWrapSideType = 0;
|
||||
m_bLockAnchor = 0;
|
||||
m_nZOrder = 0;//PROP_DEF;
|
||||
m_nZOrderRelative = 0;//PROP_DEF;
|
||||
//m_nZOrder = PROP_DEF;
|
||||
m_nZOrderRelative = 0;
|
||||
m_nLeft = m_nTop = 0;
|
||||
m_nRelBottom = m_nRelRight = PROP_DEF;
|
||||
m_nPositionV = m_nPositionH = PROP_DEF;
|
||||
@ -284,16 +284,15 @@ std::wstring RtfShape::RenderToRtf(RenderParameter oRenderParameter)
|
||||
RENDER_RTF_INT ( m_nWrapType , sResult, L"shpwr" );
|
||||
RENDER_RTF_INT ( m_nWrapSideType , sResult, L"shpwrk" );
|
||||
|
||||
|
||||
//if (st_none == m_eAnchorTypeShape)
|
||||
{
|
||||
RENDER_RTF_INT ( m_nZOrder, sResult, L"shpz" );
|
||||
}
|
||||
RENDER_RTF_INT( m_nZOrderRelative, sResult, L"shpfblwtxt");
|
||||
RENDER_RTF_INT ( m_nZOrder, sResult, L"shpz" );
|
||||
sResult += L"\\shplockanchor";
|
||||
|
||||
//sResult += L"{\\sp{\\sn fUseShapeAnchor}{\\sv 0}}";
|
||||
//sResult += L"{\\sp{\\sn fPseudoInline}{\\sv 1}}";
|
||||
RENDER_RTF_INT( m_nID, sResult, L"shplid" );
|
||||
|
||||
sResult += L"{\\sp{\\sn fUseShapeAnchor}{\\sv 0}}";
|
||||
sResult += L"{\\sp{\\sn fPseudoInline}{\\sv 1}}";
|
||||
|
||||
}
|
||||
sResult += RenderToRtfShapeProperty( oRenderParameter );
|
||||
|
||||
@ -422,13 +421,10 @@ std::wstring RtfShape::RenderToRtfShapeProperty(RenderParameter oRenderParameter
|
||||
std::wstring sResult;
|
||||
|
||||
//Position absolute
|
||||
//if( st_inline != m_eAnchorTypeShape)
|
||||
{
|
||||
RENDER_RTF_SHAPE_PROP(L"posh", sResult, m_nPositionH);
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelh", sResult, m_nPositionHRelative);
|
||||
RENDER_RTF_SHAPE_PROP(L"posv", sResult, m_nPositionV);
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelv", sResult, m_nPositionVRelative);
|
||||
}
|
||||
RENDER_RTF_SHAPE_PROP(L"posh", sResult, m_nPositionH);
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelh", sResult, m_nPositionHRelative);
|
||||
RENDER_RTF_SHAPE_PROP(L"posv", sResult, m_nPositionV);
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelv", sResult, m_nPositionVRelative);
|
||||
|
||||
RENDER_RTF_SHAPE_PROP(L"fLayoutInCell", sResult, m_bLayoutInCell);
|
||||
RENDER_RTF_SHAPE_PROP(L"fAllowOverlap", sResult, m_bAllowOverlap);
|
||||
|
||||
Reference in New Issue
Block a user