Commit 08399f16 authored by ElenaSubbotina's avatar ElenaSubbotina Committed by Alexander Trofimov

DocFormatReader - конвертация объекта автосодержание

parent ed5e68c9
...@@ -6,23 +6,25 @@ namespace DocFileFormat ...@@ -6,23 +6,25 @@ namespace DocFileFormat
CharacterPropertiesMapping::CharacterPropertiesMapping( XmlUtils::CXmlWriter* writer, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded) CharacterPropertiesMapping::CharacterPropertiesMapping( XmlUtils::CXmlWriter* writer, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded)
: PropertiesMapping( writer ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(true), _isRTL(false) : PropertiesMapping( writer ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(true), _isRTL(false)
{ {
this->_doc = doc; _doc = doc;
this->_rPr = new XMLTools::XMLElement<wchar_t>( _T( "w:rPr" ) ); _rPr = new XMLTools::XMLElement<wchar_t>( _T( "w:rPr" ) );
this->_revisionData = rev; _revisionData = rev;
this->_currentPapx = currentPapx; _currentPapx = currentPapx;
this->_styleChpx = styleChpx; _styleChpx = styleChpx;
this->_currentIstd = USHRT_MAX; _currentIstd = USHRT_MAX;
_webHidden = false;
} }
CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::XMLElement<wchar_t>* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded ) CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::XMLElement<wchar_t>* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded )
: PropertiesMapping( NULL ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(false), _isRTL(false) : PropertiesMapping( NULL ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(false), _isRTL(false)
{ {
this->_doc = doc; _doc = doc;
this->_rPr = rPr; _rPr = rPr;
this->_revisionData = rev; _revisionData = rev;
this->_currentPapx = currentPapx; _currentPapx = currentPapx;
this->_styleChpx = styleChpx; _styleChpx = styleChpx;
this->_currentIstd = USHRT_MAX; _currentIstd = USHRT_MAX;
_webHidden = false;
} }
CharacterPropertiesMapping::~CharacterPropertiesMapping() CharacterPropertiesMapping::~CharacterPropertiesMapping()
...@@ -89,6 +91,12 @@ namespace DocFileFormat ...@@ -89,6 +91,12 @@ namespace DocFileFormat
XMLTools::XMLAttribute<wchar_t> * colorVal = new XMLTools::XMLAttribute<wchar_t>( _T( "w:val" ) ); XMLTools::XMLAttribute<wchar_t> * colorVal = new XMLTools::XMLAttribute<wchar_t>( _T( "w:val" ) );
XMLTools::XMLElement<wchar_t> * lang = new XMLTools::XMLElement<wchar_t> ( _T( "w:lang" ) ); XMLTools::XMLElement<wchar_t> * lang = new XMLTools::XMLElement<wchar_t> ( _T( "w:lang" ) );
if (_webHidden)
{
XMLTools::XMLElement<wchar_t> * webHidden = new XMLTools::XMLElement<wchar_t> ( _T( "w:webHidden" ) );
parent->AppendChild( *webHidden );
RELEASEOBJECT( webHidden );
}
std::list<SinglePropertyModifier>::iterator end = sprms->end(); std::list<SinglePropertyModifier>::iterator end = sprms->end();
for (std::list<SinglePropertyModifier>::iterator iter = sprms->begin(); iter != end; ++iter) for (std::list<SinglePropertyModifier>::iterator iter = sprms->begin(); iter != end; ++iter)
{ {
...@@ -96,7 +104,7 @@ namespace DocFileFormat ...@@ -96,7 +104,7 @@ namespace DocFileFormat
{ {
case 0x4A30 : // style id case 0x4A30 : // style id
{ {
if (_isRunStyleNeeded) if (_isRunStyleNeeded && !_webHidden)
{ {
_currentIstd = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize ); _currentIstd = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
if (_currentIstd < this->_doc->Styles->Styles->size()) if (_currentIstd < this->_doc->Styles->Styles->size())
......
...@@ -29,7 +29,8 @@ namespace DocFileFormat ...@@ -29,7 +29,8 @@ namespace DocFileFormat
void Apply( IVisitable* chpx ); void Apply( IVisitable* chpx );
bool CheckIsSymbolFont(); bool CheckIsSymbolFont();
bool _isRTL; bool _webHidden;
bool _isRTL;
private: private:
void convertSprms( list<SinglePropertyModifier>* sprms, XMLTools::XMLElement<wchar_t>* parent ); void convertSprms( list<SinglePropertyModifier>* sprms, XMLTools::XMLElement<wchar_t>* parent );
list<CharacterPropertyExceptions*> buildHierarchy( const StyleSheet* styleSheet, unsigned short istdStart ); list<CharacterPropertyExceptions*> buildHierarchy( const StyleSheet* styleSheet, unsigned short istdStart );
...@@ -42,17 +43,17 @@ namespace DocFileFormat ...@@ -42,17 +43,17 @@ namespace DocFileFormat
virtual void appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique ); virtual void appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique );
private: private:
XmlUtils::CXmlWriter pRunPr;
WordDocument* _doc; WordDocument* _doc;
XMLTools::XMLElement<wchar_t>* _rPr; XMLTools::XMLElement<wchar_t>* _rPr;
unsigned short _currentIstd; unsigned short _currentIstd;
RevisionData* _revisionData; RevisionData* _revisionData;
bool _styleChpx; bool _styleChpx;
XmlUtils::CXmlWriter pRunPr;
ParagraphPropertyExceptions* _currentPapx; ParagraphPropertyExceptions* _currentPapx;
list<CharacterPropertyExceptions*> _hierarchy; list<CharacterPropertyExceptions*> _hierarchy;
bool _isRunStyleNeeded; bool _isRunStyleNeeded;
bool _isOwnRPr; bool _isOwnRPr;
......
...@@ -99,9 +99,11 @@ namespace DocFileFormat ...@@ -99,9 +99,11 @@ namespace DocFileFormat
WordDocument* m_document; WordDocument* m_document;
ConversionContext* m_context; ConversionContext* m_context;
IMapping* _caller;
ParagraphPropertyExceptions* _lastValidPapx; ParagraphPropertyExceptions* _lastValidPapx;
SectionPropertyExceptions* _lastValidSepx; SectionPropertyExceptions* _lastValidSepx;
int _skipRuns; int _skipRuns;
int _sectionNr; int _sectionNr;
int _footnoteNr; int _footnoteNr;
...@@ -109,8 +111,8 @@ namespace DocFileFormat ...@@ -109,8 +111,8 @@ namespace DocFileFormat
int _commentNr; int _commentNr;
int _isSectionPageBreak; //0 - not set, 1 -page break, 2 - continues int _isSectionPageBreak; //0 - not set, 1 -page break, 2 - continues
bool _writeInstrText; bool _writeInstrText;
bool _writeWebHidden;
unsigned int _fldCharCounter; unsigned int _fldCharCounter;
IMapping* _caller;
std::wstring _writeAfterRun; std::wstring _writeAfterRun;
}; };
} }
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