Commit fb9ac6f1 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

PPTFormat

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@65402 954022d7-b5bf-4e40-9824-e11837661b57
parent e4925ca4
......@@ -429,6 +429,9 @@ namespace NSStreamReader
static inline void Read(POLE::Stream* pStream, NSPresentationEditor::CTextRuler& oRun)
{
double dScaleX = 625 * 2.54 ;
//1/576 inch = 72/576 pt = 360000 *72 * 2.54 /(72*576) emu
DWORD dwFlags = StreamUtils::ReadDWORD(pStream);
BYTE flag1 = (BYTE)(dwFlags);
BYTE flag2 = (BYTE)(dwFlags >> 8);
......@@ -454,7 +457,7 @@ namespace NSStreamReader
if (bCLevels_)
oRun.CLevels = StreamUtils::ReadSHORT(pStream);
if (bDefaultTabSize_)
oRun.DefaultTabSize = StreamUtils::ReadSHORT(pStream);
oRun.DefaultTabSize = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bTabStops_)
{
......@@ -463,34 +466,34 @@ namespace NSStreamReader
for (int i = 0; i < (int)tabStopsCount; ++i)
{
oRun.tabsStops.push_back(StreamUtils::ReadDWORD(pStream));
oRun.tabsStops.push_back(StreamUtils::ReadDWORD(pStream) * dScaleX);
}
}
if (bLeftMargin1_)
oRun.LeftMargin1 = StreamUtils::ReadSHORT(pStream);
oRun.LeftMargin1 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bIndent1_)
oRun.Indent1 = StreamUtils::ReadSHORT(pStream);
oRun.Indent1 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bLeftMargin2_)
oRun.LeftMargin2 = StreamUtils::ReadSHORT(pStream);
oRun.LeftMargin2 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bIndent2_)
oRun.Indent2 = StreamUtils::ReadSHORT(pStream);
oRun.Indent2 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bLeftMargin3_)
oRun.LeftMargin3 = StreamUtils::ReadSHORT(pStream);
oRun.LeftMargin3 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bIndent3_)
oRun.Indent3 = StreamUtils::ReadSHORT(pStream);
oRun.Indent3 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bLeftMargin4_)
oRun.LeftMargin4 = StreamUtils::ReadSHORT(pStream);
oRun.LeftMargin4 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bIndent4_)
oRun.Indent4 = StreamUtils::ReadSHORT(pStream);
oRun.Indent4 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bLeftMargin5_)
oRun.LeftMargin5 = StreamUtils::ReadSHORT(pStream);
oRun.LeftMargin5 = StreamUtils::ReadSHORT(pStream) * dScaleX;
if (bIndent5_)
oRun.Indent5 = StreamUtils::ReadSHORT(pStream);
oRun.Indent5 = StreamUtils::ReadSHORT(pStream) * dScaleX;
}
}
......@@ -522,6 +525,9 @@ public:
public:
void LoadFromStream(POLE::Stream* pStream, bool bIsIndentation = true)
{
double dScaleX = 625 * 2.54 ;
//1/576 inch = 72/576 pt = 360000 *72 * 2.54 /(72*576) emu
if (bIsIndentation)
{
m_lCount = StreamUtils::ReadLONG(pStream);
......@@ -617,29 +623,26 @@ public:
m_oRun.bulletColor = oColor;
}
if (true) // ,
m_oRun.bulletColor.reset();
if (textAlignment_)
m_oRun.textAlignment = StreamUtils::ReadWORD(pStream);
if (lineSpacing_)
m_oRun.lineSpacing = StreamUtils::ReadSHORT(pStream);
m_oRun.lineSpacing = - StreamUtils::ReadSHORT(pStream);
if (spaceBefore_)
m_oRun.spaceBefore = (LONG)StreamUtils::ReadSHORT(pStream);
m_oRun.spaceBefore = - (LONG)StreamUtils::ReadSHORT(pStream);
if (spaceAfter_)
m_oRun.spaceAfter = (LONG)StreamUtils::ReadSHORT(pStream);
m_oRun.spaceAfter = - (LONG)StreamUtils::ReadSHORT(pStream);
if (leftMargin_)
m_oRun.leftMargin = (LONG)StreamUtils::ReadSHORT(pStream);
m_oRun.leftMargin = (LONG)StreamUtils::ReadSHORT(pStream) * dScaleX;
if (indent_)
m_oRun.indent = (LONG)StreamUtils::ReadSHORT(pStream);
m_oRun.indent = (LONG)StreamUtils::ReadSHORT(pStream) * dScaleX;
if (defaultTabSize_)
m_oRun.defaultTabSize = (LONG)StreamUtils::ReadWORD(pStream);
m_oRun.defaultTabSize = (LONG)StreamUtils::ReadWORD(pStream) * dScaleX;
if (tabStops_)
{
......@@ -651,7 +654,7 @@ public:
for (int i = 0; i < (int)tabStopsCount; ++i)
{
m_oRun.tabStops.push_back(StreamUtils::ReadDWORD(pStream));
m_oRun.tabStops.push_back(StreamUtils::ReadDWORD(pStream) * dScaleX );
}
if (0 < m_oRun.tabStops.size())
......
......@@ -301,15 +301,13 @@ namespace NSPresentationEditor
}
void CTextAttributesEx::NormalizeCoordsByMetric(const CMetricInfo & oMetric)
{
double dScaleX = 625 * 2.54 ;//???? /2
//1/576 inch = 72/576 pt = 360000 *72 * 2.54 /(72*576) emu
size_t lCount = m_arParagraphs.size();
for (size_t i = 0; i < lCount; ++i)
{
CTextPFRun* pPar = &m_arParagraphs[i].m_oPFRun;
WORD lIndentLevel = (WORD)m_arParagraphs[i].m_lTextLevel;
switch (lIndentLevel)
{
case 0:
......@@ -320,7 +318,7 @@ namespace NSPresentationEditor
pPar->indent = (LONG)m_oRuler.Indent1.get();
if (pPar->indent.is_init() && pPar->leftMargin.is_init())
pPar->indent.get() -= pPar->leftMargin.get();
pPar->indent = pPar->indent.get() - pPar->leftMargin.get();
break;
}
case 1:
......@@ -331,7 +329,7 @@ namespace NSPresentationEditor
pPar->indent = (LONG)m_oRuler.Indent2.get();
if (pPar->indent.is_init() && pPar->leftMargin.is_init())
pPar->indent.get() -= pPar->leftMargin.get();
pPar->indent = pPar->indent.get() - pPar->leftMargin.get();
break;
}
case 2:
......@@ -342,7 +340,7 @@ namespace NSPresentationEditor
pPar->indent = (LONG)m_oRuler.Indent3.get();
if (pPar->indent.is_init() && pPar->leftMargin.is_init())
pPar->indent.get() -= pPar->leftMargin.get();
pPar->indent = pPar->indent.get() - pPar->leftMargin.get();
break;
}
case 3:
......@@ -353,7 +351,7 @@ namespace NSPresentationEditor
pPar->indent = (LONG)m_oRuler.Indent4.get();
if (pPar->indent.is_init() && pPar->leftMargin.is_init())
pPar->indent.get() -= pPar->leftMargin.get();
pPar->indent = pPar->indent.get() - pPar->leftMargin.get();
break;
}
case 4:
......@@ -364,25 +362,12 @@ namespace NSPresentationEditor
pPar->indent = (LONG)m_oRuler.Indent5.get();
if (pPar->indent.is_init() && pPar->leftMargin.is_init())
pPar->indent.get() -= pPar->leftMargin.get();
pPar->indent = pPar->indent.get() - pPar->leftMargin.get();
break;
}
default:
break;
}
if (pPar->leftMargin.is_init())
pPar->leftMargin = pPar->leftMargin.get() * dScaleX;
if (pPar->indent.is_init())
pPar->indent = pPar->indent.get() * dScaleX;
if (pPar->lineSpacing.is_init())
pPar->lineSpacing =- pPar->lineSpacing.get();
if (pPar->spaceAfter.is_init())
pPar->spaceAfter = -pPar->spaceAfter.get() ;
if (pPar->spaceBefore.is_init())
pPar->spaceBefore = -pPar->spaceBefore.get() ;
if (pPar->defaultTabSize.is_init())
pPar->defaultTabSize = pPar->defaultTabSize.get()* dScaleX;
}
}
......
......@@ -581,21 +581,21 @@ namespace NSPresentationEditor
class CTextRuler
{
public:
NSCommon::nullable_base<SHORT> DefaultTabSize;
NSCommon::nullable_base<LONG> DefaultTabSize;
NSCommon::nullable_base<SHORT> CLevels;
NSCommon::nullable_base<SHORT> TabStops;
NSCommon::nullable_base<SHORT> LeftMargin1;
NSCommon::nullable_base<SHORT> LeftMargin2;
NSCommon::nullable_base<SHORT> LeftMargin3;
NSCommon::nullable_base<SHORT> LeftMargin4;
NSCommon::nullable_base<SHORT> LeftMargin5;
NSCommon::nullable_base<SHORT> Indent1;
NSCommon::nullable_base<SHORT> Indent2;
NSCommon::nullable_base<SHORT> Indent3;
NSCommon::nullable_base<SHORT> Indent4;
NSCommon::nullable_base<SHORT> Indent5;
NSCommon::nullable_base<LONG> LeftMargin1;
NSCommon::nullable_base<LONG> LeftMargin2;
NSCommon::nullable_base<LONG> LeftMargin3;
NSCommon::nullable_base<LONG> LeftMargin4;
NSCommon::nullable_base<LONG> LeftMargin5;
NSCommon::nullable_base<LONG> Indent1;
NSCommon::nullable_base<LONG> Indent2;
NSCommon::nullable_base<LONG> Indent3;
NSCommon::nullable_base<LONG> Indent4;
NSCommon::nullable_base<LONG> Indent5;
std::vector<DWORD> tabsStops;
......
......@@ -482,6 +482,7 @@ void NSPresentationEditor::CShapeWriter::WriteTextInfo()
}
if (pPF->indent.is_init())
{
int ind = pPF->indent.get();
CString strProp = _T("");
strProp.Format(_T(" indent=\"%d\""), pPF->indent.get());
m_oWriter.WriteString(strProp);
......@@ -814,7 +815,7 @@ CString NSPresentationEditor::CShapeWriter::ConvertShape()
m_pShapeElement->m_oShape.ToRenderer(dynamic_cast<IRenderer*>(this), oInfo, m_oMetricInfo, 0.0, 1.0);
}
if ((prstGeom.empty() == false || m_pShapeElement->m_bShapePreset) && prstTxWarp.empty())
if ((/*prstGeom.empty() == false || */m_pShapeElement->m_bShapePreset) && prstTxWarp.empty())
{
if (prstGeom.empty()) prstGeom = L"rect";
m_oWriter.WriteString(std::wstring(L"<a:prstGeom"));
......
......@@ -124,24 +124,7 @@ public:
oWriter.WriteString(str1);
NSPresentationEditor::CTextPFRun* pPF = &oLevel.m_oPFRun;
//------------------------------------------- normalize (a-la CTextAttributesEx)
double dScaleX = 625 * 2.54 ;//???? /2
//1/576 inch = 72/576 pt = 360000 *72 * 2.54 /(72*576) emu
if (pPF->leftMargin.is_init())
pPF->leftMargin = pPF->leftMargin.get() * dScaleX;
if (pPF->indent.is_init())
pPF->indent = pPF->indent.get() * dScaleX;
if (pPF->lineSpacing.is_init())
pPF->lineSpacing =- pPF->lineSpacing.get();
if (pPF->spaceAfter.is_init())
pPF->spaceAfter = -pPF->spaceAfter.get() ;
if (pPF->spaceBefore.is_init())
pPF->spaceBefore = -pPF->spaceBefore.get() ;
if (pPF->defaultTabSize.is_init())
pPF->defaultTabSize = pPF->defaultTabSize.get()* dScaleX;
//------------------------------------------------------------
if (pPF->fontAlign.is_init())
{
CString strProp = GetFontAlign(pPF->fontAlign.get());
......@@ -158,6 +141,7 @@ public:
}
if (pPF->indent.is_init())
{
int ind = pPF->indent.get();
CString strProp = _T("");
strProp.Format(_T(" indent=\"%d\""), pPF->indent.get());
oWriter.WriteString(strProp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment