This commit is contained in:
Elena Subbotina
2024-09-12 18:07:19 +03:00
parent d89d63e0db
commit 7f7e89babf
2 changed files with 36 additions and 15 deletions

View File

@ -294,7 +294,9 @@ namespace DocFileFormat
boost::optional<double> ShadowOriginY;
boost::optional<size_t> xCoord;
boost::optional<size_t> yCoord;
boost::optional<size_t> xCoord2;
boost::optional<size_t> yCoord2;
bool bStroked = true;
bool bFilled = true;
bool hasTextbox = false;
@ -480,6 +482,14 @@ namespace DocFileFormat
m_pXmlWriter->WriteAttribute(L"wrapcoords", wrapCoords);
}
}break;
case ODRAW::geoLeft:
{
xCoord2 = iter->op;
}break;
case ODRAW::geoTop:
{
yCoord2 = iter->op;
}break;
case ODRAW::geoRight:
{
xCoord = iter->op;
@ -1021,7 +1031,15 @@ namespace DocFileFormat
if ( xCoord && yCoord )
{
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::SizeTToWideString( *xCoord ) + L"," + FormatUtils::SizeTToWideString( *yCoord ) ));
if (xCoord2 && yCoord2)
{
m_pXmlWriter->WriteAttribute(L"coordorigin", (FormatUtils::SizeTToWideString(*xCoord2) + L"," + FormatUtils::SizeTToWideString(*yCoord2)));
m_pXmlWriter->WriteAttribute(L"coordsize", (FormatUtils::SizeTToWideString(*xCoord - *xCoord2) + L"," + FormatUtils::SizeTToWideString(*yCoord - *yCoord2)));
}
else
{
m_pXmlWriter->WriteAttribute(L"coordsize", (FormatUtils::SizeTToWideString(*xCoord) + L"," + FormatUtils::SizeTToWideString(*yCoord)));
}
}
int nCode = 0;

View File

@ -1275,24 +1275,28 @@ void MSOPATHINFO::load(IBinaryReader* reader)
case 0x09:
{
m_eRuler = ODRAW::rtQuadrBesier;
break;
}
}break;
case 0x0A:
{
m_eRuler = ODRAW::rtNoFill;
break;
}
}break;
case 0x0B:
{
m_eRuler = ODRAW::rtNoStroke;
break;
}
case 0x0C:
case 0x10:
}break;
case 0x0C: //msopathEscapeAutoLine
{
m_eRuler = ODRAW::rtLineTo;
break;
}
mem = 2;
}break;
case 0x10: // msopathEscapeSmoothLine
{
m_eRuler = ODRAW::rtLineTo;
}break;
case 0x0D:
case 0x0E:
case 0x0F:
@ -1301,9 +1305,8 @@ void MSOPATHINFO::load(IBinaryReader* reader)
case 0x13:
case 0x14:
{
m_eRuler = ODRAW::rtCurveTo;
break;
}
m_eRuler = ODRAW::rtCurveTo;
}break;
case 0x15:
{
m_eRuler = ODRAW::rtFillColor;