diff --git a/ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp b/ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp index 8aef1894941ea43be66d3b852b9d3620206ada2b..c704dbfbe409e6182cd55fb19c91a38577bceb81 100644 --- a/ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp +++ b/ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp @@ -1682,6 +1682,8 @@ PPTX::Logic::SpTreeElem CDrawingConverter::doc_LoadShape(XmlUtils::CXmlNode& oNo if (!pShape->TextBoxBodyPr.is_init()) pShape->TextBoxBodyPr = new PPTX::Logic::BodyPr(); + bool bIsTrimTextPath = false; + if (pPPTShape->IsWordArt()) { enum EFilltype @@ -1854,6 +1856,20 @@ PPTX::Logic::SpTreeElem CDrawingConverter::doc_LoadShape(XmlUtils::CXmlNode& oNo { nFontSize = 2; } + + nullable_string sFitShape; + oNodeP.ReadAttributeBase(L"fitshape", sFitShape); + if (sFitShape.is_init() && (*sFitShape == _T("true") || *sFitShape == _T("t"))) + { + nFontSize = 2; + } + + nullable_string sTrim; + oNodeP.ReadAttributeBase(L"trim", sTrim); + if (sTrim.is_init() && (*sTrim == _T("true") || *sTrim == _T("t"))) + { + bIsTrimTextPath = true; + } } } @@ -2216,6 +2232,13 @@ PPTX::Logic::SpTreeElem CDrawingConverter::doc_LoadShape(XmlUtils::CXmlNode& oNo pShape->TextBoxBodyPr->tIns = 0; pShape->TextBoxBodyPr->rIns = 0; pShape->TextBoxBodyPr->bIns = 0; + + if (!bIsTrimTextPath) + { + // нужно Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ размера шейпа выÑтавить отÑтупы Ñверху и Ñнизу + // top: Ascent - CapHeight + // bottom: Descent + } } else {