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

View File

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