This commit is contained in:
Elena Subbotina
2022-11-12 17:10:25 +03:00
parent 3c570883e0
commit 1e7c85d310
7 changed files with 201 additions and 193 deletions

View File

@ -53,14 +53,14 @@ namespace OOX
int nCurDepth = oReader.GetDepth();
while (oReader.ReadNextSiblingNode(nCurDepth))
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if (L"w:drawing" == sName)
if (L"drawing" == sName)
{
m_oDrawing = new OOX::Logic::CDrawing(m_pMainDocument);
m_oDrawing->fromXML(oReader);
}
else if (L"v:background" == sName)
else if (L"background" == sName)
{
m_oBackground = OOX::Vml::CBackground(m_pMainDocument);
m_oBackground->fromXML(oReader);
@ -133,24 +133,24 @@ namespace OOX
int nCurDepth = oReader.GetDepth();
while (oReader.ReadNextSiblingNode(nCurDepth))
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if (L"w:background" == sName)
if (L"background" == sName)
{
ReadAttributes(oReader);
}
else if (L"v:background" == sName)
else if (L"background" == sName)
m_oBackground = oReader;
else if (L"w:binData" == sName)
else if (L"binData" == sName)
m_oBinData = oReader;
}
}
void CBgPict::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start(oReader)
WritingElement_ReadAttributes_Read_if(oReader, L"w:bgcolor", m_oColor)
WritingElement_ReadAttributes_Read_else_if(oReader, L"w:background", m_oBackgroundType)
WritingElement_ReadAttributes_End(oReader)
WritingElement_ReadAttributes_Start_No_NS(oReader)
WritingElement_ReadAttributes_Read_if(oReader, L"bgcolor", m_oColor)
WritingElement_ReadAttributes_Read_else_if(oReader, L"background", m_oBackgroundType)
WritingElement_ReadAttributes_End_No_NS(oReader)
}
}
//------------------------------------------------------------------------------------------------------------------------
@ -234,69 +234,69 @@ namespace OOX
while ( oReader.ReadNextSiblingNode( Depth ) )
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
WritingElement *pItem = NULL;
if (L"w:altChunk" == sName )
if (L"altChunk" == sName )
pItem = new Logic::CAltChunk( document );
else if (L"w:bookmarkEnd" == sName )
else if (L"bookmarkEnd" == sName )
pItem = new Logic::CBookmarkEnd( document );
else if (L"w:bookmarkStart" == sName )
else if (L"bookmarkStart" == sName )
pItem = new Logic::CBookmarkStart( document );
else if (L"w:commentRangeEnd" == sName )
else if (L"commentRangeEnd" == sName )
pItem = new Logic::CCommentRangeEnd( document );
else if (L"w:commentRangeStart" == sName )
else if (L"commentRangeStart" == sName )
pItem = new Logic::CCommentRangeStart( document );
//else if (L"w:customXml" == sName )
//else if (L"customXml" == sName )
// pItem = new Logic::CCustomXml( document );
else if (L"w:customXmlDelRangeEnd" == sName )
else if (L"customXmlDelRangeEnd" == sName )
pItem = new Logic::CCustomXmlDelRangeEnd( document );
else if (L"w:customXmlDelRangeStart" == sName )
else if (L"customXmlDelRangeStart" == sName )
pItem = new Logic::CCustomXmlDelRangeStart( document );
else if (L"w:customXmlInsRangeEnd" == sName )
else if (L"customXmlInsRangeEnd" == sName )
pItem = new Logic::CCustomXmlInsRangeEnd( document );
else if (L"w:customXmlInsRangeStart" == sName )
else if (L"customXmlInsRangeStart" == sName )
pItem = new Logic::CCustomXmlInsRangeStart( document );
else if (L"w:customXmlMoveFromRangeEnd" == sName )
else if (L"customXmlMoveFromRangeEnd" == sName )
pItem = new Logic::CCustomXmlMoveFromRangeEnd( document );
else if (L"w:customXmlMoveFromRangeStart" == sName )
else if (L"customXmlMoveFromRangeStart" == sName )
pItem = new Logic::CCustomXmlMoveFromRangeStart( document );
else if (L"w:customXmlMoveToRangeEnd" == sName )
else if (L"customXmlMoveToRangeEnd" == sName )
pItem = new Logic::CCustomXmlMoveToRangeEnd( document );
else if (L"w:customXmlMoveToRangeStart" == sName )
else if (L"customXmlMoveToRangeStart" == sName )
pItem = new Logic::CCustomXmlMoveToRangeStart( document );
else if (L"w:del" == sName )
else if (L"del" == sName )
pItem = new Logic::CDel( document );
else if (L"w:ins" == sName )
else if (L"ins" == sName )
pItem = new Logic::CIns( document );
else if (L"w:moveFrom" == sName )
else if (L"moveFrom" == sName )
pItem = new Logic::CMoveFrom( document );
else if (L"w:moveFromRangeEnd" == sName )
else if (L"moveFromRangeEnd" == sName )
pItem = new Logic::CMoveFromRangeEnd( document );
else if (L"w:moveFromRangeStart" == sName )
else if (L"moveFromRangeStart" == sName )
pItem = new Logic::CMoveFromRangeStart( document );
else if (L"w:moveTo" == sName )
else if (L"moveTo" == sName )
pItem = new Logic::CMoveTo( document );
else if (L"w:moveToRangeEnd" == sName )
else if (L"moveToRangeEnd" == sName )
pItem = new Logic::CMoveToRangeEnd( document );
else if (L"w:moveToRangeStart" == sName )
else if (L"moveToRangeStart" == sName )
pItem = new Logic::CMoveToRangeStart( document );
else if (L"m:oMath" == sName )
pItem = new Logic::COMath( document );
else if (L"m:oMathPara" == sName )
pItem = new Logic::COMathPara( document );
else if (L"w:p" == sName )
else if (L"p" == sName )
pItem = new Logic::CParagraph( document );
else if (L"w:permEnd" == sName )
else if (L"permEnd" == sName )
pItem = new Logic::CPermEnd( document );
else if (L"w:permStart" == sName )
else if (L"permStart" == sName )
pItem = new Logic::CPermStart( document );
else if (L"w:proofErr" == sName )
else if (L"proofErr" == sName )
pItem = new Logic::CProofErr( document );
else if (L"w:sdt" == sName )
else if (L"sdt" == sName )
pItem = new Logic::CSdt( document );
else if (L"w:sectPr" == sName )
else if (L"sectPr" == sName )
{
m_oSectPr = new Logic::CSectionProperty( document );
m_oSectPr->fromXML(oReader);
@ -314,34 +314,34 @@ namespace OOX
}
//-------------------------------------------------------------------------
}
else if (L"w:tbl" == sName )
else if (L"tbl" == sName )
pItem = new Logic::CTbl( document );
else if (L"w:body" == sName && !oReader.IsEmptyNode())
else if (L"body" == sName && !oReader.IsEmptyNode())
{
int nWBodyDepth = oReader.GetDepth();
CreateElements(oReader, nWBodyDepth);
}
else if (L"wx:sect" == sName && !oReader.IsEmptyNode())
else if (L"sect" == sName && !oReader.IsEmptyNode())
{
int nWxSectDepth = oReader.GetDepth();
CreateElements(oReader, nWxSectDepth);
}
else if (L"wx:sub-section" == sName && !oReader.IsEmptyNode())
else if (L"sub-section" == sName && !oReader.IsEmptyNode())
{
int nWxSubSectDepth = oReader.GetDepth();
CreateElements(oReader, nWxSubSectDepth);
}
else if (L"wx:pBdrGroup" == sName && !oReader.IsEmptyNode())
else if (L"pBdrGroup" == sName && !oReader.IsEmptyNode())
{
int nWxBdrGroupDepth = oReader.GetDepth();
CreateElements(oReader, nWxBdrGroupDepth);
}
else if (L"w:background" == sName)
else if (L"background" == sName)
{
m_oBackground = new OOX::Logic::CBackground(WritingElement::m_pMainDocument);
m_oBackground->fromXML(oReader);
}
else if (L"w:docParts" == sName && !oReader.IsEmptyNode())
else if (L"docParts" == sName && !oReader.IsEmptyNode())
{
WritingElement *pItem = new OOX::Logic::CDocParts(WritingElement::m_pMainDocument);
m_arrItems.push_back(pItem);
@ -375,8 +375,8 @@ namespace OOX
if ( !oReader.ReadNextNode() )
return;
std::wstring sName = oReader.GetName();
if ( L"w:document" == sName || L"w:wordDocument" == sName || L"w:glossaryDocument" == sName)
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"document" == sName || L"wordDocument" == sName || L"glossaryDocument" == sName)
{
fromXML(oReader);
}
@ -406,10 +406,10 @@ namespace OOX
void CDocument::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"w:conformance", m_oConformance )
WritingElement_ReadAttributes_Read_else_if ( oReader, L"xml:space", m_oSpace )
WritingElement_ReadAttributes_End( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"conformance", m_oConformance )
WritingElement_ReadAttributes_Read_else_if ( oReader, L"space", m_oSpace )
WritingElement_ReadAttributes_End_No_NS( oReader )
}
void CDocument::fromXML(XmlUtils::CXmlLiteReader& oReader)
{
@ -419,7 +419,7 @@ namespace OOX
return;
int nDocumentDepth = oReader.GetDepth();
std::wstring sName = oReader.GetName();
//std::wstring sName = oReader.GetName();
CreateElements(oReader, nDocumentDepth);
}

View File

@ -194,20 +194,20 @@ namespace OOX
while( oReader.ReadNextSiblingNode(nDepth) )
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
WritingElement *pItem = NULL;
if (L"w:bdo" == sName )
if (L"bdo" == sName )
pItem = new CBdo( document );
else if (L"w:bookmarkEnd" == sName )
else if (L"bookmarkEnd" == sName )
pItem = new CBookmarkEnd( document );
else if (L"w:bookmarkStart" == sName )
else if (L"bookmarkStart" == sName )
pItem = new CBookmarkStart( document );
else if (L"w:commentRangeEnd" == sName )
else if (L"commentRangeEnd" == sName )
pItem = new CCommentRangeEnd( document );
else if (L"w:commentRangeStart" == sName )
else if (L"commentRangeStart" == sName )
pItem = new CCommentRangeStart( document );
else if ( L"aml:annotation" == sName) //Bookmark
else if ( L"annotation" == sName) //Bookmark
{
nullable_string sType;
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
@ -238,55 +238,55 @@ namespace OOX
}
}
}
//else if (L"w:customXml" == sName )
//else if (L"customXml" == sName )
// pItem = new CCustomXml( document );
else if (L"w:customXmlDelRangeEnd" == sName )
else if (L"customXmlDelRangeEnd" == sName )
pItem = new CCustomXmlDelRangeEnd( document );
else if (L"w:customXmlDelRangeStart" == sName )
else if (L"customXmlDelRangeStart" == sName )
pItem = new CCustomXmlDelRangeStart( document );
else if (L"w:customXmlInsRangeEnd" == sName )
else if (L"customXmlInsRangeEnd" == sName )
pItem = new CCustomXmlInsRangeEnd( document );
else if (L"w:customXmlInsRangeStart" == sName )
else if (L"customXmlInsRangeStart" == sName )
pItem = new CCustomXmlInsRangeStart( document );
else if (L"w:customXmlMoveFromRangeEnd" == sName )
else if (L"customXmlMoveFromRangeEnd" == sName )
pItem = new CCustomXmlMoveFromRangeEnd( document );
else if (L"w:customXmlMoveFromRangeStart" == sName )
else if (L"customXmlMoveFromRangeStart" == sName )
pItem = new CCustomXmlMoveFromRangeStart( document );
else if (L"w:customXmlMoveToRangeEnd" == sName )
else if (L"customXmlMoveToRangeEnd" == sName )
pItem = new CCustomXmlMoveToRangeEnd( document );
else if (L"w:customXmlMoveToRangeStart" == sName )
else if (L"customXmlMoveToRangeStart" == sName )
pItem = new CCustomXmlMoveToRangeStart( document );
else if (L"w:del" == sName )
else if (L"del" == sName )
pItem = new CDel( document );
else if (L"w:dir" == sName )
else if (L"dir" == sName )
pItem = new CDir( document );
else if (L"w:fldSimple" == sName )
else if (L"fldSimple" == sName )
pItem = new CFldSimple( document );
else if (L"w:hyperlink" == sName ||L"w:hlink" == sName )
else if (L"hyperlink" == sName ||L"hlink" == sName )
pItem = new CHyperlink( document );
else if (L"w:ins" == sName )
else if (L"ins" == sName )
pItem = new CIns( document );
else if (L"w:moveFrom" == sName )
else if (L"moveFrom" == sName )
pItem = new CMoveFrom( document );
else if (L"w:moveFromRangeEnd" == sName )
else if (L"moveFromRangeEnd" == sName )
pItem = new CMoveFromRangeEnd( document );
else if (L"w:moveFromRangeStart" == sName )
else if (L"moveFromRangeStart" == sName )
pItem = new CMoveFromRangeStart( document );
else if (L"w:moveTo" == sName )
else if (L"moveTo" == sName )
pItem = new CMoveTo( document );
else if (L"w:moveToRangeEnd" == sName )
else if (L"moveToRangeEnd" == sName )
pItem = new CMoveToRangeEnd( document );
else if (L"w:moveToRangeStart" == sName )
else if (L"moveToRangeStart" == sName )
pItem = new CMoveToRangeStart( document );
else if (L"m:oMath" == sName )
else if (L"oMath" == sName )
pItem = new COMath( document );
else if (L"m:oMathPara" == sName )
else if (L"oMathPara" == sName )
pItem = new COMathPara( document );
else if (L"w:permEnd" == sName )
else if (L"permEnd" == sName )
pItem = new CPermEnd( document );
else if (L"w:permStart" == sName )
else if (L"permStart" == sName )
pItem = new CPermStart( document );
else if (L"w:pPr" == sName )
else if (L"pPr" == sName )
{// c копией .. для быстрого доступа/анализа
if (m_oParagraphProperty)
{
@ -304,27 +304,27 @@ namespace OOX
pItem = m_oParagraphProperty = new CParagraphProperty( document );
}
}
else if (L"w:proofErr" == sName )
else if (L"proofErr" == sName )
pItem = new CProofErr( document );
else if (L"w:r" == sName )
else if (L"r" == sName )
pItem = new CRun( document );
else if (L"w:sdt" == sName )
else if (L"sdt" == sName )
pItem = new CSdt( document );
else if (L"w:smartTag" == sName )
else if (L"smartTag" == sName )
pItem = new CSmartTag( document );
//else if (L"w:subDoc" == sName )
//else if (L"subDoc" == sName )
// pItem = new CSubDoc( document );
else if (L"w:sdtContent" == sName)
else if (L"sdtContent" == sName)
{
int nDepthChild = oReader.GetDepth();
fromXML(nDepthChild, oReader);
}
else if (L"wx:sect" == sName && !oReader.IsEmptyNode())
else if (L"sect" == sName && !oReader.IsEmptyNode())
{
int nWxSectDepth = oReader.GetDepth();
fromXML(nWxSectDepth, oReader);
}
else if (L"wx:sub-section" == sName && !oReader.IsEmptyNode())
else if (L"sub-section" == sName && !oReader.IsEmptyNode())
{
int nWxSubSectDepth = oReader.GetDepth();
fromXML(nWxSubSectDepth, oReader);
@ -372,17 +372,17 @@ namespace OOX
void CParagraph::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader,L"w:rsidDel", m_oRsidDel )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidP", m_oRsidP )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidR", m_oRsidR )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidRDefault", m_oRsidRDefault )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidRPr", m_oRsidRPr )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w14:paraId", m_oParaId )
WritingElement_ReadAttributes_Read_else_if( oReader,L"w14:textId", m_oTextId )
WritingElement_ReadAttributes_Read_if ( oReader,L"rsidDel", m_oRsidDel )
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidP", m_oRsidP )
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidR", m_oRsidR )
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidRDefault", m_oRsidRDefault )
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidRPr", m_oRsidRPr )
WritingElement_ReadAttributes_Read_else_if( oReader,L"paraId", m_oParaId )
WritingElement_ReadAttributes_Read_else_if( oReader,L"textId", m_oTextId )
WritingElement_ReadAttributes_End( oReader )
WritingElement_ReadAttributes_End_No_NS( oReader )
}
void CParagraph::AddRun(CRun *pRun)
{

View File

@ -98,8 +98,8 @@ namespace OOX
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring sName = oReader.GetName();
if ( L"w:pPr" == sName )
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"pPr" == sName )
m_pParPr->fromXML( oReader );
}
}
@ -151,12 +151,12 @@ namespace OOX
}
void CPPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"author", m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, L"date", m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, L"id", m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId )
WritingElement_ReadAttributes_End( oReader )
WritingElement_ReadAttributes_End_No_NS( oReader )
}
void CParagraphProperty::fromXML(XmlUtils::CXmlNode& oNode)
{//??? где используется ?
@ -225,53 +225,53 @@ namespace OOX
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"w:adjustRightInd" == sName )
if ( L"adjustRightInd" == sName )
m_oAdjustRightInd = oReader;
else if ( L"w:autoSpaceDE" == sName )
else if ( L"autoSpaceDE" == sName )
m_oAutoSpaceDE = oReader;
else if ( L"w:autoSpaceDN" == sName )
else if ( L"autoSpaceDN" == sName )
m_oAutoSpaceDN = oReader;
else if ( L"w:bidi" == sName )
else if ( L"bidi" == sName )
m_oBidi = oReader;
else if ( L"w:cnfStyle" == sName )
else if ( L"cnfStyle" == sName )
m_oCnfStyle = oReader;
else if ( L"w:contextualSpacing" == sName )
else if ( L"contextualSpacing" == sName )
m_oContextualSpacing = oReader;
else if ( L"w:divId" == sName )
else if ( L"divId" == sName )
m_oDivID = oReader;
else if ( L"w:framePr" == sName )
else if ( L"framePr" == sName )
m_oFramePr = oReader;
else if ( L"w:ind" == sName )
else if ( L"ind" == sName )
m_oInd = oReader;
else if ( L"w:jc" == sName )
else if ( L"jc" == sName )
m_oJc = oReader;
else if ( L"w:keepLines" == sName )
else if ( L"keepLines" == sName )
m_oKeepLines = oReader;
else if ( L"w:keepNext" == sName )
else if ( L"keepNext" == sName )
m_oKeepNext = oReader;
else if ( L"w:kinsoku" == sName )
else if ( L"kinsoku" == sName )
m_oKinsoku = oReader;
else if ( L"w:mirrorIndents" == sName )
else if ( L"mirrorIndents" == sName )
m_oMirrorIndents = oReader;
else if ( L"w:numPr" == sName || L"w:listPr" == sName)
else if ( L"numPr" == sName || L"listPr" == sName)
m_oNumPr = oReader;
else if ( L"w:outlineLvl" == sName )
else if ( L"outlineLvl" == sName )
m_oOutlineLvl = oReader;
else if ( L"w:overflowPunct" == sName )
else if ( L"overflowPunct" == sName )
m_oOverflowPunct = oReader;
else if ( L"w:pageBreakBefore" == sName )
else if ( L"pageBreakBefore" == sName )
m_oPageBreakBefore = oReader;
else if ( L"w:pBdr" == sName )
else if ( L"pBdr" == sName )
m_oPBdr = oReader;
else if ( !m_bPPrChange && L"w:pPrChange" == sName )
else if ( !m_bPPrChange && L"pPrChange" == sName )
m_oPPrChange = oReader;
else if ( L"w:pStyle" == sName )
else if ( L"pStyle" == sName )
m_oPStyle = oReader;
else if ( !m_bPPrChange && L"w:rPr" == sName )
else if ( !m_bPPrChange && L"rPr" == sName )
m_oRPr = oReader;
else if ( !m_bPPrChange && L"w:sectPr" == sName )
else if ( !m_bPPrChange && L"sectPr" == sName )
{
m_oSectPr = new CSectionProperty(document);
m_oSectPr->fromXML(oReader);
@ -293,31 +293,31 @@ namespace OOX
}
//------------------------------------------------------------------------------------
}
else if ( L"w:shd" == sName )
else if ( L"shd" == sName )
m_oShd = oReader;
else if ( L"w:snapToGrid" == sName )
else if ( L"snapToGrid" == sName )
m_oSnapToGrid = oReader;
else if ( L"w:spacing" == sName )
else if ( L"spacing" == sName )
m_oSpacing = oReader;
else if ( L"w:suppressAutoHyphens" == sName )
else if ( L"suppressAutoHyphens" == sName )
m_oSuppressAutoHyphens = oReader;
else if ( L"w:suppressLineNumbers" == sName )
else if ( L"suppressLineNumbers" == sName )
m_oSuppressLineNumbers = oReader;
else if ( L"w:suppressOverlap" == sName )
else if ( L"suppressOverlap" == sName )
m_oSuppressOverlap = oReader;
else if ( L"w:tabs" == sName )
else if ( L"tabs" == sName )
m_oTabs = oReader;
else if ( L"w:textAlignment" == sName )
else if ( L"textAlignment" == sName )
m_oTextAlignment = oReader;
else if ( L"w:textboxTightWrap" == sName )
else if ( L"textboxTightWrap" == sName )
m_oTextboxTightWrap = oReader;
else if ( L"w:textDirection" == sName )
else if ( L"textDirection" == sName )
m_oTextDirection = oReader;
else if ( L"w:topLinePunct" == sName )
else if ( L"topLinePunct" == sName )
m_oTopLinePunct = oReader;
else if ( L"w:widowControl" == sName )
else if ( L"widowControl" == sName )
m_oWidowControl = oReader;
else if ( L"w:wordWrap" == sName )
else if ( L"wordWrap" == sName )
m_oWordWrap = oReader;
}
}

View File

@ -215,36 +215,36 @@ namespace OOX
WritingElement* CRun::fromXMLElem(XmlUtils::CXmlLiteReader& oReader)
{
std::wstring sName = oReader.GetName();
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
WritingElement *pItem = NULL;
OOX::Document* document = WritingElement::m_pMainDocument;
if ( L"mc:AlternateContent" == sName )
if ( L"AlternateContent" == sName )
pItem = new CAlternateContent( document );
else if ( L"w:annotationRef" == sName )
else if ( L"annotationRef" == sName )
pItem = new CAnnotationRef( document );
else if ( L"w:br" == sName )
else if ( L"br" == sName )
pItem = new CBr( document );
else if ( L"w:commentReference" == sName )
else if ( L"commentReference" == sName )
pItem = new CCommentReference( document );
else if ( L"w:contentPart" == sName )
else if ( L"contentPart" == sName )
pItem = new CContentPart( document );
else if ( L"w:continuationSeparator" == sName )
else if ( L"continuationSeparator" == sName )
pItem = new CContinuationSeparator( document );
else if ( L"w:cr" == sName )
else if ( L"cr" == sName )
pItem = new CCr( document );
else if ( L"w:dayLong" == sName )
else if ( L"dayLong" == sName )
pItem = new CDayLong( document );
else if ( L"w:dayShort" == sName )
else if ( L"dayShort" == sName )
pItem = new CDayShort( document );
else if ( L"w:delInstrText" == sName )
else if ( L"delInstrText" == sName )
pItem = new CDelInstrText( document );
else if ( L"w:delText" == sName )
else if ( L"delText" == sName )
pItem = new CDelText( document );
else if ( L"w:drawing" == sName )
else if ( L"drawing" == sName )
pItem = new CDrawing( document );
else if ( L"w:endnote" == sName )
else if ( L"endnote" == sName )
{
CEndnoteReference *pEndRef = new CEndnoteReference(document);
CFtnEdn *pEndnote = new CFtnEdn( document );
@ -266,13 +266,13 @@ namespace OOX
}
pItem = pEndRef;
}
else if ( L"w:endnoteRef" == sName )
else if ( L"endnoteRef" == sName )
pItem = new CEndnoteRef( document );
else if ( L"w:endnoteReference" == sName )
else if ( L"endnoteReference" == sName )
pItem = new CEndnoteReference( document );
else if ( L"w:fldChar" == sName )
else if ( L"fldChar" == sName )
pItem = new CFldChar( document );
else if ( L"w:footnote" == sName )
else if ( L"footnote" == sName )
{
CFootnoteReference *pFootRef = new CFootnoteReference(document);
CFtnEdn *pFootnote = new CFtnEdn( document );
@ -292,29 +292,29 @@ namespace OOX
}
pItem = pFootRef;
}
else if ( L"w:footnoteRef" == sName )
else if ( L"footnoteRef" == sName )
pItem = new CFootnoteRef( document );
else if ( L"w:footnoteReference" == sName )
else if ( L"footnoteReference" == sName )
pItem = new CFootnoteReference( document );
else if ( L"w:instrText" == sName )
else if ( L"instrText" == sName )
pItem = new CInstrText( document );
else if ( L"w:lastRenderedPageBreak" == sName )
else if ( L"lastRenderedPageBreak" == sName )
pItem = new CLastRenderedPageBreak( document );
else if ( L"w:monthLong" == sName )
else if ( L"monthLong" == sName )
pItem = new CMonthLong( document );
else if ( L"w:monthShort" == sName )
else if ( L"monthShort" == sName )
pItem = new CMonthShort( document );
else if ( L"w:noBreakHyphen" == sName )
else if ( L"noBreakHyphen" == sName )
pItem = new CNoBreakHyphen( document );
else if ( L"w:object" == sName )
else if ( L"object" == sName )
pItem = new CObject( document );
else if ( L"w:pgNum" == sName )
else if ( L"pgNum" == sName )
pItem = new CPgNum( document );
else if ( L"w:pict" == sName )
else if ( L"pict" == sName )
pItem = new CPicture( document );
else if ( L"w:ptab" == sName )
else if ( L"ptab" == sName )
pItem = new CPTab( document );
else if ( L"w:rPr" == sName )
else if ( L"rPr" == sName )
{
if (m_oRunProperty)
{
@ -331,23 +331,23 @@ namespace OOX
}
return pItem;
}
else if ( L"w:ruby" == sName )
else if ( L"ruby" == sName )
pItem = new CRuby( document );
else if ( L"w:separator" == sName )
else if ( L"separator" == sName )
pItem = new CSeparator( document );
else if ( L"w:softHyphen" == sName )
else if ( L"softHyphen" == sName )
pItem = new CSoftHyphen( document );
else if ( L"w:sym" == sName )
else if ( L"sym" == sName )
pItem = new CSym( document );
else if ( L"w:t" == sName )
else if ( L"t" == sName )
{
fromXMLText(oReader);
}
else if ( L"w:tab" == sName )
else if ( L"tab" == sName )
pItem = new CTab( document );
else if ( L"w:yearLong" == sName )
else if ( L"yearLong" == sName )
pItem = new CYearLong( document );
else if ( L"aml:annotation" == sName) //Bookmark
else if ( L"annotation" == sName) //Bookmark
{
nullable_string sType;
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
@ -483,20 +483,20 @@ namespace OOX
if ( !oReader.MoveToFirstAttribute() )
return;
std::wstring wsName = oReader.GetName();
std::wstring wsName = XmlUtils::GetNameNoNS(oReader.GetName());
while( !wsName.empty() )
{
if ( L"w:rsidDel" == wsName )
if ( L"rsidDel" == wsName )
m_oRsidDel = oReader.GetText();
else if ( L"w:rsidR" == wsName )
else if ( L"rsidR" == wsName )
m_oRsidR = oReader.GetText();
else if ( L"w:rsidRPr" == wsName )
else if ( L"rsidRPr" == wsName )
m_oRsidRPr = oReader.GetText();
if ( !oReader.MoveToNextAttribute() )
break;
wsName = oReader.GetName();
wsName = XmlUtils::GetNameNoNS(oReader.GetName());
}
oReader.MoveToElement();

View File

@ -44,6 +44,7 @@
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<IncludePath>..\..\Common\3dParty\boost\build\win_32\include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
@ -90,6 +91,7 @@
<ItemGroup>
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp" />
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp" />
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\Unit.cpp" />
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
<ClCompile Include="Test.cpp" />
</ItemGroup>

View File

@ -21,5 +21,8 @@
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="Test.cpp" />
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\Unit.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -31,6 +31,7 @@
*/
#include <iostream>
#include <iomanip>
#include <boost/format.hpp>
#include "CryptTransform.h"
@ -52,7 +53,7 @@
#include "../../Common/3dParty/cryptopp/zdeflate.h"
#include "../../Common/DocxFormat/Source/Base/unicode_util.h"
#include "../../Common/DocxFormat/Source/Base/Unit.h"
#include "../../Common/DocxFormat/Source/Base/Base.h"
#include "../../DesktopEditor/common/File.h"
static const unsigned char encrVerifierHashInputBlockKey[8] = { 0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79 };
@ -899,8 +900,10 @@ bool ECMAWriteProtect::VerifyWrike()
wPasswordHash ^= (0x8000 | ('N' << 8) | 'K');
wPasswordHash ^= p.length();
std::string sPasswordHash = XmlUtils::ToString(wPasswordHash, "%4.4X");
std::stringstream sstream;
sstream << boost::format("%4.4X") % wPasswordHash;
std::string sPasswordHash = sstream.str();
return data.hashValue == sPasswordHash;
}
bool ECMAWriteProtect::Verify()