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

RtfFile фиксинг по результатам тестирования

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@62215 954022d7-b5bf-4e40-9824-e11837661b57
parent a3cb7a27
...@@ -23,14 +23,14 @@ public: ...@@ -23,14 +23,14 @@ public:
{ {
case OOX::et_m_mathFont: case OOX::et_m_mathFont:
{ {
OOX::Logic::CMathFont* pFont = static_cast<OOX::Logic::CMathFont*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CMathFont* pFont = dynamic_cast<OOX::Logic::CMathFont*>(m_ooxMathPr->m_arrItems[i]);
RtfFont oFont; RtfFont oFont;
if (( pFont && pFont->m_val.IsInit()) && (true == oParam.oRtf->m_oFontTable.GetFont(pFont->m_val.get2(), oFont))) if (( pFont && pFont->m_val.IsInit()) && (true == oParam.oRtf->m_oFontTable.GetFont(pFont->m_val.get2(), oFont)))
oParam.oRtf->m_oMathProp.mmathFont = oFont.m_nID; oParam.oRtf->m_oMathProp.mmathFont = oFont.m_nID;
}break; }break;
case OOX::et_m_brkBin: case OOX::et_m_brkBin:
{ {
OOX::Logic::CBrkBin* pBrkBin = static_cast<OOX::Logic::CBrkBin*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CBrkBin* pBrkBin = dynamic_cast<OOX::Logic::CBrkBin*>(m_ooxMathPr->m_arrItems[i]);
if ((pBrkBin) && (pBrkBin->m_val.IsInit())) if ((pBrkBin) && (pBrkBin->m_val.IsInit()))
{ {
switch(pBrkBin->m_val->GetValue()) switch(pBrkBin->m_val->GetValue())
...@@ -45,7 +45,7 @@ public: ...@@ -45,7 +45,7 @@ public:
}break; }break;
case OOX::et_m_brkBinSub: case OOX::et_m_brkBinSub:
{ {
OOX::Logic::CBrkBinSub* pBrkBinSub = static_cast<OOX::Logic::CBrkBinSub*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CBrkBinSub* pBrkBinSub = dynamic_cast<OOX::Logic::CBrkBinSub*>(m_ooxMathPr->m_arrItems[i]);
if ((pBrkBinSub) && (pBrkBinSub->m_val.IsInit())) if ((pBrkBinSub) && (pBrkBinSub->m_val.IsInit()))
{ {
switch(pBrkBinSub->m_val->GetValue()) switch(pBrkBinSub->m_val->GetValue())
...@@ -58,7 +58,7 @@ public: ...@@ -58,7 +58,7 @@ public:
}break; }break;
case OOX::et_m_defJc: case OOX::et_m_defJc:
{ {
OOX::Logic::CDefJc* pDefJc = static_cast<OOX::Logic::CDefJc*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CDefJc* pDefJc = dynamic_cast<OOX::Logic::CDefJc*>(m_ooxMathPr->m_arrItems[i]);
if ((pDefJc) && (pDefJc->m_val.IsInit())) if ((pDefJc) && (pDefJc->m_val.IsInit()))
{ {
switch(pDefJc->m_val->GetValue()) switch(pDefJc->m_val->GetValue())
...@@ -73,37 +73,37 @@ public: ...@@ -73,37 +73,37 @@ public:
}break; }break;
case OOX::et_m_dispDef: case OOX::et_m_dispDef:
{ {
OOX::Logic::CDispDef* pDispDef = static_cast<OOX::Logic::CDispDef*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CDispDef* pDispDef = dynamic_cast<OOX::Logic::CDispDef*>(m_ooxMathPr->m_arrItems[i]);
if ((pDispDef) && (pDispDef->m_val.IsInit())) if ((pDispDef) && (pDispDef->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mdispDef = pDispDef->m_val->ToBool(); oParam.oRtf->m_oMathProp.mdispDef = pDispDef->m_val->ToBool();
}break; }break;
case OOX::et_m_interSp: case OOX::et_m_interSp:
{ {
OOX::Logic::CInterSp* pInterSp = static_cast<OOX::Logic::CInterSp*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CInterSp* pInterSp = dynamic_cast<OOX::Logic::CInterSp*>(m_ooxMathPr->m_arrItems[i]);
if ((pInterSp) && (pInterSp->m_val.IsInit())) if ((pInterSp) && (pInterSp->m_val.IsInit()))
oParam.oRtf->m_oMathProp.minterSp = pInterSp->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.minterSp = pInterSp->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_intraSp: case OOX::et_m_intraSp:
{ {
OOX::Logic::CIntraSp* pIntraSp = static_cast<OOX::Logic::CIntraSp*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CIntraSp* pIntraSp = dynamic_cast<OOX::Logic::CIntraSp*>(m_ooxMathPr->m_arrItems[i]);
if ((pIntraSp) && (pIntraSp->m_val.IsInit())) if ((pIntraSp) && (pIntraSp->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mintraSp = pIntraSp->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mintraSp = pIntraSp->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_lMargin: case OOX::et_m_lMargin:
{ {
OOX::Logic::CLMargin* pMargin = static_cast<OOX::Logic::CLMargin*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CLMargin* pMargin = dynamic_cast<OOX::Logic::CLMargin*>(m_ooxMathPr->m_arrItems[i]);
if ((pMargin) && (pMargin->m_val.IsInit())) if ((pMargin) && (pMargin->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mlMargin = pMargin->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mlMargin = pMargin->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_rMargin: case OOX::et_m_rMargin:
{ {
OOX::Logic::CRMargin* pMargin = static_cast<OOX::Logic::CRMargin*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CRMargin* pMargin = dynamic_cast<OOX::Logic::CRMargin*>(m_ooxMathPr->m_arrItems[i]);
if ((pMargin) && (pMargin->m_val.IsInit())) if ((pMargin) && (pMargin->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mrMargin = pMargin->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mrMargin = pMargin->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_naryLim: case OOX::et_m_naryLim:
{ {
OOX::Logic::CNaryLim* pNaryLim = static_cast<OOX::Logic::CNaryLim*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CNaryLim* pNaryLim = dynamic_cast<OOX::Logic::CNaryLim*>(m_ooxMathPr->m_arrItems[i]);
if ( (pNaryLim) && (pNaryLim->m_val.IsInit()) ) if ( (pNaryLim) && (pNaryLim->m_val.IsInit()) )
{ {
if( pNaryLim->m_val->GetValue() == SimpleTypes::limLocSubSup) oParam.oRtf->m_oMathProp.mnaryLim = 0; if( pNaryLim->m_val->GetValue() == SimpleTypes::limLocSubSup) oParam.oRtf->m_oMathProp.mnaryLim = 0;
...@@ -112,31 +112,31 @@ public: ...@@ -112,31 +112,31 @@ public:
}break; }break;
case OOX::et_m_postSp: case OOX::et_m_postSp:
{ {
OOX::Logic::CPostSp* pPostSp = static_cast<OOX::Logic::CPostSp*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CPostSp* pPostSp = dynamic_cast<OOX::Logic::CPostSp*>(m_ooxMathPr->m_arrItems[i]);
if ((pPostSp) && (pPostSp->m_val.IsInit())) if ((pPostSp) && (pPostSp->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mpostSp = pPostSp->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mpostSp = pPostSp->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_preSp: case OOX::et_m_preSp:
{ {
OOX::Logic::CPreSp* pPreSp = static_cast<OOX::Logic::CPreSp*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CPreSp* pPreSp = dynamic_cast<OOX::Logic::CPreSp*>(m_ooxMathPr->m_arrItems[i]);
if ((pPreSp) && (pPreSp->m_val.IsInit())) if ((pPreSp) && (pPreSp->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mpreSp = pPreSp->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mpreSp = pPreSp->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_smallFrac: case OOX::et_m_smallFrac:
{ {
OOX::Logic::CSmallFrac* pSmallFrac = static_cast<OOX::Logic::CSmallFrac*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CSmallFrac* pSmallFrac = dynamic_cast<OOX::Logic::CSmallFrac*>(m_ooxMathPr->m_arrItems[i]);
if ((pSmallFrac) && (pSmallFrac->m_val.IsInit())) if ((pSmallFrac) && (pSmallFrac->m_val.IsInit()))
oParam.oRtf->m_oMathProp.msmallFrac = pSmallFrac->m_val->ToBool(); oParam.oRtf->m_oMathProp.msmallFrac = pSmallFrac->m_val->ToBool();
}break; }break;
case OOX::et_m_wrapIndent: case OOX::et_m_wrapIndent:
{ {
OOX::Logic::CWrapIndent* pWrapIndent = static_cast<OOX::Logic::CWrapIndent*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CWrapIndent* pWrapIndent = dynamic_cast<OOX::Logic::CWrapIndent*>(m_ooxMathPr->m_arrItems[i]);
if ((pWrapIndent) && (pWrapIndent->m_val.IsInit())) if ((pWrapIndent) && (pWrapIndent->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mwrapIndent = pWrapIndent->m_val->ToTwips(); //todooo oParam.oRtf->m_oMathProp.mwrapIndent = pWrapIndent->m_val->ToTwips(); //todooo
}break; }break;
case OOX::et_m_wrapRight: case OOX::et_m_wrapRight:
{ {
OOX::Logic::CWrapRight* pWrapRight = static_cast<OOX::Logic::CWrapRight*>(m_ooxMathPr->m_arrItems[i]); OOX::Logic::CWrapRight* pWrapRight = dynamic_cast<OOX::Logic::CWrapRight*>(m_ooxMathPr->m_arrItems[i]);
if ((pWrapRight) && (pWrapRight->m_val.IsInit())) if ((pWrapRight) && (pWrapRight->m_val.IsInit()))
oParam.oRtf->m_oMathProp.mwrapRight = pWrapRight->m_val->ToBool(); //todooo oParam.oRtf->m_oMathProp.mwrapRight = pWrapRight->m_val->ToBool(); //todooo
}break; }break;
......
...@@ -73,7 +73,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -73,7 +73,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
{ {
oParam.oReader->m_nCurItap ++ ; oParam.oReader->m_nCurItap ++ ;
RtfTablePtr oNewTabel( new RtfTable() ); RtfTablePtr oNewTabel( new RtfTable() );
OOX::Logic::CTbl * pTbl = static_cast<OOX::Logic::CTbl*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CTbl * pTbl = dynamic_cast<OOX::Logic::CTbl*>(m_ooxElement->m_arrItems[i]);
OOXTableReader oTableReader(pTbl); OOXTableReader oTableReader(pTbl);
oTableReader.Parse( oParam, *oNewTabel); oTableReader.Parse( oParam, *oNewTabel);
...@@ -82,13 +82,13 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -82,13 +82,13 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_r: case OOX::et_w_r:
{ {
OOX::Logic::CRun * pRun = static_cast<OOX::Logic::CRun*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CRun * pRun = dynamic_cast<OOX::Logic::CRun*>(m_ooxElement->m_arrItems[i]);
OOXRunReader m_oRunReader(pRun); OOXRunReader m_oRunReader(pRun);
m_oRunReader.Parse ( oParam, oOutputParagraph, poExternalStyle ); m_oRunReader.Parse ( oParam, oOutputParagraph, poExternalStyle );
}break; }break;
case OOX::et_w_fldSimple: case OOX::et_w_fldSimple:
{ {
OOX::Logic::CFldSimple * pFldSimple = static_cast<OOX::Logic::CFldSimple*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CFldSimple * pFldSimple = dynamic_cast<OOX::Logic::CFldSimple*>(m_ooxElement->m_arrItems[i]);
RtfFieldPtr oCurField( new RtfField() ); RtfFieldPtr oCurField( new RtfField() );
oCurField->m_oInsert = TextItemContainerPtr( new TextItemContainer() ); oCurField->m_oInsert = TextItemContainerPtr( new TextItemContainer() );
...@@ -129,7 +129,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -129,7 +129,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_hyperlink: case OOX::et_w_hyperlink:
{ {
OOX::Logic::CHyperlink * pHyperlink = static_cast<OOX::Logic::CHyperlink*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CHyperlink * pHyperlink = dynamic_cast<OOX::Logic::CHyperlink*>(m_ooxElement->m_arrItems[i]);
if( pHyperlink->m_oId.IsInit() ) if( pHyperlink->m_oId.IsInit() )
{ {
...@@ -235,7 +235,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -235,7 +235,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_bookmarkStart: case OOX::et_w_bookmarkStart:
{ {
OOX::Logic::CBookmarkStart * pBookmarkStart = static_cast<OOX::Logic::CBookmarkStart*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CBookmarkStart * pBookmarkStart = dynamic_cast<OOX::Logic::CBookmarkStart*>(m_ooxElement->m_arrItems[i]);
RtfBookmarkStartPtr oNewBookmark( new RtfBookmarkStart() ); RtfBookmarkStartPtr oNewBookmark( new RtfBookmarkStart() );
oNewBookmark->m_sName = pBookmarkStart->m_sName.IsInit() ? pBookmarkStart->m_sName.get2() : _T(""); oNewBookmark->m_sName = pBookmarkStart->m_sName.IsInit() ? pBookmarkStart->m_sName.get2() : _T("");
...@@ -254,7 +254,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -254,7 +254,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_bookmarkEnd: case OOX::et_w_bookmarkEnd:
{ {
OOX::Logic::CBookmarkEnd * pBookmarkEnd = static_cast<OOX::Logic::CBookmarkEnd*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CBookmarkEnd * pBookmarkEnd = dynamic_cast<OOX::Logic::CBookmarkEnd*>(m_ooxElement->m_arrItems[i]);
RtfBookmarkEndPtr oNewBookmark( new RtfBookmarkEnd() ); RtfBookmarkEndPtr oNewBookmark( new RtfBookmarkEnd() );
//oNewBookmark->m_sName = pBookmarkEnd->; //oNewBookmark->m_sName = pBookmarkEnd->;
...@@ -269,11 +269,11 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -269,11 +269,11 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_smartTag: case OOX::et_w_smartTag:
{ {
OOX::Logic::CSmartTag * pSmartTag = static_cast<OOX::Logic::CSmartTag*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CSmartTag * pSmartTag = dynamic_cast<OOX::Logic::CSmartTag*>(m_ooxElement->m_arrItems[i]);
for (long i = 0 ; i < pSmartTag->m_arrItems.size(); i++) for (long i = 0 ; i < pSmartTag->m_arrItems.size(); i++)
{ {
OOX::Logic::CRun * pRun = static_cast<OOX::Logic::CRun*>(pSmartTag->m_arrItems[i]); OOX::Logic::CRun * pRun = dynamic_cast<OOX::Logic::CRun*>(pSmartTag->m_arrItems[i]);
if (pRun == NULL) continue; if (pRun == NULL) continue;
OOXRunReader m_oRunReader(pRun); OOXRunReader m_oRunReader(pRun);
...@@ -282,7 +282,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -282,7 +282,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_m_oMathPara: case OOX::et_m_oMathPara:
{ {
OOX::Logic::COMathPara * pMathPara = static_cast<OOX::Logic::COMathPara*>(m_ooxElement->m_arrItems[i]); OOX::Logic::COMathPara * pMathPara = dynamic_cast<OOX::Logic::COMathPara*>(m_ooxElement->m_arrItems[i]);
RtfMathPtr oNewMath( new RtfMath() ); RtfMathPtr oNewMath( new RtfMath() );
oNewMath->SetOOXName(_T("m:oMathPara") ); oNewMath->SetOOXName(_T("m:oMathPara") );
...@@ -293,7 +293,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP ...@@ -293,7 +293,7 @@ bool OOXParagraphReader::Parse2( ReaderParameter oParam , RtfParagraph& oOutputP
}break; }break;
case OOX::et_w_sdt: case OOX::et_w_sdt:
{ {
OOX::Logic::CSdt * pSdt = static_cast<OOX::Logic::CSdt*>(m_ooxElement->m_arrItems[i]); OOX::Logic::CSdt * pSdt = dynamic_cast<OOX::Logic::CSdt*>(m_ooxElement->m_arrItems[i]);
if( pSdt->m_oSdtEndPr.IsInit() ) if( pSdt->m_oSdtEndPr.IsInit() )
{ {
//todo //todo
......
...@@ -21,7 +21,7 @@ bool OOXShapeReader::Parse2( ReaderParameter oParam , RtfShapePtr& oOutput) ...@@ -21,7 +21,7 @@ bool OOXShapeReader::Parse2( ReaderParameter oParam , RtfShapePtr& oOutput)
CString srId = image_data->m_oId.IsInit() ? image_data->m_oId.get2() : _T("") ; CString srId = image_data->m_oId.IsInit() ? image_data->m_oId.get2() : _T("") ;
if (srId.length() < 1) if (srId.GetLength() < 1)
srId = image_data->m_rId.IsInit() ? image_data->m_rId->GetValue() : _T("") ; srId = image_data->m_rId.IsInit() ? image_data->m_rId->GetValue() : _T("") ;
smart_ptr<OOX::File> oFile = oParam.oDocx->GetDocument()->Find(srId); smart_ptr<OOX::File> oFile = oParam.oDocx->GetDocument()->Find(srId);
...@@ -99,7 +99,6 @@ bool OOXShapeReader::Parse2( ReaderParameter oParam , RtfShapePtr& oOutput) ...@@ -99,7 +99,6 @@ bool OOXShapeReader::Parse2( ReaderParameter oParam , RtfShapePtr& oOutput)
{ {
OOX::VmlWord::CWrap *wrap = dynamic_cast<OOX::VmlWord::CWrap*>(m_arrElement->m_arrItems[i]); OOX::VmlWord::CWrap *wrap = dynamic_cast<OOX::VmlWord::CWrap*>(m_arrElement->m_arrItems[i]);
wrap->m_oSide->GetValue();
if (wrap->m_oType.IsInit()) if (wrap->m_oType.IsInit())
{ {
switch(wrap->m_oType->GetValue()) switch(wrap->m_oType->GetValue())
......
...@@ -39,7 +39,7 @@ public: ...@@ -39,7 +39,7 @@ public:
{ {
case OOX::et_w_p: case OOX::et_w_p:
{ {
OOX::Logic::CParagraph * pParagraph = static_cast<OOX::Logic::CParagraph*>(m_ooxTableCell->m_arrItems[i]); OOX::Logic::CParagraph * pParagraph = dynamic_cast<OOX::Logic::CParagraph*>(m_ooxTableCell->m_arrItems[i]);
RtfParagraphPtr oNewParagraph( new RtfParagraph() ); RtfParagraphPtr oNewParagraph( new RtfParagraph() );
//применяем к новому параграфу default property //применяем к новому параграфу default property
...@@ -60,7 +60,7 @@ public: ...@@ -60,7 +60,7 @@ public:
}break; }break;
case OOX::et_w_tbl: case OOX::et_w_tbl:
{ {
OOX::Logic::CTbl * pTbl = static_cast<OOX::Logic::CTbl*>(m_ooxTableCell->m_arrItems[i]); OOX::Logic::CTbl * pTbl = dynamic_cast<OOX::Logic::CTbl*>(m_ooxTableCell->m_arrItems[i]);
oParam.oReader->m_nCurItap ++ ; oParam.oReader->m_nCurItap ++ ;
RtfTablePtr oNewTabel( new RtfTable() ); RtfTablePtr oNewTabel( new RtfTable() );
......
...@@ -24,7 +24,7 @@ public: ...@@ -24,7 +24,7 @@ public:
{ {
case OOX::et_w_p: case OOX::et_w_p:
{ {
OOX::Logic::CParagraph * pParagraph = static_cast<OOX::Logic::CParagraph*>(ooxElement); OOX::Logic::CParagraph * pParagraph = dynamic_cast<OOX::Logic::CParagraph*>(ooxElement);
bool bStartNewSection = false; bool bStartNewSection = false;
OOXParagraphReader m_oParagraphReader(pParagraph); OOXParagraphReader m_oParagraphReader(pParagraph);
RtfParagraphPtr oNewParagraph( new RtfParagraph() ); RtfParagraphPtr oNewParagraph( new RtfParagraph() );
...@@ -49,7 +49,7 @@ public: ...@@ -49,7 +49,7 @@ public:
}break; }break;
case OOX::et_w_tbl: case OOX::et_w_tbl:
{ {
OOX::Logic::CTbl * pTbl = static_cast<OOX::Logic::CTbl*>(ooxElement); OOX::Logic::CTbl * pTbl = dynamic_cast<OOX::Logic::CTbl*>(ooxElement);
RtfTablePtr oNewTable( new RtfTable() ); RtfTablePtr oNewTable( new RtfTable() );
OOXTableReader oTableReader(pTbl); OOXTableReader oTableReader(pTbl);
...@@ -62,7 +62,7 @@ public: ...@@ -62,7 +62,7 @@ public:
}break; }break;
case OOX::et_w_sdt: case OOX::et_w_sdt:
{ {
OOX::Logic::CSdt * pSdt = static_cast<OOX::Logic::CSdt*>(ooxElement); OOX::Logic::CSdt * pSdt = dynamic_cast<OOX::Logic::CSdt*>(ooxElement);
if( pSdt->m_oSdtEndPr.IsInit()) if( pSdt->m_oSdtEndPr.IsInit())
{ {
//todo //todo
......
...@@ -66,6 +66,11 @@ CString RtfFont::RenderToOOX(RenderParameter oRenderParameter) ...@@ -66,6 +66,11 @@ CString RtfFont::RenderToOOX(RenderParameter oRenderParameter)
{ {
RtfDocument* poRtfDocument = static_cast<RtfDocument*>(oRenderParameter.poDocument); RtfDocument* poRtfDocument = static_cast<RtfDocument*>(oRenderParameter.poDocument);
CString sFontName = m_sName; CString sFontName = m_sName;
if ((sFontName.GetLength() > 0 ) && (sFontName[0] == 0x00b9 && m_sAltName.GetLength() > 0) )
{
sFontName = m_sAltName;
}
if( _T("") == sFontName ) if( _T("") == sFontName )
{ {
if( PROP_DEF != poRtfDocument->m_oProperty.m_nDeffFont ) if( PROP_DEF != poRtfDocument->m_oProperty.m_nDeffFont )
...@@ -148,8 +153,31 @@ CString RtfFont::RenderToOOX(RenderParameter oRenderParameter) ...@@ -148,8 +153,31 @@ CString RtfFont::RenderToOOX(RenderParameter oRenderParameter)
RtfFont oCurFont; RtfFont oCurFont;
if( true == poRtfDocument->m_oFontTable.GetFont(m_nID,oCurFont) ) if( true == poRtfDocument->m_oFontTable.GetFont(m_nID,oCurFont) )
{ {
sResult.AppendFormat(_T("<w:rFonts w:ascii=\"%ls\" w:eastAsia=\"%ls\" w:hAnsi=\"%ls\" w:cs=\"%ls\"/>"), CString sHint;
sFontName.GetBuffer(), sFontName.GetBuffer(), sFontName.GetBuffer(), sFontName.GetBuffer()); switch(m_nCharset)
{
case 128://Japanese
case 129://Korean
case 130://Korean
case 134://China
case 136://China
case 163://Vietnamese
case 222://Thai
{
sHint = _T(" w:hint=\"eastAsia\"/>");
}break;
case 177://Hebrew
case 178://Arabic
case 179://Arabic
case 180://Arabic
case 181://Hebrew
{
sHint = _T(" w:hint=\"cs\"/>");
}break;
//?? нужно ли описывать default??? todooo
}
sResult.AppendFormat(_T("<w:rFonts w:ascii=\"%ls\" w:eastAsia=\"%ls\" w:hAnsi=\"%ls\" w:cs=\"%ls\"%ls/>"),
sFontName.GetBuffer(), sFontName.GetBuffer(), sFontName.GetBuffer(), sFontName.GetBuffer(), sHint);
} }
} }
} }
......
...@@ -123,13 +123,14 @@ public: ...@@ -123,13 +123,14 @@ public:
m_nHyphenationRight = PROP_DEF; m_nHyphenationRight = PROP_DEF;
m_nZoom = 100; m_nZoom = 100;
//вычисляем стандартный default ansi codepage для системы // //вычисляем стандартный default ansi codepage для системы
#if defined (_WIN32) || defined(_WIN64) //#if defined (_WIN32) || defined(_WIN64)
TCHAR codepage[7]; // TCHAR codepage[7];
if( GetLocaleInfo( LOCALE_SYSTEM_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, codepage, 6 ) != 0) // if( GetLocaleInfo( LOCALE_SYSTEM_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, codepage, 6 ) != 0)
m_nAnsiCodePage = _ttoi(codepage); // m_nAnsiCodePage = _ttoi(codepage);
else // else
#endif // #endif
// ???? тут локаль где стоит конвертилка будет и тока под виндой
m_nAnsiCodePage = CP_ACP; m_nAnsiCodePage = CP_ACP;
m_bDorderSurroundHeader = PROP_DEF; m_bDorderSurroundHeader = PROP_DEF;
......
...@@ -364,7 +364,6 @@ public: ...@@ -364,7 +364,6 @@ public:
CFile file; CFile file;
if (file.CreateFile(sFilename) != S_OK) return; if (file.CreateFile(sFilename) != S_OK) return;
DWORD dwBytesWritten;
file.WriteFile(pbData ,nLength); file.WriteFile(pbData ,nLength);
file.CloseFile(); file.CloseFile();
} }
...@@ -459,7 +458,7 @@ public: ...@@ -459,7 +458,7 @@ public:
if( TRUE == TranslateCharsetInfo(dwAcp, &Info, TCI_SRCCHARSET) ) if( TRUE == TranslateCharsetInfo(dwAcp, &Info, TCI_SRCCHARSET) )
return Info.ciACP; return Info.ciACP;
int CodePagesLength = sizeof( aCodePages ) / ( sizeof( int ) ); int nCodePagesLength = sizeof( aCodePages ) / ( sizeof( int ) );
for( int i = 0; i < nCodePagesLength; i++ ) for( int i = 0; i < nCodePagesLength; i++ )
if( aCodePages[i][0] == nCharset ) if( aCodePages[i][0] == nCharset )
return aCodePages[i][1]; return aCodePages[i][1];
......
...@@ -91,17 +91,6 @@ BEGIN ...@@ -91,17 +91,6 @@ BEGIN
END END
IDR_ASCOFFICERTFFILE REGISTRY "ASCOfficeRtfFile.rgs" IDR_ASCOFFICERTFFILE REGISTRY "ASCOfficeRtfFile.rgs"
////////////////////////////////////////////////////////////////////////////
//
// DOCX xml
//
IDR_APP XML "..\\Resource\\app.xml"
IDR_CORE XML "..\\Resource\\core.xml"
IDR_FONT_TABLE XML "..\\Resource\\fontTable.xml"
IDR_STYLES XML "..\\Resource\\styles.xml"
IDR_THEME XML "..\\Resource\\theme1.xml"
IDR_SETTINGS XML "..\\Resource\\settings.xml"
#endif #endif
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//0 //0
//1 //1
//51 //52
#define INTVER 1,0,1,51 #define INTVER 1,0,1,52
#define STRVER "1,0,1,51\0" #define STRVER "1,0,1,52\0"
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