mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-11 02:16:02 +08:00
Compare commits
19 Commits
core-windo
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| bab37e1634 | |||
| 06dea5685a | |||
| 105a23d5bc | |||
| ef76c80014 | |||
| bb6e95ce20 | |||
| 69d9823847 | |||
| fb10c56bd3 | |||
| 4f24ed375e | |||
| 036c3b3740 | |||
| dddaeb3eeb | |||
| f75b0704a7 | |||
| baefae258b | |||
| 4f46ac6e69 | |||
| f634d1cfe5 | |||
| a810253b22 | |||
| 05e42b1908 | |||
| 4ea7f5f9ed | |||
| ef69fc4b34 | |||
| f925e5cae9 |
@ -125,7 +125,7 @@ namespace DocFormatUtils
|
||||
|
||||
if(bDeleteNoUnicode)
|
||||
{
|
||||
for(size_t pos = 0; pos != data.size(); ++pos)
|
||||
for(size_t pos = 0; pos < data.size(); ++pos)
|
||||
{
|
||||
switch(data[pos])
|
||||
{
|
||||
@ -157,7 +157,7 @@ namespace DocFormatUtils
|
||||
}
|
||||
else
|
||||
{
|
||||
for(size_t pos = 0; pos != data.size(); ++pos)
|
||||
for(size_t pos = 0; pos < data.size(); ++pos)
|
||||
{
|
||||
switch(data[pos])
|
||||
{
|
||||
@ -166,6 +166,8 @@ namespace DocFormatUtils
|
||||
case '\'': buffer.append(L"'"); break;
|
||||
case '<': buffer.append(L"<"); break;
|
||||
case '>': buffer.append(L">"); break;
|
||||
case '\0':
|
||||
return buffer;
|
||||
default: buffer.append(&data[pos], 1); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,11 +57,11 @@ namespace XMLTools
|
||||
class XMLAttribute
|
||||
========================================================================================================*/
|
||||
|
||||
template <class T> class XMLAttribute
|
||||
class XMLAttribute
|
||||
{
|
||||
private:
|
||||
std::basic_string<T> m_Name;
|
||||
std::basic_string<T> m_Value;
|
||||
std::wstring m_Name;
|
||||
std::wstring m_Value;
|
||||
|
||||
public:
|
||||
|
||||
@ -69,56 +69,40 @@ namespace XMLTools
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
XMLAttribute( const T* name ) : m_Name(name)
|
||||
XMLAttribute( const std::wstring & name ) : m_Name(name)
|
||||
{
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
XMLAttribute( const T* name, const T* value ) : m_Name(name), m_Value(value)
|
||||
XMLAttribute( const std::wstring & name, const std::wstring & value ) : m_Name(name), m_Value(value)
|
||||
{
|
||||
}
|
||||
~XMLAttribute()
|
||||
{
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
~XMLAttribute()
|
||||
void SetValue( const std::wstring & value )
|
||||
{
|
||||
m_Value = std::wstring( value );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void SetValue( const T* value )
|
||||
{
|
||||
m_Value = std::basic_string<T>( value );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::basic_string<T> GetName() const
|
||||
std::wstring GetName() const
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::basic_string<T> GetValue() const
|
||||
std::wstring GetValue() const
|
||||
{
|
||||
return m_Value;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::basic_string<T> GetXMLString()
|
||||
std::wstring GetXMLString()
|
||||
{
|
||||
std::basic_string<T> xmlString( L"" );
|
||||
std::wstring xmlString( L"" );
|
||||
|
||||
xmlString += m_Name;
|
||||
xmlString += std::basic_string<T>( L"=\"" );
|
||||
xmlString += std::wstring( L"=\"" );
|
||||
xmlString += m_Value;
|
||||
xmlString += std::basic_string<T>( L"\"" );
|
||||
xmlString += std::wstring( L"\"" );
|
||||
|
||||
return xmlString;
|
||||
}
|
||||
@ -128,86 +112,63 @@ namespace XMLTools
|
||||
class XMLElement
|
||||
========================================================================================================*/
|
||||
|
||||
template <class T> class XMLElement
|
||||
class XMLElement
|
||||
{
|
||||
typedef std::pair< std::basic_string<T>, std::basic_string<T> > AttributeValuePair;
|
||||
typedef std::pair< std::wstring, std::wstring> AttributeValuePair;
|
||||
|
||||
private:
|
||||
std::basic_string<T> m_Name;
|
||||
std::basic_string<T> m_ElementText;
|
||||
std::map<std::basic_string<T>, std::basic_string<T>> m_AttributeMap;
|
||||
std::map<std::basic_string<T>, int> m_ChildMap; //for uniq
|
||||
std::list<XMLElement<T>> m_Elements;
|
||||
std::wstring m_Name;
|
||||
std::wstring m_ElementText;
|
||||
std::map<std::wstring, std::wstring> m_AttributeMap;
|
||||
std::map<std::wstring, int> m_ChildMap; //for uniq
|
||||
std::list<XMLElement> m_Elements;
|
||||
|
||||
typedef typename std::list<XMLElement<T>>::iterator ElementsIterator;
|
||||
typedef typename std::list<XMLElement<T>>::const_iterator ElementsIteratorConst;
|
||||
typedef std::list<XMLElement>::iterator ElementsIterator;
|
||||
typedef std::list<XMLElement>::const_iterator ElementsIteratorConst;
|
||||
|
||||
typedef typename std::map<std::basic_string<T>, std::basic_string<T>>::iterator AttMapIterator;
|
||||
typedef typename std::map<std::basic_string<T>, std::basic_string<T>>::const_iterator AttMapIteratorConst;
|
||||
typedef std::map<std::wstring, std::wstring>::iterator AttMapIterator;
|
||||
typedef std::map<std::wstring, std::wstring>::const_iterator AttMapIteratorConst;
|
||||
|
||||
public:
|
||||
|
||||
XMLElement()
|
||||
XMLElement() {}
|
||||
|
||||
XMLElement( const std::wstring & name ) : m_Name(name)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
XMLElement( const T* name ) : m_Name(name)
|
||||
XMLElement( const std::wstring & prefix, const std::wstring & localName ) :
|
||||
m_Name( std::wstring( prefix ) + std::wstring( L":" ) + std::wstring( localName ) ), m_ElementText( L"" )
|
||||
{
|
||||
|
||||
}
|
||||
~XMLElement() {}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
XMLElement( const T* prefix, const T* localName ) : m_Name( std::basic_string<T>( prefix ) + std::basic_string<T>( L":" ) + std::basic_string<T>( localName ) ), m_ElementText( L"" )
|
||||
void AppendText( const std::wstring & text )
|
||||
{
|
||||
|
||||
m_ElementText = std::wstring( text );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
~XMLElement()
|
||||
void AppendTextSymbol( const wchar_t symbol )
|
||||
{
|
||||
|
||||
m_ElementText += std::wstring( &symbol );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void AppendText( const T* text )
|
||||
{
|
||||
m_ElementText = std::basic_string<T>( text );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void AppendTextSymbol( const T symbol )
|
||||
{
|
||||
m_ElementText += std::basic_string<T>( &symbol );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void AppendAttribute( const XMLAttribute<T>& attribute )
|
||||
void AppendAttribute( const XMLAttribute& attribute )
|
||||
{
|
||||
AttributeValuePair p( attribute.GetName(), attribute.GetValue() );
|
||||
|
||||
m_AttributeMap.insert( p );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void AppendAttribute( const T* name, const T* value )
|
||||
void AppendAttribute( const std::wstring & name, const std::wstring & value )
|
||||
{
|
||||
AttributeValuePair p( std::basic_string<T>( const_cast<T*>( name ) ), std::basic_string<T>( const_cast<T*>( value ) ) );
|
||||
AttributeValuePair p( name , value );
|
||||
|
||||
m_AttributeMap.insert( p );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void AppendChild( const XMLElement<T>& element, bool uniq = false)
|
||||
void AppendChild( const XMLElement& element, bool uniq = false)
|
||||
{
|
||||
if (m_ChildMap.find(element.GetName()) != m_ChildMap.end())
|
||||
{
|
||||
@ -215,21 +176,17 @@ namespace XMLTools
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::basic_string<T>, int>(element.GetName(), 0));
|
||||
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::wstring, int>(element.GetName(), 0));
|
||||
}
|
||||
m_Elements.push_back( element );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void RemoveChild( const XMLElement<T>& element )
|
||||
void RemoveChild( const XMLElement& element )
|
||||
{
|
||||
m_Elements.remove( element );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool FindChild( const XMLElement<T>& element )
|
||||
bool FindChild( const XMLElement& element )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
@ -246,15 +203,13 @@ namespace XMLTools
|
||||
return result;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool FindChildByName( const T* elementName ) const
|
||||
bool FindChildByName( const std::wstring & elementName ) const
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
for ( ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( iter->m_Name == std::basic_string<T>( elementName ) )
|
||||
if ( iter->m_Name == std::wstring( elementName ) )
|
||||
{
|
||||
result = true;
|
||||
|
||||
@ -265,9 +220,7 @@ namespace XMLTools
|
||||
return result;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool RemoveChildByName( const std::basic_string<T>& elementName )
|
||||
bool RemoveChildByName( const std::wstring& elementName )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
@ -286,9 +239,7 @@ namespace XMLTools
|
||||
return result;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool operator == ( const XMLElement<T>& element ) const
|
||||
bool operator == ( const XMLElement& element ) const
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
@ -319,7 +270,7 @@ namespace XMLTools
|
||||
}
|
||||
else
|
||||
{
|
||||
ElementsIteratorConst thisIter = m_Elements.begin();
|
||||
ElementsIteratorConst thisIter = m_Elements.begin();
|
||||
ElementsIteratorConst elementIter = element.m_Elements.begin();
|
||||
|
||||
for ( ; thisIter != m_Elements.end(); thisIter++, elementIter++ )
|
||||
@ -336,34 +287,34 @@ namespace XMLTools
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::basic_string<T> GetName() const
|
||||
std::wstring GetName() const
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::basic_string<T> GetXMLString()
|
||||
std::wstring GetXMLString()
|
||||
{
|
||||
std::basic_string<T> xmlString( L"");
|
||||
std::wstring xmlString( L"");
|
||||
|
||||
bool bIsNameExists = ( m_Name != std::basic_string<T>( L"") );
|
||||
bool bIsTextExists = ( m_ElementText != std::basic_string<T>( L"") );
|
||||
bool bIsNameExists = ( m_Name != std::wstring( L"") );
|
||||
bool bIsTextExists = ( m_ElementText != std::wstring( L"") );
|
||||
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::basic_string<T>( L"<" ) + m_Name;
|
||||
xmlString += std::wstring( L"<" ) + m_Name;
|
||||
}
|
||||
|
||||
if ( ( bIsNameExists ) && ( m_AttributeMap.size() > 0 ) )
|
||||
{
|
||||
for ( AttMapIterator iter = m_AttributeMap.begin(); iter != m_AttributeMap.end(); iter++ )
|
||||
{
|
||||
xmlString += std::basic_string<T>( L" " );
|
||||
xmlString += std::wstring( L" " );
|
||||
xmlString += iter->first;
|
||||
xmlString += std::basic_string<T>( L"=\"" );
|
||||
xmlString += std::wstring( L"=\"" );
|
||||
xmlString += iter->second;
|
||||
xmlString += std::basic_string<T>( L"\"" );
|
||||
xmlString += std::wstring( L"\"" );
|
||||
}
|
||||
}
|
||||
|
||||
@ -371,7 +322,7 @@ namespace XMLTools
|
||||
{
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::basic_string<T>( L">" );
|
||||
xmlString += std::wstring( L">" );
|
||||
}
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
@ -386,16 +337,16 @@ namespace XMLTools
|
||||
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::basic_string<T>( L"</" );
|
||||
xmlString += std::wstring( L"</" );
|
||||
xmlString += m_Name;
|
||||
xmlString += std::basic_string<T>( L">" );
|
||||
xmlString += std::wstring( L">" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::basic_string<T>( L"/>" );
|
||||
xmlString += std::wstring( L"/>" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ namespace DocFileFormat
|
||||
: PropertiesMapping( writer ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(true), _isRTL(false)
|
||||
{
|
||||
_doc = doc;
|
||||
_rPr = new XMLTools::XMLElement<wchar_t>( _T( "w:rPr" ) );
|
||||
_rPr = new XMLTools::XMLElement( _T( "w:rPr" ) );
|
||||
_revisionData = rev;
|
||||
_currentPapx = currentPapx;
|
||||
_styleChpx = styleChpx;
|
||||
@ -46,7 +46,7 @@ namespace DocFileFormat
|
||||
_webHidden = false;
|
||||
}
|
||||
|
||||
CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::XMLElement<wchar_t>* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded )
|
||||
CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::XMLElement* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded )
|
||||
: PropertiesMapping( NULL ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(false), _isRTL(false)
|
||||
{
|
||||
_doc = doc;
|
||||
@ -77,7 +77,7 @@ namespace DocFileFormat
|
||||
// apend revision changes
|
||||
if (_revisionData->Type == Changed)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> rPrChange( _T( "w:rPrChange" ) );
|
||||
XMLTools::XMLElement rPrChange( _T( "w:rPrChange" ) );
|
||||
|
||||
//todooo date - _revisionData->Dttm.Convert( new DateMapping( rPrChange ) );
|
||||
|
||||
@ -85,7 +85,7 @@ namespace DocFileFormat
|
||||
|
||||
if (author_str)
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> author( _T( "w:author" ), FormatUtils::XmlEncode(*author_str).c_str());
|
||||
XMLTools::XMLAttribute author( _T( "w:author" ), FormatUtils::XmlEncode(*author_str));
|
||||
rPrChange.AppendAttribute( author );
|
||||
}
|
||||
|
||||
@ -98,7 +98,7 @@ namespace DocFileFormat
|
||||
//write properties
|
||||
if ( ( m_pXmlWriter != NULL ) && ( ( _rPr->GetChildCount() > 0 ) || ( _rPr->GetAttributeCount() > 0 ) ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _rPr->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( _rPr->GetXMLString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,16 +116,16 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void CharacterPropertiesMapping::convertSprms( std::list<SinglePropertyModifier>* sprms, XMLTools::XMLElement<wchar_t>* parent )
|
||||
void CharacterPropertiesMapping::convertSprms( std::list<SinglePropertyModifier>* sprms, XMLTools::XMLElement* parent )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> * rFonts = new XMLTools::XMLElement<wchar_t> ( _T( "w:rFonts" ) );
|
||||
XMLTools::XMLElement<wchar_t> * color = new XMLTools::XMLElement<wchar_t> ( _T( "w:color" ) );
|
||||
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 * rFonts = new XMLTools::XMLElement ( _T( "w:rFonts" ) );
|
||||
XMLTools::XMLElement * color = new XMLTools::XMLElement ( _T( "w:color" ) );
|
||||
XMLTools::XMLAttribute * colorVal = new XMLTools::XMLAttribute ( _T( "w:val" ) );
|
||||
XMLTools::XMLElement * lang = new XMLTools::XMLElement ( _T( "w:lang" ) );
|
||||
|
||||
if (_webHidden)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> * webHidden = new XMLTools::XMLElement<wchar_t> ( _T( "w:webHidden" ) );
|
||||
XMLTools::XMLElement * webHidden = new XMLTools::XMLElement ( _T( "w:webHidden" ) );
|
||||
parent->AppendChild( *webHidden );
|
||||
RELEASEOBJECT( webHidden );
|
||||
}
|
||||
@ -144,7 +144,7 @@ namespace DocFileFormat
|
||||
_currentIstd = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
if (_currentIstd < _doc->Styles->Styles->size())
|
||||
{
|
||||
appendValueElement( parent, _T( "rStyle" ), StyleSheetMapping::MakeStyleId( _doc->Styles->Styles->at( _currentIstd ) ).c_str(), true );
|
||||
appendValueElement( parent, _T( "rStyle" ), StyleSheetMapping::MakeStyleId( _doc->Styles->Styles->at( _currentIstd ) ), true );
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -232,7 +232,7 @@ namespace DocFileFormat
|
||||
|
||||
case sprmOldCIss:
|
||||
case sprmCIss:
|
||||
appendValueElement( parent, _T( "vertAlign" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ).c_str(), true );
|
||||
appendValueElement( parent, _T( "vertAlign" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
break;
|
||||
|
||||
case sprmCRgLid0_80:
|
||||
@ -274,7 +274,7 @@ namespace DocFileFormat
|
||||
case sprmCBrc80:
|
||||
case sprmCBrc:
|
||||
{ //borders
|
||||
XMLTools::XMLElement<wchar_t> bdr( _T( "w:bdr" ) );
|
||||
XMLTools::XMLElement bdr( _T( "w:bdr" ) );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &bdr );
|
||||
parent->AppendChild( bdr );
|
||||
@ -292,7 +292,7 @@ namespace DocFileFormat
|
||||
case sprmCIco:
|
||||
case sprmCIcoBi:
|
||||
{//color
|
||||
colorVal->SetValue( FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorIdentifier[0][0], 17, 12 ).c_str() );
|
||||
colorVal->SetValue( FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorIdentifier[0][0], 17, 12 ));
|
||||
}break;
|
||||
|
||||
case sprmCCv:
|
||||
@ -300,25 +300,22 @@ namespace DocFileFormat
|
||||
std::wstringstream sstream;
|
||||
|
||||
sstream << boost::wformat(L"%02x%02x%02x") % iter->Arguments[0] % /*G*/iter->Arguments[1] % /*B*/iter->Arguments[2];
|
||||
colorVal->SetValue(sstream.str().c_str());
|
||||
//CString rgbColor;
|
||||
//rgbColor.Format( _T( "%02x%02x%02x" ), /*R*/iter->Arguments[0], /*G*/iter->Arguments[1], /*B*/iter->Arguments[2] );
|
||||
//colorVal->SetValue( rgbColor.GetString() );
|
||||
colorVal->SetValue(sstream.str());
|
||||
}break;
|
||||
|
||||
case sprmCOldHighlight:
|
||||
{
|
||||
appendValueElement( parent, _T( "highlight" ), FormatUtils::MapValueToWideString( iter->Arguments[1], &Global::ColorIdentifier[0][0], 17, 12 ).c_str(), true );
|
||||
appendValueElement( parent, _T( "highlight" ), FormatUtils::MapValueToWideString( iter->Arguments[1], &Global::ColorIdentifier[0][0], 17, 12 ), true );
|
||||
}break;
|
||||
case sprmCHighlight:
|
||||
{
|
||||
appendValueElement( parent, _T( "highlight" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorIdentifier[0][0], 17, 12 ).c_str(), true );
|
||||
appendValueElement( parent, _T( "highlight" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorIdentifier[0][0], 17, 12 ), true );
|
||||
}break;
|
||||
|
||||
case sprmOldCDxaSpace:
|
||||
case sprmCDxaSpace:
|
||||
{
|
||||
appendValueElement( parent, _T( "spacing" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( parent, _T( "spacing" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCFtcBi :
|
||||
@ -335,20 +332,20 @@ namespace DocFileFormat
|
||||
case sprmCHpsBi :
|
||||
{
|
||||
appendValueElement( parent, _T( "szCs" ),
|
||||
FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}
|
||||
break;
|
||||
// Font Size in points (2~3276) default 20-half-points
|
||||
case sprmOldCHps :
|
||||
{
|
||||
appendValueElement (parent, _T( "sz" ),
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUChar (iter->Arguments, 0, iter->argumentsSize) ).c_str(),
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUChar (iter->Arguments, 0, iter->argumentsSize) ),
|
||||
true );
|
||||
}break;
|
||||
case sprmCHps :
|
||||
{
|
||||
appendValueElement (parent, _T( "sz" ),
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUInt16 (iter->Arguments, 0, iter->argumentsSize) ).c_str(), true );
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUInt16 (iter->Arguments, 0, iter->argumentsSize) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCMajority :
|
||||
@ -369,7 +366,7 @@ namespace DocFileFormat
|
||||
case sprmOldCHpsKern:
|
||||
case sprmCHpsKern:
|
||||
{
|
||||
appendValueElement( parent, _T( "kern" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( parent, _T( "kern" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmOldCFtc:
|
||||
@ -379,10 +376,10 @@ namespace DocFileFormat
|
||||
|
||||
if( nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* ascii = new XMLTools::XMLAttribute<wchar_t>( _T( "w:ascii" ) );
|
||||
XMLTools::XMLAttribute* ascii = new XMLTools::XMLAttribute( _T( "w:ascii" ) );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_sAsciiFont = ffn->xszFtn;
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sAsciiFont).c_str() );
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sAsciiFont, true));
|
||||
rFonts->AppendAttribute( *ascii );
|
||||
RELEASEOBJECT( ascii );
|
||||
}
|
||||
@ -393,10 +390,10 @@ namespace DocFileFormat
|
||||
int nIndex = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
if( nIndex >= 0 && nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* eastAsia = new XMLTools::XMLAttribute<wchar_t>( _T( "w:eastAsia" ) );
|
||||
XMLTools::XMLAttribute* eastAsia = new XMLTools::XMLAttribute( _T( "w:eastAsia" ) );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_sEastAsiaFont = ffn->xszFtn;
|
||||
eastAsia->SetValue( FormatUtils::XmlEncode(m_sEastAsiaFont).c_str() );
|
||||
eastAsia->SetValue( FormatUtils::XmlEncode(m_sEastAsiaFont));
|
||||
rFonts->AppendAttribute( *eastAsia );
|
||||
RELEASEOBJECT( eastAsia );
|
||||
}
|
||||
@ -408,10 +405,10 @@ namespace DocFileFormat
|
||||
int nIndex = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
if( nIndex>=0 && nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* ansi = new XMLTools::XMLAttribute<wchar_t>( _T( "w:hAnsi" ) );
|
||||
XMLTools::XMLAttribute* ansi = new XMLTools::XMLAttribute( _T( "w:hAnsi" ) );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_shAnsiFont = ffn->xszFtn;
|
||||
ansi->SetValue( FormatUtils::XmlEncode(m_shAnsiFont).c_str() );
|
||||
ansi->SetValue( FormatUtils::XmlEncode(m_shAnsiFont));
|
||||
rFonts->AppendAttribute( *ansi );
|
||||
RELEASEOBJECT( ansi );
|
||||
}
|
||||
@ -420,18 +417,18 @@ namespace DocFileFormat
|
||||
case sprmOldCKul:
|
||||
case sprmCKul:
|
||||
{ //Underlining
|
||||
appendValueElement( parent, _T( "u" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::UnderlineCode[0][0], 56, 16 ).c_str(), true );
|
||||
appendValueElement( parent, _T( "u" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::UnderlineCode[0][0], 56, 16 ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmCCharScale:
|
||||
{ //char width
|
||||
appendValueElement( parent, _T( "w" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( parent, _T( "w" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCSfxText:
|
||||
{ //animation
|
||||
appendValueElement( parent, _T( "effect" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::TextAnimation[0][0], 7, 16 ).c_str(), true );
|
||||
appendValueElement( parent, _T( "effect" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::TextAnimation[0][0], 7, 16 ), true );
|
||||
}break;
|
||||
|
||||
case sprmCIdctHint:
|
||||
@ -485,8 +482,8 @@ namespace DocFileFormat
|
||||
|
||||
if (!m_sDefaultFont.empty() && m_sAsciiFont.empty() && m_sEastAsiaFont.empty() && m_shAnsiFont.empty())
|
||||
{//????
|
||||
XMLTools::XMLAttribute<wchar_t>* ascii = new XMLTools::XMLAttribute<wchar_t>( _T( "w:ascii" ) );
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sDefaultFont).c_str() );
|
||||
XMLTools::XMLAttribute* ascii = new XMLTools::XMLAttribute( _T( "w:ascii" ) );
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sDefaultFont));
|
||||
//rFonts->AppendAttribute( *ascii );
|
||||
RELEASEOBJECT( ascii );
|
||||
}
|
||||
@ -520,14 +517,14 @@ namespace DocFileFormat
|
||||
|
||||
/// CHPX flags are special flags because the can be 0,1,128 and 129,
|
||||
/// so this method overrides the appendFlagElement method.
|
||||
void CharacterPropertiesMapping::appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique )
|
||||
void CharacterPropertiesMapping::appendFlagElement( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique )
|
||||
{
|
||||
unsigned char flag = sprm.Arguments[0];
|
||||
|
||||
if( flag != 128 )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* ele = new XMLTools::XMLElement<wchar_t>( _T( "w" ), elementName );
|
||||
XMLTools::XMLAttribute<wchar_t>* val = new XMLTools::XMLAttribute<wchar_t>( _T( "w:val" ) );
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( _T( "w" ), elementName );
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( _T( "w:val" ) );
|
||||
|
||||
if ( unique )
|
||||
{
|
||||
|
||||
@ -55,7 +55,7 @@ namespace DocFileFormat
|
||||
{
|
||||
public:
|
||||
CharacterPropertiesMapping( XMLTools::CStringXmlWriter* writer, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded = true );
|
||||
CharacterPropertiesMapping( XMLTools::XMLElement<wchar_t>* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded = true );
|
||||
CharacterPropertiesMapping( XMLTools::XMLElement* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded = true );
|
||||
virtual ~CharacterPropertiesMapping();
|
||||
void Apply( IVisitable* chpx );
|
||||
bool CheckIsSymbolFont();
|
||||
@ -63,7 +63,7 @@ namespace DocFileFormat
|
||||
bool _webHidden;
|
||||
bool _isRTL;
|
||||
private:
|
||||
void convertSprms( std::list<SinglePropertyModifier>* sprms, XMLTools::XMLElement<wchar_t>* parent );
|
||||
void convertSprms( std::list<SinglePropertyModifier>* sprms, XMLTools::XMLElement* parent );
|
||||
std::list<CharacterPropertyExceptions*> buildHierarchy( const StyleSheet* styleSheet, unsigned short istdStart );
|
||||
bool applyToggleHierachy( const SinglePropertyModifier& sprm );
|
||||
bool toogleValue( bool currentValue, unsigned char toggle );
|
||||
@ -71,13 +71,13 @@ namespace DocFileFormat
|
||||
protected:
|
||||
/// CHPX flags are special flags because the can be 0,1,128 and 129,
|
||||
/// so this method overrides the appendFlagElement method.
|
||||
virtual void appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique );
|
||||
virtual void appendFlagElement( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique );
|
||||
|
||||
private:
|
||||
XMLTools::CStringXmlWriter pRunPr;
|
||||
|
||||
WordDocument* _doc;
|
||||
XMLTools::XMLElement<wchar_t>* _rPr;
|
||||
XMLTools::XMLElement* _rPr;
|
||||
unsigned short _currentIstd;
|
||||
RevisionData* _revisionData;
|
||||
bool _styleChpx;
|
||||
|
||||
@ -73,10 +73,10 @@ namespace DocFileFormat
|
||||
AnnotationReferenceDescriptor* atrdPre10 = static_cast<AnnotationReferenceDescriptor*>(m_document->AnnotationsReferencePlex->Elements[index]);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:comment" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( index ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( index ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:author" ),
|
||||
FormatUtils::XmlEncode(m_document->AnnotationOwners->at( atrdPre10->GetAuthorIndex() ) ).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:initials" ), atrdPre10->GetUserInitials().c_str() );
|
||||
FormatUtils::XmlEncode(m_document->AnnotationOwners->at( atrdPre10->GetAuthorIndex() ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:initials" ), atrdPre10->GetUserInitials());
|
||||
|
||||
//!!!TODO!!!
|
||||
/*//ATRDpost10 is optional and not saved in all files
|
||||
|
||||
@ -346,7 +346,7 @@ namespace DocFileFormat
|
||||
{
|
||||
std::wstring id = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), _T("%08x"));
|
||||
m_context->AddRsid(id);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidP"), id.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidP"), id);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -380,7 +380,7 @@ namespace DocFileFormat
|
||||
WideString* author = dynamic_cast<WideString*>(m_document->RevisionAuthorTable->operator[](rev.Isbt));
|
||||
//if it's a inserted run
|
||||
m_pXmlWriter->WriteNodeBegin(_T("w:ins"), true);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:author"), FormatUtils::XmlEncode(*author).c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:author"), FormatUtils::XmlEncode(*author));
|
||||
m_pXmlWriter->WriteNodeEnd(_T(""), true, false);
|
||||
//rev.Dttm.Convert(new DateMapping(m_pXmlWriter));
|
||||
}
|
||||
@ -392,21 +392,21 @@ namespace DocFileFormat
|
||||
if (0 != rev.Rsid)
|
||||
{
|
||||
std::wstring rsid = FormatUtils::IntToFormattedWideString(rev.Rsid, _T("%08x"));
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidR"), rsid.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidR"), rsid);
|
||||
m_context->AddRsid(rsid);
|
||||
}
|
||||
|
||||
if (0 != rev.RsidDel)
|
||||
{
|
||||
std::wstring rsidDel = FormatUtils::IntToFormattedWideString(rev.RsidDel, _T("%08x"));
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidDel"), rsidDel.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidDel"), rsidDel);
|
||||
m_context->AddRsid(rsidDel);
|
||||
}
|
||||
|
||||
if (0 != rev.RsidProp)
|
||||
{
|
||||
std::wstring rsidProp = FormatUtils::IntToFormattedWideString(rev.RsidProp, _T("%08x"));
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidRPr"), rsidProp.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:rsidRPr"), rsidProp);
|
||||
m_context->AddRsid(rsidProp);
|
||||
}
|
||||
|
||||
@ -447,7 +447,7 @@ namespace DocFileFormat
|
||||
|
||||
if (!_writeAfterRun.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteString(_writeAfterRun.c_str());
|
||||
m_pXmlWriter->WriteString(_writeAfterRun);
|
||||
_writeAfterRun.clear();
|
||||
}
|
||||
}
|
||||
@ -491,9 +491,9 @@ namespace DocFileFormat
|
||||
|
||||
text.clear();
|
||||
|
||||
XMLTools::XMLElement<wchar_t> elem(_T("w:tab"));
|
||||
XMLTools::XMLElement elem(_T("w:tab"));
|
||||
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString());
|
||||
}
|
||||
else if (TextMark::HardLineBreak == code)
|
||||
{
|
||||
@ -501,11 +501,11 @@ namespace DocFileFormat
|
||||
|
||||
text.clear();
|
||||
|
||||
XMLTools::XMLElement<wchar_t> elem(_T("w:br"));
|
||||
XMLTools::XMLElement elem(_T("w:br"));
|
||||
elem.AppendAttribute(_T("w:type"), _T("textWrapping"));
|
||||
elem.AppendAttribute(_T("w:clear"), _T("all"));
|
||||
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString());
|
||||
}
|
||||
else if (TextMark::ParagraphEnd == code)
|
||||
{
|
||||
@ -520,10 +520,10 @@ namespace DocFileFormat
|
||||
|
||||
text.clear();
|
||||
|
||||
XMLTools::XMLElement<wchar_t> elem(_T("w:br"));
|
||||
XMLTools::XMLElement elem(_T("w:br"));
|
||||
elem.AppendAttribute(_T("w:type"), _T("page"));
|
||||
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString());
|
||||
}
|
||||
}
|
||||
else if (TextMark::ColumnBreak == code)
|
||||
@ -532,10 +532,10 @@ namespace DocFileFormat
|
||||
|
||||
text.clear();
|
||||
|
||||
XMLTools::XMLElement<wchar_t> elem(_T("w:br"));
|
||||
XMLTools::XMLElement elem(_T("w:br"));
|
||||
elem.AppendAttribute(_T("w:type"), _T("column"));
|
||||
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString());
|
||||
}
|
||||
else if (TextMark::FieldBeginMark == code)
|
||||
{
|
||||
@ -698,8 +698,8 @@ namespace DocFileFormat
|
||||
OleObject ole ( chpxObj, m_document->GetStorage(), m_document->bOlderVersion);
|
||||
|
||||
oleWriter.WriteNodeBegin (_T( "w:object" ), true);
|
||||
oleWriter.WriteAttribute( _T( "w:dxaOrig" ), FormatUtils::IntToWideString( ( ole.pictureDesciptor.dxaGoal + ole.pictureDesciptor.dxaOrigin ) ).c_str() );
|
||||
oleWriter.WriteAttribute( _T( "w:dyaOrig" ), FormatUtils::IntToWideString( ( ole.pictureDesciptor.dyaGoal + ole.pictureDesciptor.dyaOrigin ) ).c_str() );
|
||||
oleWriter.WriteAttribute( _T( "w:dxaOrig" ), FormatUtils::IntToWideString( ( ole.pictureDesciptor.dxaGoal + ole.pictureDesciptor.dxaOrigin ) ));
|
||||
oleWriter.WriteAttribute( _T( "w:dyaOrig" ), FormatUtils::IntToWideString( ( ole.pictureDesciptor.dyaGoal + ole.pictureDesciptor.dyaOrigin ) ));
|
||||
oleWriter.WriteNodeEnd( _T( "" ), true, false );
|
||||
|
||||
ole.pictureDesciptor.Convert(&oVmlMapper);
|
||||
@ -714,8 +714,8 @@ namespace DocFileFormat
|
||||
PictureDescriptor pic(chpxObj, m_document->DataStream, 0x7fffffff, m_document->bOlderVersion);
|
||||
|
||||
oleWriter.WriteNodeBegin (_T( "w:object" ), true);
|
||||
oleWriter.WriteAttribute( _T( "w:dxaOrig" ), FormatUtils::IntToWideString( ( pic.dxaGoal + pic.dxaOrigin ) ).c_str() );
|
||||
oleWriter.WriteAttribute( _T( "w:dyaOrig" ), FormatUtils::IntToWideString( ( pic.dyaGoal + pic.dyaOrigin ) ).c_str() );
|
||||
oleWriter.WriteAttribute( _T( "w:dxaOrig" ), FormatUtils::IntToWideString( ( pic.dxaGoal + pic.dxaOrigin ) ) );
|
||||
oleWriter.WriteAttribute( _T( "w:dyaOrig" ), FormatUtils::IntToWideString( ( pic.dyaGoal + pic.dyaOrigin ) ) );
|
||||
oleWriter.WriteNodeEnd( _T( "" ), true, false );
|
||||
|
||||
pic.Convert(&oVmlMapper);
|
||||
@ -751,7 +751,7 @@ namespace DocFileFormat
|
||||
if (!oVmlMapper.m_isEmbedded && oVmlMapper.m_isEquation)
|
||||
{
|
||||
//нельзя в Run писать oMath
|
||||
//m_pXmlWriter->WriteString(oVmlMapper.m_equationXml.c_str());
|
||||
//m_pXmlWriter->WriteString(oVmlMapper.m_equationXml);
|
||||
_writeAfterRun = oVmlMapper.m_equationXml;
|
||||
}
|
||||
else
|
||||
@ -777,10 +777,10 @@ namespace DocFileFormat
|
||||
{
|
||||
if (_fldCharCounter > 0)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> elem( _T( "w:fldChar" ) );
|
||||
XMLTools::XMLElement elem( _T( "w:fldChar" ) );
|
||||
elem.AppendAttribute( _T( "w:fldCharType" ), _T( "separate" ) );
|
||||
|
||||
m_pXmlWriter->WriteString( elem.GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( elem.GetXMLString() );
|
||||
}
|
||||
if (_embeddedObject) _skipRuns += 2;
|
||||
}
|
||||
@ -788,10 +788,10 @@ namespace DocFileFormat
|
||||
{
|
||||
if (_fldCharCounter > 0)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> elem( _T( "w:fldChar" ) );
|
||||
XMLTools::XMLElement elem( _T( "w:fldChar" ) );
|
||||
elem.AppendAttribute( _T( "w:fldCharType" ), _T( "end" ) );
|
||||
|
||||
m_pXmlWriter->WriteString( elem.GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( elem.GetXMLString());
|
||||
|
||||
_fldCharCounter--;
|
||||
}
|
||||
@ -812,8 +812,8 @@ namespace DocFileFormat
|
||||
Symbol s = getSymbol( chpx );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(_T("w:sym"), true);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:font"), FormatUtils::XmlEncode(s.FontName).c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:char"), FormatUtils::XmlEncode(s.HexValue).c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:font"), FormatUtils::XmlEncode(s.FontName));
|
||||
m_pXmlWriter->WriteAttribute(_T("w:char"), FormatUtils::XmlEncode(s.HexValue));
|
||||
m_pXmlWriter->WriteNodeEnd(_T(""), true);
|
||||
}
|
||||
else if ((TextMark::DrawnObject == code) && fSpec)
|
||||
@ -903,7 +903,7 @@ namespace DocFileFormat
|
||||
else if (oVmlMapper.m_isEquation)
|
||||
{
|
||||
//нельзя в Run писать oMath
|
||||
//m_pXmlWriter->WriteString(oVmlMapper.m_equationXml.c_str());
|
||||
//m_pXmlWriter->WriteString(oVmlMapper.m_equationXml);
|
||||
_writeAfterRun = oVmlMapper.m_equationXml;
|
||||
bFormula = true;
|
||||
}
|
||||
@ -925,7 +925,7 @@ namespace DocFileFormat
|
||||
if ((m_document->FootnoteReferenceCharactersPlex != NULL) && (m_document->FootnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:footnoteReference" ), true );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString(_footnoteNr++ ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString(_footnoteNr++ ) );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), true );
|
||||
}
|
||||
else if ((m_document->IndividualFootnotesPlex != NULL) && (m_document->IndividualFootnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpText)))
|
||||
@ -936,7 +936,7 @@ namespace DocFileFormat
|
||||
else if ((m_document->EndnoteReferenceCharactersPlex != NULL) && (m_document->EndnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:endnoteReference" ), true );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString(_endnoteNr++ ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString(_endnoteNr++ ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), true );
|
||||
}
|
||||
else if ((m_document->IndividualEndnotesPlex != NULL) &&
|
||||
@ -951,7 +951,7 @@ namespace DocFileFormat
|
||||
if (typeid(*this) != typeid(CommentsMapping))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:commentReference" ), true );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( _commentNr ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( _commentNr ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), true );
|
||||
}
|
||||
else
|
||||
@ -976,7 +976,7 @@ namespace DocFileFormat
|
||||
|
||||
writeTextStart(textType, true/*preserve_space*/);
|
||||
|
||||
m_pXmlWriter->WriteString(text.c_str());
|
||||
m_pXmlWriter->WriteString(text);
|
||||
|
||||
writeTextEnd(textType);
|
||||
}
|
||||
@ -993,7 +993,7 @@ namespace DocFileFormat
|
||||
|
||||
writeTextStart( textType, preserve_space );
|
||||
|
||||
m_pXmlWriter->WriteString( text.c_str() );
|
||||
m_pXmlWriter->WriteString( text);
|
||||
|
||||
writeTextEnd( textType );
|
||||
}
|
||||
@ -1003,7 +1003,7 @@ namespace DocFileFormat
|
||||
{
|
||||
std::wstring str = ( std::wstring( _T( "w:" ) ) + textType );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( str.c_str(), true );
|
||||
m_pXmlWriter->WriteNodeBegin( str, true );
|
||||
if (preserve_space)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( _T( "xml:space" ), _T( "preserve" ) );
|
||||
@ -1015,7 +1015,7 @@ namespace DocFileFormat
|
||||
{
|
||||
std::wstring str = ( std::wstring( _T( "w:" ) ) + textType );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( str.c_str() );
|
||||
m_pXmlWriter->WriteNodeEnd( str );
|
||||
}
|
||||
|
||||
// Searches for bookmarks in the list of characters.
|
||||
@ -1570,12 +1570,12 @@ namespace DocFileFormat
|
||||
|
||||
if ((bookmarkName != NULL) && (*bookmarkName != _T("_PictureBullets")))
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> bookmarkElem(_T("w:bookmarkStart"));
|
||||
XMLTools::XMLElement bookmarkElem(_T("w:bookmarkStart"));
|
||||
|
||||
bookmarkElem.AppendAttribute(_T("w:id"), FormatUtils::IntToWideString(id).c_str());
|
||||
bookmarkElem.AppendAttribute(_T("w:name"), bookmarkName->c_str());
|
||||
bookmarkElem.AppendAttribute(_T("w:id"), FormatUtils::IntToWideString(id));
|
||||
bookmarkElem.AppendAttribute(_T("w:name"), *bookmarkName);
|
||||
|
||||
m_pXmlWriter->WriteString(bookmarkElem.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(bookmarkElem.GetXMLString());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1591,11 +1591,11 @@ namespace DocFileFormat
|
||||
|
||||
if ( ( bookmarkName != NULL ) && ( *bookmarkName != _T( "_PictureBullets" ) ) )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> bookmarkElem( _T( "w:bookmarkEnd" ) );
|
||||
XMLTools::XMLElement bookmarkElem( _T( "w:bookmarkEnd" ) );
|
||||
|
||||
bookmarkElem.AppendAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ).c_str() );
|
||||
bookmarkElem.AppendAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ));
|
||||
|
||||
m_pXmlWriter->WriteString( bookmarkElem.GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( bookmarkElem.GetXMLString());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@ namespace DocFileFormat
|
||||
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr + m_document->FIB->m_RgLw97.ccpAtn + m_document->FIB->m_RgLw97.ccpEdn - 2 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:endnote" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpAtn ) < (*m_document->IndividualEndnotesPlex)[id + 1] )
|
||||
|
||||
@ -59,34 +59,39 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute( _T( "xmlns:w" ), OpenXmlNamespaces::WordprocessingML );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
int sz_fonts = table->Data.size();
|
||||
int sz_fonts = table->Data.size();
|
||||
int users_fonts = 0;
|
||||
|
||||
for ( std::vector<ByteStructure*>::iterator iter = table->Data.begin(); iter != table->Data.end(); iter++ )
|
||||
{
|
||||
FontFamilyName* font = dynamic_cast<FontFamilyName*>( *iter );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:font" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:name" ), FormatUtils::XmlEncode(font->xszFtn, true).c_str());
|
||||
|
||||
std::wstring name_ = FormatUtils::XmlEncode(font->xszFtn, true);
|
||||
if (name_.empty())
|
||||
name_ = L"UserFont_" + std::to_wstring(++users_fonts);
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:name" ), name_);
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
//alternative name
|
||||
if ( ( font->xszAlt != std::wstring( _T( "" ) ) ) && ( font->xszAlt.length() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:altName" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(font->xszAlt, true).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(font->xszAlt, true));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:altName" ) );
|
||||
}
|
||||
|
||||
//charset
|
||||
m_pXmlWriter->WriteNodeBegin( _T("w:charset" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( font->chs, _T( "%02x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( font->chs, _T( "%02x" ) ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:charset" ) );
|
||||
|
||||
//font family
|
||||
m_pXmlWriter->WriteNodeBegin( _T("w:family"), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString( font->ff, &FontFamily[0][0], 6, 11 ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString( font->ff, &FontFamily[0][0], 6, 11 ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:family" ) );
|
||||
|
||||
@ -100,13 +105,13 @@ namespace DocFileFormat
|
||||
wstr += FormatUtils::IntToFormattedWideString( font->panose[i], _T( "%02x" ) );
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), wstr.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), wstr);
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:panose1" ) );
|
||||
|
||||
//pitch
|
||||
m_pXmlWriter->WriteNodeBegin( _T("w:pitch"), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString( font->prq, &FontPitch[0][0], 3, 9 ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString( font->prq, &FontPitch[0][0], 3, 9 ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:pitch" ) );
|
||||
|
||||
@ -121,12 +126,12 @@ namespace DocFileFormat
|
||||
|
||||
//font signature
|
||||
m_pXmlWriter->WriteNodeBegin( _T("w:sig"), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb0" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield0, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb1" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield1, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb2" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield2, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb3" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield3, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:csb0" ), FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield0, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:csb1" ), FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield1, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb0" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield0, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb1" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield1, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb2" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield2, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:usb3" ), FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield3, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:csb0" ), FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield0, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:csb1" ), FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield1, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:sig" ) );
|
||||
|
||||
|
||||
@ -77,9 +77,14 @@ namespace DocFileFormat
|
||||
{
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
int start_table_cp = cp;
|
||||
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
|
||||
if (cp == start_table_cp)
|
||||
cp++;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -70,7 +70,7 @@ namespace DocFileFormat
|
||||
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn - 2 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:footnote" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:id" ), FormatUtils::IntToWideString( id ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText ) < (*m_document->IndividualFootnotesPlex)[id + 1] )
|
||||
|
||||
@ -40,7 +40,7 @@ namespace DocFileFormat
|
||||
_type = type;
|
||||
}
|
||||
|
||||
LanguageIdMapping::LanguageIdMapping (XMLTools::XMLElement<wchar_t>* parentElement, LanguageType type) : PropertiesMapping(NULL)
|
||||
LanguageIdMapping::LanguageIdMapping (XMLTools::XMLElement* parentElement, LanguageType type) : PropertiesMapping(NULL)
|
||||
{
|
||||
_parent = parentElement;
|
||||
_type = type;
|
||||
@ -59,31 +59,31 @@ namespace DocFileFormat
|
||||
{
|
||||
std::wstring langcode = getLanguageCode( dynamic_cast<LanguageId*>( lid ) );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t>* att = NULL;
|
||||
XMLTools::XMLAttribute* att = NULL;
|
||||
|
||||
switch ( _type )
|
||||
{
|
||||
case Default:
|
||||
{
|
||||
att = new XMLTools::XMLAttribute<wchar_t>( L"w:val", langcode.c_str() );
|
||||
att = new XMLTools::XMLAttribute( L"w:val", langcode);
|
||||
}
|
||||
break;
|
||||
|
||||
case EastAsian:
|
||||
{
|
||||
att = new XMLTools::XMLAttribute<wchar_t>( L"w:eastAsia", langcode.c_str() );
|
||||
att = new XMLTools::XMLAttribute( L"w:eastAsia", langcode);
|
||||
}
|
||||
break;
|
||||
|
||||
case Complex:
|
||||
{
|
||||
att = new XMLTools::XMLAttribute<wchar_t>( L"w:bidi", langcode.c_str() );
|
||||
att = new XMLTools::XMLAttribute( L"w:bidi", langcode);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
att = new XMLTools::XMLAttribute<wchar_t>( L"w:val", langcode.c_str() );
|
||||
att = new XMLTools::XMLAttribute( L"w:val", langcode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -91,7 +91,7 @@ namespace DocFileFormat
|
||||
if (m_pXmlWriter)
|
||||
{
|
||||
// !!!TODO!!!
|
||||
m_pXmlWriter->WriteString( att->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( att->GetXMLString());
|
||||
}
|
||||
else if ( _parent != NULL )
|
||||
{
|
||||
|
||||
@ -49,14 +49,14 @@ namespace DocFileFormat
|
||||
{
|
||||
public:
|
||||
LanguageIdMapping( XMLTools::CStringXmlWriter* writer, LanguageType type );
|
||||
LanguageIdMapping( XMLTools::XMLElement<wchar_t>* parentElement, LanguageType type );
|
||||
LanguageIdMapping( XMLTools::XMLElement* parentElement, LanguageType type );
|
||||
virtual ~LanguageIdMapping();
|
||||
void Apply( IVisitable* lid );
|
||||
|
||||
static std::wstring getLanguageCode( LanguageId* lid );
|
||||
|
||||
private:
|
||||
LanguageType _type;
|
||||
XMLTools::XMLElement<wchar_t>* _parent;
|
||||
LanguageType _type;
|
||||
XMLTools::XMLElement* _parent;
|
||||
};
|
||||
}
|
||||
|
||||
@ -83,12 +83,12 @@ namespace DocFileFormat
|
||||
{
|
||||
//start abstractNum
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:abstractNum" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:abstractNumId" ), FormatUtils::IntToWideString( i ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:abstractNumId" ), FormatUtils::IntToWideString( i ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
//nsid
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:nsid" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->lsid, _T( "%08x" ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->lsid, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
//multiLevelType
|
||||
@ -111,7 +111,7 @@ namespace DocFileFormat
|
||||
|
||||
//template
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:tmpl" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->tplc, _T( "%08x" ) ).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->tplc, _T( "%08x" ) ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// writes the levels
|
||||
@ -131,12 +131,12 @@ namespace DocFileFormat
|
||||
{
|
||||
//start abstractNum
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:abstractNum" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:abstractNumId" ), FormatUtils::IntToWideString( i ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:abstractNumId" ), FormatUtils::IntToWideString( i ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
////nsid
|
||||
//m_pXmlWriter->WriteNodeBegin( _T( "w:nsid" ), TRUE );
|
||||
//m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->lsid, _T( "%08x" ) ).c_str() );
|
||||
//m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToFormattedWideString( (*iter)->lsid, _T( "%08x" ) ));
|
||||
//m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
//multiLevelType
|
||||
@ -160,26 +160,26 @@ namespace DocFileFormat
|
||||
|
||||
//start num
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:num" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numId" ), FormatUtils::IntToWideString(i + 1).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numId" ), FormatUtils::IntToWideString(i + 1));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
int index = FindIndexbyId( rglst->listData, lfo->lsid );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:abstractNumId" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( index ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( index ) );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
for (std::vector<ListFormatOverrideLevel*>::const_iterator iter = lfo->rgLfoLvl.begin(); iter != lfo->rgLfoLvl.end(); ++iter)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lvlOverride" ), TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString( (*iter)->ilvl ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString( (*iter)->ilvl ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
if ( ( (*iter)->fStartAt ) && ( !(*iter)->fFormatting ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:startOverride" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( (*iter)->iStartAt ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( (*iter)->iStartAt ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
@ -197,12 +197,12 @@ namespace DocFileFormat
|
||||
for (std::list<NumberingDescriptor>::iterator iter = rglst->listNumbering.begin(); iter != rglst->listNumbering.end(); ++iter, ++i)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:num" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numId" ), FormatUtils::IntToWideString(i+1).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numId" ), FormatUtils::IntToWideString(i+1));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:abstractNumId" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( i ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString( i ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(_T( "w:num"));
|
||||
@ -255,8 +255,10 @@ namespace DocFileFormat
|
||||
|
||||
if (!FormatUtils::IsControlSymbol(xchBullet))
|
||||
{
|
||||
ret.push_back(lvl->xst[0]);
|
||||
ret.push_back(L'\0');
|
||||
ret.push_back(lvl->xst[0]);//??? xchBullet
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -487,20 +489,20 @@ namespace DocFileFormat
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lvl" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString(level).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString(level));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:start" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString(lvl.iStartAt).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString(lvl.iStartAt));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:numFmt" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), GetNumberFormatWideString(lvl.nfc, true).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), GetNumberFormatWideString(lvl.nfc, true));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
//// suffix
|
||||
// m_pXmlWriter->WriteNodeBegin( _T( "w:suff" ), TRUE );
|
||||
// m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl.ixchFollow, &FollowingCharMap[0][0], 3, 8).c_str());
|
||||
// m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl.ixchFollow, &FollowingCharMap[0][0], 3, 8));
|
||||
// m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// Number level text
|
||||
@ -516,13 +518,13 @@ namespace DocFileFormat
|
||||
if (!lvlText.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(_T("w:lvlText"), TRUE);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), lvlText.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), lvlText);
|
||||
m_pXmlWriter->WriteNodeEnd(_T( ""), TRUE);
|
||||
}
|
||||
|
||||
// jc
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lvlJc" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl.jc, &LevelJustificationMap[0][0], 3, 7).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl.jc, &LevelJustificationMap[0][0], 3, 7));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
// pPr
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:pPr" ), FALSE );
|
||||
@ -535,8 +537,8 @@ namespace DocFileFormat
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:rFonts" ), TRUE );
|
||||
// w:hint="default"
|
||||
m_pXmlWriter->WriteAttribute(_T("w:hAnsi"), fontFamily.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:ascii"), fontFamily.c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:hAnsi"), fontFamily);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:ascii"), fontFamily);
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd(_T("w:rPr"));
|
||||
@ -557,25 +559,25 @@ namespace DocFileFormat
|
||||
// Проверяем шрифт
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lvl" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString(level).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ilvl" ), FormatUtils::IntToWideString(level));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
// starts at
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:start" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString(lvl->iStartAt).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::IntToWideString(lvl->iStartAt));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// number format
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:numFmt" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), GetNumberFormatWideString(lvl->nfc).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), GetNumberFormatWideString(lvl->nfc));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// suffix
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:suff" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl->ixchFollow, &FollowingCharMap[0][0], 3, 8).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl->ixchFollow, &FollowingCharMap[0][0], 3, 8));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// style
|
||||
@ -585,14 +587,14 @@ namespace DocFileFormat
|
||||
if (styleIndex != ListData::ISTD_NIL)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:pStyle" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(StyleSheetMapping::MakeStyleId(m_document->Styles->Styles->at(styleIndex))).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(StyleSheetMapping::MakeStyleId(m_document->Styles->Styles->at(styleIndex))));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
// Number level text
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(_T("w:lvlText"), TRUE);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), GetLvlText(lvl, cpMapping.CheckIsSymbolFont()).c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), GetLvlText(lvl, cpMapping.CheckIsSymbolFont()));
|
||||
m_pXmlWriter->WriteNodeEnd(_T( ""), TRUE);
|
||||
|
||||
WriteLevelPictureBullet(lvl->grpprlChpx);
|
||||
@ -606,7 +608,7 @@ namespace DocFileFormat
|
||||
}
|
||||
// jc
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lvlJc" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl->jc, &LevelJustificationMap[0][0], 3, 7).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::MapValueToWideString(lvl->jc, &LevelJustificationMap[0][0], 3, 7));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
// pPr
|
||||
bool isBidi = false;
|
||||
@ -638,7 +640,7 @@ namespace DocFileFormat
|
||||
if ((pict.mfp.mm > 98) && (pict.shapeContainer != NULL))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:numPicBullet" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numPicBulletId" ), FormatUtils::IntToWideString( iter->first ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:numPicBulletId" ), FormatUtils::IntToWideString( iter->first ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:pict" ) );
|
||||
|
||||
@ -670,7 +672,7 @@ namespace DocFileFormat
|
||||
{
|
||||
if (grpprlChpx)
|
||||
{
|
||||
unsigned int cp = 0;
|
||||
unsigned int index = 0;
|
||||
bool isPictureBullet = false;
|
||||
|
||||
for (std::list<SinglePropertyModifier>::const_iterator iter = grpprlChpx->grpprl->begin(); iter != grpprlChpx->grpprl->end(); ++iter)
|
||||
@ -679,7 +681,7 @@ namespace DocFileFormat
|
||||
{
|
||||
case sprmCPbiIBullet:
|
||||
{
|
||||
cp = FormatUtils::BytesToUInt32(iter->Arguments, 0, iter->argumentsSize);
|
||||
index = FormatUtils::BytesToUInt32(iter->Arguments, 0, iter->argumentsSize);
|
||||
}break;
|
||||
|
||||
case sprmCPbiGrf:
|
||||
@ -692,7 +694,7 @@ namespace DocFileFormat
|
||||
if (isPictureBullet)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(_T("w:lvlPicBulletId"), TRUE);
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), FormatUtils::IntToWideString(cp).c_str());
|
||||
m_pXmlWriter->WriteAttribute(_T("w:val"), FormatUtils::IntToWideString(index));
|
||||
m_pXmlWriter->WriteNodeEnd(_T(""), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,9 +71,9 @@ namespace DocFileFormat
|
||||
{
|
||||
int relID = m_context->_docx->RegisterExternalOLEObject(_caller, ole->ClipboardFormat, ole->Link);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "r:id" ), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString( relID ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "r:id" ), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString( relID ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "Type" ), _T( "Link" ) );
|
||||
m_pXmlWriter->WriteAttribute( _T( "UpdateMode" ), ole->UpdateMode.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "UpdateMode" ), ole->UpdateMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -84,16 +84,16 @@ namespace DocFileFormat
|
||||
else
|
||||
relID = m_context->_docx->RegisterOLEObject(_caller, ole->ClipboardFormat);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "r:id" ), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString( relID ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "r:id" ), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString( relID ) ));
|
||||
m_pXmlWriter->WriteAttribute( _T( "Type" ), _T( "Embed" ) );
|
||||
|
||||
copyEmbeddedObject( ole );
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "ProgID" ), ole->Program.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "ShapeID" ), _shapeId.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "ProgID" ), ole->Program);
|
||||
m_pXmlWriter->WriteAttribute( _T( "ShapeID" ), _shapeId);
|
||||
m_pXmlWriter->WriteAttribute( _T( "DrawAspect" ), _T( "Content" ) );
|
||||
m_pXmlWriter->WriteAttribute( _T( "ObjectID" ), ole->ObjectId.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "ObjectID" ), ole->ObjectId);
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "o:OLEObject" ) );
|
||||
|
||||
@ -224,7 +224,7 @@ namespace DocFileFormat
|
||||
{
|
||||
HeaderRelationshipsFiles.push_back( RelationshipsFile( ( std::wstring( _T( "word/_rels/header" ) ) + FormatUtils::IntToWideString( ++_headerCounter ) + std::wstring( _T( ".xml.rels" ) ) ) ) );
|
||||
|
||||
return AddPart( _T( "word" ), ( std::wstring( _T( "header" ) ) + FormatUtils::IntToWideString( _headerCounter ) + std::wstring( _T( ".xml" ) ) ).c_str(), WordprocessingMLContentTypes::Header, OpenXmlRelationshipTypes::Header );
|
||||
return AddPart( _T( "word" ), ( std::wstring( _T( "header" ) ) + FormatUtils::IntToWideString( _headerCounter ) + std::wstring( _T( ".xml" ) ) ), WordprocessingMLContentTypes::Header, OpenXmlRelationshipTypes::Header );
|
||||
}
|
||||
|
||||
int OpenXmlPackage::AddHeaderPart( const std::wstring& fileName, const std::wstring& relationshipType, const std::wstring& targetMode )
|
||||
@ -245,7 +245,7 @@ namespace DocFileFormat
|
||||
{
|
||||
FooterRelationshipsFiles.push_back( RelationshipsFile( ( std::wstring( _T( "word/_rels/footer" ) ) + FormatUtils::IntToWideString( ++_footerCounter ) + std::wstring( _T( ".xml.rels" ) ) ) ) );
|
||||
|
||||
return AddPart( _T( "word" ), ( std::wstring( _T( "footer" ) ) + FormatUtils::IntToWideString( _footerCounter ) + std::wstring( _T( ".xml" ) ) ).c_str(), WordprocessingMLContentTypes::Footer, OpenXmlRelationshipTypes::Footer );
|
||||
return AddPart( _T( "word" ), ( std::wstring( _T( "footer" ) ) + FormatUtils::IntToWideString( _footerCounter ) + std::wstring( _T( ".xml" ) ) ), WordprocessingMLContentTypes::Footer, OpenXmlRelationshipTypes::Footer );
|
||||
}
|
||||
|
||||
int OpenXmlPackage::AddFooterPart( const std::wstring& fileName, const std::wstring& relationshipType, const std::wstring& targetMode )
|
||||
@ -322,13 +322,13 @@ namespace DocFileFormat
|
||||
for ( std::list<Relationship>::const_iterator iter = relationshipsFile.Relationships.begin(); iter != relationshipsFile.Relationships.end(); iter++ )
|
||||
{
|
||||
writer.WriteNodeBegin( _T( "Relationship" ), TRUE );
|
||||
writer.WriteAttribute( _T( "Id" ), iter->Id.c_str() );
|
||||
writer.WriteAttribute( _T( "Type" ), iter->Type.c_str() );
|
||||
writer.WriteAttribute( _T( "Target" ), iter->Target.c_str() );
|
||||
writer.WriteAttribute( _T( "Id" ), iter->Id );
|
||||
writer.WriteAttribute( _T( "Type" ), iter->Type );
|
||||
writer.WriteAttribute( _T( "Target" ), iter->Target );
|
||||
|
||||
if ( !iter->TargetMode.empty() )
|
||||
{
|
||||
writer.WriteAttribute( _T( "TargetMode" ), iter->TargetMode.c_str() );
|
||||
writer.WriteAttribute( _T( "TargetMode" ), iter->TargetMode );
|
||||
}
|
||||
|
||||
writer.WriteNodeEnd( _T( "" ), TRUE );
|
||||
@ -358,16 +358,16 @@ namespace DocFileFormat
|
||||
for ( std::map<std::wstring, std::wstring>::iterator iter = DocumentContentTypesFile._defaultTypes.begin(); iter != DocumentContentTypesFile._defaultTypes.end(); iter++ )
|
||||
{
|
||||
writer.WriteNodeBegin( _T( "Default" ), TRUE );
|
||||
writer.WriteAttribute( _T( "Extension" ), iter->first.c_str() );
|
||||
writer.WriteAttribute( _T( "ContentType" ), DocumentContentTypesFile._defaultTypes[iter->first].c_str() );
|
||||
writer.WriteAttribute( _T( "Extension" ), iter->first );
|
||||
writer.WriteAttribute( _T( "ContentType" ), DocumentContentTypesFile._defaultTypes[iter->first] );
|
||||
writer.WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
for ( std::map<std::wstring, std::wstring>::iterator iter = DocumentContentTypesFile._partOverrides.begin(); iter != DocumentContentTypesFile._partOverrides.end(); iter++ )
|
||||
{
|
||||
writer.WriteNodeBegin( _T( "Override" ), TRUE );
|
||||
writer.WriteAttribute( _T( "PartName" ), iter->first.c_str() );
|
||||
writer.WriteAttribute( _T( "ContentType" ), DocumentContentTypesFile._partOverrides[iter->first].c_str() );
|
||||
writer.WriteAttribute( _T( "PartName" ), iter->first );
|
||||
writer.WriteAttribute( _T( "ContentType" ), DocumentContentTypesFile._partOverrides[iter->first] );
|
||||
writer.WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
|
||||
@ -42,8 +42,8 @@ namespace DocFileFormat
|
||||
m_document = document;
|
||||
m_context = context;
|
||||
|
||||
_pPr = new XMLTools::XMLElement<wchar_t>( _T( "w:pPr" ) );
|
||||
_framePr = new XMLTools::XMLElement<wchar_t>( _T( "w:framePr" ) );
|
||||
_pPr = new XMLTools::XMLElement( _T( "w:pPr" ) );
|
||||
_framePr = new XMLTools::XMLElement( _T( "w:framePr" ) );
|
||||
|
||||
_paraEndChpx = paraEndChpx;
|
||||
_isBidi = isBidi;
|
||||
@ -57,8 +57,8 @@ namespace DocFileFormat
|
||||
m_document = document;
|
||||
m_context = context;
|
||||
|
||||
_pPr = new XMLTools::XMLElement<wchar_t>( _T( "w:pPr" ) );
|
||||
_framePr = new XMLTools::XMLElement<wchar_t>( _T( "w:framePr" ) );
|
||||
_pPr = new XMLTools::XMLElement( _T( "w:pPr" ) );
|
||||
_framePr = new XMLTools::XMLElement( _T( "w:framePr" ) );
|
||||
|
||||
_paraEndChpx = paraEndChpx;
|
||||
_isBidi = isBidi;
|
||||
@ -82,21 +82,21 @@ namespace DocFileFormat
|
||||
{
|
||||
ParagraphPropertyExceptions* papx = static_cast<ParagraphPropertyExceptions*>( visited );
|
||||
|
||||
XMLTools::XMLElement<wchar_t> ind ( _T( "w:ind" ) );
|
||||
XMLTools::XMLElement<wchar_t> numPr ( _T( "w:numPr" ) );
|
||||
XMLTools::XMLElement<wchar_t> pBdr ( _T( "w:pBdr" ) );
|
||||
XMLTools::XMLElement<wchar_t> spacing ( _T( "w:spacing" ) );
|
||||
XMLTools::XMLElement<wchar_t>* jc = NULL;
|
||||
XMLTools::XMLElement ind ( _T( "w:ind" ) );
|
||||
XMLTools::XMLElement numPr ( _T( "w:numPr" ) );
|
||||
XMLTools::XMLElement pBdr ( _T( "w:pBdr" ) );
|
||||
XMLTools::XMLElement spacing ( _T( "w:spacing" ) );
|
||||
XMLTools::XMLElement* jc = NULL;
|
||||
|
||||
if ( _isParagraphStyleNeeded )
|
||||
{
|
||||
//append style id , do not append "Normal" style (istd 0)
|
||||
XMLTools::XMLElement<wchar_t> pStyle( _T( "w:pStyle" ) );
|
||||
XMLTools::XMLAttribute<wchar_t> styleId( _T( "w:val" ), StyleIdentifierMap[0] );
|
||||
XMLTools::XMLElement pStyle( _T( "w:pStyle" ) );
|
||||
XMLTools::XMLAttribute styleId( _T( "w:val" ), StyleIdentifierMap[0] );
|
||||
|
||||
if ( papx->istd < m_document->Styles->Styles->size() )
|
||||
{
|
||||
styleId.SetValue( FormatUtils::XmlEncode(StyleSheetMapping::MakeStyleId( m_document->Styles->Styles->at( papx->istd ) )).c_str() );
|
||||
styleId.SetValue( FormatUtils::XmlEncode(StyleSheetMapping::MakeStyleId( m_document->Styles->Styles->at( papx->istd ) )) );
|
||||
}
|
||||
|
||||
pStyle.AppendAttribute( styleId );
|
||||
@ -106,7 +106,7 @@ namespace DocFileFormat
|
||||
//append formatting of paragraph end mark
|
||||
if ( _paraEndChpx != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* rPr = new XMLTools::XMLElement<wchar_t>( _T( "w:rPr" ) );
|
||||
XMLTools::XMLElement* rPr = new XMLTools::XMLElement( _T( "w:rPr" ) );
|
||||
|
||||
//append properties
|
||||
RevisionData* rev = new RevisionData( _paraEndChpx );
|
||||
@ -116,7 +116,7 @@ namespace DocFileFormat
|
||||
//append delete infos
|
||||
if ( rev->Type == Deleted )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> del( _T( "w:del" ) );
|
||||
XMLTools::XMLElement del( _T( "w:del" ) );
|
||||
rPr->AppendChild( del );
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ namespace DocFileFormat
|
||||
{
|
||||
case sprmPIpgp:
|
||||
{
|
||||
appendValueElement(_pPr, _T( "divId" ), FormatUtils::IntToWideString( FormatUtils::BytesToUInt32(iter->Arguments, 0, iter->argumentsSize)).c_str(), true);
|
||||
appendValueElement(_pPr, _T( "divId" ), FormatUtils::IntToWideString( FormatUtils::BytesToUInt32(iter->Arguments, 0, iter->argumentsSize)), true);
|
||||
}break;
|
||||
|
||||
case sprmPFAutoSpaceDE:
|
||||
@ -242,7 +242,7 @@ namespace DocFileFormat
|
||||
flValue *= -1;
|
||||
}
|
||||
|
||||
appendValueAttribute( &ind, flName.c_str(), flValue );
|
||||
appendValueAttribute( &ind, flName, flValue );
|
||||
}break;
|
||||
|
||||
case sprmPDxcLeft1:
|
||||
@ -283,10 +283,10 @@ namespace DocFileFormat
|
||||
{
|
||||
LineSpacingDescriptor lspd( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> line( _T( "w:line" ), FormatUtils::IntToWideString( abs( lspd.dyaLine ) ).c_str() );
|
||||
XMLTools::XMLAttribute line( _T( "w:line" ), FormatUtils::IntToWideString( abs( lspd.dyaLine ) ));
|
||||
spacing.AppendAttribute( line );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> lineRule( _T( "w:lineRule" ), _T( "auto" ) );
|
||||
XMLTools::XMLAttribute lineRule( _T( "w:lineRule" ), _T( "auto" ) );
|
||||
|
||||
if( ( !lspd.fMultLinespace ) && ( lspd.dyaLine < 0 ) )
|
||||
{
|
||||
@ -311,10 +311,10 @@ namespace DocFileFormat
|
||||
iter->Arguments[0] = (iter->Arguments[0] == 0 ? 2 : 0);
|
||||
}
|
||||
RELEASEOBJECT( jc );
|
||||
jc = new XMLTools::XMLElement<wchar_t>( L"w:jc" );
|
||||
jc = new XMLTools::XMLElement( L"w:jc" );
|
||||
if ( jc )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> jcVal( L"w:val", FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::JustificationCode[0][0], 10, 15 ).c_str() );
|
||||
XMLTools::XMLAttribute jcVal( L"w:val", FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::JustificationCode[0][0], 10, 15 ));
|
||||
jc->AppendAttribute( jcVal );
|
||||
}
|
||||
}break;
|
||||
@ -325,7 +325,7 @@ namespace DocFileFormat
|
||||
//case 0x4424:
|
||||
case sprmPBrcTop80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> topBorder( _T( "w:top" ) );
|
||||
XMLTools::XMLElement topBorder( _T( "w:top" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -340,7 +340,7 @@ namespace DocFileFormat
|
||||
//case 0x4425:
|
||||
case sprmPBrcLeft80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> leftBorder( _T( "w:left" ) );
|
||||
XMLTools::XMLElement leftBorder( _T( "w:left" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -355,7 +355,7 @@ namespace DocFileFormat
|
||||
//case 0x4426:
|
||||
case sprmPBrcBottom80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> bottomBorder( _T( "w:bottom" ) );
|
||||
XMLTools::XMLElement bottomBorder( _T( "w:bottom" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -370,7 +370,7 @@ namespace DocFileFormat
|
||||
//case 0x4427:
|
||||
case sprmPBrcRight80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> rightBorder( _T( "w:right" ) );
|
||||
XMLTools::XMLElement rightBorder( _T( "w:right" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -385,7 +385,7 @@ namespace DocFileFormat
|
||||
//case 0x4428:
|
||||
case sprmPBrcBetween80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> betweenBorder( _T( "w:between" ) );
|
||||
XMLTools::XMLElement betweenBorder( _T( "w:between" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -400,7 +400,7 @@ namespace DocFileFormat
|
||||
//case 0x4629:
|
||||
case sprmPBrcBar80:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> barBorder( _T( "w:bar" ) );
|
||||
XMLTools::XMLElement barBorder( _T( "w:bar" ) );
|
||||
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
@ -438,10 +438,13 @@ namespace DocFileFormat
|
||||
}break;
|
||||
|
||||
case sprmOldPNLvlAnm:
|
||||
{
|
||||
{
|
||||
short level = FormatUtils::BytesToUChar( iter->Arguments, 0, iter->argumentsSize) - 1;
|
||||
if (level > 0 && level < 10)
|
||||
appendValueElement( _pPr, _T( "outlineLvl" ), level, false );
|
||||
appendValueElement( _pPr, _T( "outlineLvl" ), level, false );
|
||||
}break;
|
||||
|
||||
case sprmOldPFNoLineNumb:
|
||||
{
|
||||
}break;
|
||||
|
||||
@ -480,7 +483,7 @@ namespace DocFileFormat
|
||||
case sprmPChgTabsPapx:
|
||||
case sprmPChgTabs:
|
||||
{
|
||||
case sprmPChgTabsPapx:
|
||||
XMLTools::XMLElement tabs( _T( "w:tabs" ) );
|
||||
|
||||
int pos = 0;
|
||||
|
||||
@ -491,14 +494,14 @@ namespace DocFileFormat
|
||||
|
||||
for( int i=0; i < itbdDelMax; i++ )
|
||||
{
|
||||
|
||||
XMLTools::XMLElement tab( _T( "w:tab" ) );
|
||||
|
||||
//clear
|
||||
XMLTools::XMLElement<wchar_t> tab( _T( "w:tab" ) );
|
||||
XMLTools::XMLAttribute tabsVal( _T( "w:val" ), _T( "clear" ) );
|
||||
tab.AppendAttribute( tabsVal );
|
||||
|
||||
//position
|
||||
tab.AppendAttribute( tabsVal );
|
||||
XMLTools::XMLAttribute tabsPos( _T( "w:pos" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, pos, iter->argumentsSize ) ) );
|
||||
tab.AppendAttribute( tabsPos );
|
||||
|
||||
tabs.AppendChild( tab );
|
||||
@ -515,26 +518,26 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//read the added tabs
|
||||
}
|
||||
unsigned char itbdAddMax = pos < iter->argumentsSize ? iter->Arguments[pos] : 0;
|
||||
|
||||
//read the added tabs
|
||||
if (itbdAddMax > 0) pos++;
|
||||
|
||||
for ( int i = 0; i < itbdAddMax; i++ )
|
||||
{
|
||||
TabDescriptor tbd( iter->Arguments[pos + ( itbdAddMax * 2 ) + i] );
|
||||
|
||||
{
|
||||
XMLTools::XMLElement tab( _T( "w:tab" ) );
|
||||
|
||||
//justification
|
||||
XMLTools::XMLElement<wchar_t> tab( _T( "w:tab" ) );
|
||||
XMLTools::XMLAttribute tabsVal( _T( "w:val" ), FormatUtils::MapValueToWideString( tbd.jc, &Global::TabStop[0][0], 7, 8 ) );
|
||||
tab.AppendAttribute( tabsVal );
|
||||
|
||||
//tab leader type
|
||||
tab.AppendAttribute( tabsVal );
|
||||
XMLTools::XMLAttribute leader( _T( "w:leader" ), FormatUtils::MapValueToWideString( tbd.tlc, &Global::TabLeader[0][0], 8, 11 ) );
|
||||
tab.AppendAttribute( leader );
|
||||
|
||||
//position
|
||||
tab.AppendAttribute( leader );
|
||||
XMLTools::XMLAttribute tabsPos( _T( "w:pos" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, ( pos + (i * 2) ), iter->argumentsSize ) ) );
|
||||
tab.AppendAttribute( tabsPos );
|
||||
|
||||
tabs.AppendChild( tab );
|
||||
@ -551,14 +554,14 @@ namespace DocFileFormat
|
||||
//position code
|
||||
unsigned char flag = iter->Arguments[0];
|
||||
|
||||
//position code
|
||||
unsigned char flag = iter->Arguments[0];
|
||||
appendValueAttribute (_framePr, _T( "w:hAnchor" ), FormatUtils::MapValueToWideString( ( ( flag & 0xC0 ) >> 6 ), &Global::HorizontalPositionCode[0][0], 4, 7 ) );
|
||||
appendValueAttribute (_framePr, _T( "w:vAnchor" ), FormatUtils::MapValueToWideString( ( ( flag & 0x30 ) >> 4 ), &Global::VerticalPositionCode[0][0], 4, 7 ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldPWr:
|
||||
case sprmPWr:
|
||||
|
||||
appendValueAttribute( _framePr, _T( "w:wrap" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::TextFrameWrapping[0][0], 6, 10 ) );
|
||||
break;
|
||||
|
||||
case sprmOldPDxaAbs:
|
||||
@ -595,7 +598,7 @@ namespace DocFileFormat
|
||||
{
|
||||
short pDcs = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
{
|
||||
appendValueAttribute( _framePr, _T( "w:dropCap" ), FormatUtils::MapValueToWideString( ( pDcs & 0x07 ), &Global::TextFrameDropCapLocation[0][0], 3, 7 ) );
|
||||
|
||||
appendValueAttribute( _framePr, _T( "w:lines" ), (unsigned char)( ( pDcs & 0xF8 ) >> 3 ) );
|
||||
}
|
||||
@ -632,7 +635,7 @@ namespace DocFileFormat
|
||||
//append section properties
|
||||
if ( _sepx != NULL )
|
||||
{
|
||||
//append section properties
|
||||
XMLTools::XMLElement sectPr( _T( "w:sectPr" ) );
|
||||
SectionPropertiesMapping* sectionPropertiesMapping = new SectionPropertiesMapping( §Pr, m_context, _sectionNr );
|
||||
_sepx->Convert( sectionPropertiesMapping );
|
||||
|
||||
@ -678,7 +681,7 @@ namespace DocFileFormat
|
||||
//write Properties
|
||||
if ( ( _pPr->GetChildCount() > 0 ) || ( _pPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
//write Properties
|
||||
m_pXmlWriter->WriteString( _pPr->GetXMLString() );
|
||||
}
|
||||
}
|
||||
m_pXmlWriter->WriteString( _pPr->GetXMLString().c_str() );
|
||||
}
|
||||
|
||||
@ -57,8 +57,8 @@ namespace DocFileFormat
|
||||
WordDocument* m_document;
|
||||
ConversionContext* m_context;
|
||||
|
||||
XMLTools::XMLElement<wchar_t>* _pPr;
|
||||
XMLTools::XMLElement<wchar_t>* _framePr;
|
||||
XMLTools::XMLElement* _pPr;
|
||||
XMLTools::XMLElement* _framePr;
|
||||
SectionPropertyExceptions* _sepx;
|
||||
CharacterPropertyExceptions* _paraEndChpx;
|
||||
int _sectionNr;
|
||||
|
||||
@ -244,22 +244,22 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendFlagAttribute( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* attributeName )
|
||||
void PropertiesMapping::appendFlagAttribute( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const std::wstring & attributeName )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, FormatUtils::IntToWideString( sprm.Arguments[0] ).c_str());
|
||||
XMLTools::XMLAttribute att( attributeName, FormatUtils::IntToWideString( sprm.Arguments[0] ));
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique )
|
||||
void PropertiesMapping::appendFlagElement( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const std::wstring & elementName, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> ele( L"w", elementName );
|
||||
XMLTools::XMLElement ele( L"w", elementName );
|
||||
|
||||
if ( sprm.Arguments[0] == 0 )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> val( L"w:val" , L"off" );
|
||||
XMLTools::XMLAttribute val( L"w:val" , L"off" );
|
||||
ele.AppendAttribute( val );
|
||||
}
|
||||
|
||||
@ -274,58 +274,58 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, const wchar_t* attributeValue )
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement* node, const std::wstring & attributeName, const std::wstring & attributeValue )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, attributeValue );
|
||||
XMLTools::XMLAttribute att( attributeName, attributeValue );
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, int attributeValue )
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement* node, const std::wstring & attributeName, int attributeValue )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, FormatUtils::IntToWideString( attributeValue ).c_str());
|
||||
XMLTools::XMLAttribute att( attributeName, FormatUtils::IntToWideString( attributeValue ));
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, short attributeValue )
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement* node, const std::wstring & attributeName, short attributeValue )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, FormatUtils::IntToWideString( attributeValue ).c_str());
|
||||
XMLTools::XMLAttribute att( attributeName, FormatUtils::IntToWideString( attributeValue ));
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, unsigned short attributeValue )
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement* node, const std::wstring & attributeName, unsigned short attributeValue )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, FormatUtils::IntToWideString( attributeValue ).c_str());
|
||||
XMLTools::XMLAttribute att( attributeName, FormatUtils::IntToWideString( attributeValue ));
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, unsigned char attributeValue )
|
||||
void PropertiesMapping::appendValueAttribute( XMLTools::XMLElement* node, const std::wstring & attributeName, unsigned char attributeValue )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> att( attributeName, FormatUtils::IntToWideString( attributeValue ).c_str());
|
||||
XMLTools::XMLAttribute att( attributeName, FormatUtils::IntToWideString( attributeValue ));
|
||||
|
||||
node->AppendAttribute( att );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, const wchar_t* elementValue, bool unique )
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement* node, const std::wstring & elementName, const std::wstring & elementValue, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* ele = new XMLTools::XMLElement<wchar_t>( L"w" , elementName );
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( L"w" , elementName );
|
||||
|
||||
if( ( elementValue != NULL ) && ( wcscmp( elementValue, L"" ) != 0 ))
|
||||
if(!elementValue.empty())
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* val = new XMLTools::XMLAttribute<wchar_t>( L"w:val" );
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( L"w:val" );
|
||||
|
||||
val->SetValue( elementValue );
|
||||
|
||||
@ -347,15 +347,15 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, short elementValue, bool unique )
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement* node, const std::wstring & elementName, short elementValue, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* ele = new XMLTools::XMLElement<wchar_t>( L"w" , elementName );
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( L"w" , elementName );
|
||||
|
||||
std::wstring strValue = FormatUtils::IntToWideString( elementValue );
|
||||
|
||||
if ( strValue != std::wstring( L""))
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* val = new XMLTools::XMLAttribute<wchar_t>( L"w:val", strValue.c_str());
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( L"w:val", strValue);
|
||||
ele->AppendAttribute( *val );
|
||||
RELEASEOBJECT( val );
|
||||
}
|
||||
@ -373,15 +373,15 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, unsigned short elementValue, bool unique )
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement* node, const std::wstring & elementName, unsigned short elementValue, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* ele = new XMLTools::XMLElement<wchar_t>( L"w" , elementName );
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( L"w" , elementName );
|
||||
|
||||
std::wstring strValue = FormatUtils::IntToWideString( elementValue );
|
||||
|
||||
if ( strValue != std::wstring( L"" ))
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* val = new XMLTools::XMLAttribute<wchar_t>( L"w:val", strValue.c_str());
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( L"w:val", strValue);
|
||||
ele->AppendAttribute( *val );
|
||||
RELEASEOBJECT( val );
|
||||
}
|
||||
@ -399,15 +399,15 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, unsigned char elementValue, bool unique )
|
||||
void PropertiesMapping::appendValueElement( XMLTools::XMLElement* node, const std::wstring & elementName, unsigned char elementValue, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t>* ele = new XMLTools::XMLElement<wchar_t>( L"w", elementName );
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( L"w", elementName );
|
||||
|
||||
std::wstring strValue = FormatUtils::IntToWideString( elementValue );
|
||||
|
||||
if ( strValue != std::wstring( L"" ))
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t>* val = new XMLTools::XMLAttribute<wchar_t>( L"w:val", strValue.c_str());
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( L"w:val", strValue);
|
||||
ele->AppendAttribute( *val );
|
||||
RELEASEOBJECT( val );
|
||||
}
|
||||
@ -425,9 +425,9 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendBorderAttributes( BorderCode* brc, XMLTools::XMLElement<wchar_t>* border )
|
||||
void PropertiesMapping::appendBorderAttributes( BorderCode* brc, XMLTools::XMLElement* border )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> val( L"w:val" );
|
||||
XMLTools::XMLAttribute val( L"w:val" );
|
||||
|
||||
if ( brc->fNil )
|
||||
{
|
||||
@ -436,22 +436,22 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
val.SetValue( getBorderType( brc->brcType ).c_str());
|
||||
val.SetValue( getBorderType( brc->brcType ));
|
||||
border->AppendAttribute( val );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> color( L"w:color" );
|
||||
color.SetValue( RGBColor( brc->cv, RedFirst ).SixDigitHexCode.c_str());
|
||||
XMLTools::XMLAttribute color( L"w:color" );
|
||||
color.SetValue( RGBColor( brc->cv, RedFirst ).SixDigitHexCode);
|
||||
border->AppendAttribute( color );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> space( L"w:space" , FormatUtils::IntToWideString( brc->dptSpace ).c_str());
|
||||
XMLTools::XMLAttribute space( L"w:space" , FormatUtils::IntToWideString( brc->dptSpace ));
|
||||
border->AppendAttribute( space );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> sz( L"w:sz", FormatUtils::IntToWideString( brc->dptLineWidth ).c_str());
|
||||
XMLTools::XMLAttribute sz( L"w:sz", FormatUtils::IntToWideString( brc->dptLineWidth ));
|
||||
border->AppendAttribute( sz );
|
||||
|
||||
if ( brc->fShadow )
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> shadow( L"w:shadow" );
|
||||
XMLTools::XMLAttribute shadow( L"w:shadow" );
|
||||
shadow.SetValue( L"1" );
|
||||
border->AppendAttribute( shadow );
|
||||
}
|
||||
@ -460,14 +460,14 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendShading( XMLTools::XMLElement<wchar_t>* parent, const ShadingDescriptor& desc )
|
||||
void PropertiesMapping::appendShading( XMLTools::XMLElement* parent, const ShadingDescriptor& desc )
|
||||
{
|
||||
if ( ( parent != NULL ) && ( desc.shadingSpecialValue == shadingSpecialValueNormal ))
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> shd( L"w:shd" );
|
||||
XMLTools::XMLElement shd( L"w:shd" );
|
||||
|
||||
//fill color
|
||||
XMLTools::XMLAttribute<wchar_t> fill( L"w:fill" );
|
||||
XMLTools::XMLAttribute fill( L"w:fill" );
|
||||
|
||||
if ( desc.shadingType == shadingTypeShd )
|
||||
{
|
||||
@ -477,18 +477,18 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
fill.SetValue( RGBColor( (int)desc.cvBack, RedLast ).SixDigitHexCode.c_str());
|
||||
fill.SetValue( RGBColor( (int)desc.cvBack, RedLast ).SixDigitHexCode);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fill.SetValue( FormatUtils::MapValueToWideString( desc.icoBack, &Global::ColorIdentifier[0][0], 17, 12 ).c_str());
|
||||
fill.SetValue( FormatUtils::MapValueToWideString( desc.icoBack, &Global::ColorIdentifier[0][0], 17, 12 ));
|
||||
}
|
||||
|
||||
shd.AppendAttribute( fill );
|
||||
|
||||
//foreground color
|
||||
XMLTools::XMLAttribute<wchar_t> color( L"w:color" );
|
||||
XMLTools::XMLAttribute color( L"w:color" );
|
||||
|
||||
if ( desc.shadingType == shadingTypeShd )
|
||||
{
|
||||
@ -498,19 +498,19 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
color.SetValue( RGBColor( (int)desc.cvFore, RedLast ).SixDigitHexCode.c_str());
|
||||
color.SetValue( RGBColor( (int)desc.cvFore, RedLast ).SixDigitHexCode);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
color.SetValue( FormatUtils::MapValueToWideString( desc.icoFore, &Global::ColorIdentifier[0][0], 17, 12 ).c_str());
|
||||
color.SetValue( FormatUtils::MapValueToWideString( desc.icoFore, &Global::ColorIdentifier[0][0], 17, 12 ));
|
||||
}
|
||||
|
||||
shd.AppendAttribute( color );
|
||||
|
||||
//pattern
|
||||
XMLTools::XMLAttribute<wchar_t> val( L"w:val" );
|
||||
val.SetValue( getShadingPattern( desc ).c_str());
|
||||
XMLTools::XMLAttribute val( L"w:val" );
|
||||
val.SetValue( getShadingPattern( desc ));
|
||||
shd.AppendAttribute( val );
|
||||
|
||||
parent->RemoveChildByName( L"w:shd" );
|
||||
@ -759,12 +759,12 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::appendDxaElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, const wchar_t* elementValue, bool unique )
|
||||
void PropertiesMapping::appendDxaElement( XMLTools::XMLElement* node, const std::wstring & elementName, const std::wstring & elementValue, bool unique )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> ele( L"w", elementName );
|
||||
XMLTools::XMLAttribute<wchar_t> val( L"w:w", elementValue );
|
||||
XMLTools::XMLElement ele( L"w", elementName );
|
||||
XMLTools::XMLAttribute val( L"w:w", elementValue );
|
||||
ele.AppendAttribute( val );
|
||||
XMLTools::XMLAttribute<wchar_t> type( L"w:type", L"dxa" );
|
||||
XMLTools::XMLAttribute type( L"w:type", L"dxa" );
|
||||
ele.AppendAttribute( type );
|
||||
|
||||
if ( unique )
|
||||
@ -777,7 +777,7 @@ namespace DocFileFormat
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void PropertiesMapping::addOrSetBorder( XMLTools::XMLElement<wchar_t>* pBdr, const XMLTools::XMLElement<wchar_t>* border )
|
||||
void PropertiesMapping::addOrSetBorder( XMLTools::XMLElement* pBdr, const XMLTools::XMLElement* border )
|
||||
{
|
||||
if ( ( pBdr != NULL ) && ( border != NULL ))
|
||||
{
|
||||
|
||||
@ -51,24 +51,26 @@ namespace DocFileFormat
|
||||
|
||||
protected:
|
||||
static void init();
|
||||
void appendFlagAttribute( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* attributeName );
|
||||
virtual void appendFlagElement( XMLTools::XMLElement<wchar_t>* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique );
|
||||
void appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, const wchar_t* attributeValue );
|
||||
void appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, int attributeValue );
|
||||
void appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, short attributeValue );
|
||||
void appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, unsigned short attributeValue );
|
||||
void appendValueAttribute( XMLTools::XMLElement<wchar_t>* node, const wchar_t* attributeName, unsigned char attributeValue );
|
||||
void appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, const wchar_t* elementValue, bool unique );
|
||||
void appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, short elementValue, bool unique );
|
||||
void appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, unsigned short elementValue, bool unique );
|
||||
void appendValueElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, unsigned char elementValue, bool unique );
|
||||
void appendBorderAttributes( BorderCode* brc, XMLTools::XMLElement<wchar_t>* border );
|
||||
void appendShading( XMLTools::XMLElement<wchar_t>* parent, const ShadingDescriptor& desc );
|
||||
std::wstring getBorderType( unsigned char type );
|
||||
std::wstring getShadingPattern( const ShadingDescriptor& shd );
|
||||
void appendDxaElement( XMLTools::XMLElement<wchar_t>* node, const wchar_t* elementName, const wchar_t* elementValue, bool unique );
|
||||
void addOrSetBorder( XMLTools::XMLElement<wchar_t>* pBdr, const XMLTools::XMLElement<wchar_t>* border );
|
||||
virtual void appendFlagElement( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const std::wstring & elementName, bool unique );
|
||||
void appendFlagAttribute ( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const std::wstring & attributeName );
|
||||
|
||||
void appendValueAttribute ( XMLTools::XMLElement* node, const std::wstring & attributeName, const std::wstring & attributeValue );
|
||||
void appendValueAttribute ( XMLTools::XMLElement* node, const std::wstring & attributeName, int attributeValue );
|
||||
void appendValueAttribute ( XMLTools::XMLElement* node, const std::wstring & ttributeName, short attributeValue );
|
||||
void appendValueAttribute ( XMLTools::XMLElement* node, const std::wstring & attributeName, unsigned short attributeValue );
|
||||
void appendValueAttribute ( XMLTools::XMLElement* node, const std::wstring & attributeName, unsigned char attributeValue );
|
||||
void appendValueElement ( XMLTools::XMLElement* node, const std::wstring & elementName, const std::wstring & elementValue, bool unique );
|
||||
void appendValueElement ( XMLTools::XMLElement* node, const std::wstring & elementName, short elementValue, bool unique );
|
||||
void appendValueElement ( XMLTools::XMLElement* node, const std::wstring & elementName, unsigned short elementValue, bool unique );
|
||||
void appendValueElement ( XMLTools::XMLElement* node, const std::wstring & elementName, unsigned char elementValue, bool unique );
|
||||
void appendShading ( XMLTools::XMLElement* parent, const ShadingDescriptor& desc );
|
||||
void appendDxaElement ( XMLTools::XMLElement* node, const std::wstring & elementName, const std::wstring & elementValue, bool unique );
|
||||
void addOrSetBorder ( XMLTools::XMLElement* pBdr, const XMLTools::XMLElement* border );
|
||||
|
||||
void appendBorderAttributes ( BorderCode* brc, XMLTools::XMLElement* border );
|
||||
|
||||
std::wstring getBorderType ( unsigned char type );
|
||||
std::wstring getShadingPattern ( const ShadingDescriptor& shd );
|
||||
protected:
|
||||
|
||||
XMLTools::CStringXmlWriter* m_pXmlWriter;
|
||||
|
||||
@ -59,28 +59,15 @@ namespace DocFileFormat
|
||||
{
|
||||
unsigned char* bytes = FormatUtils::GetBytes( cv );
|
||||
|
||||
// wchar_t rgbColor6[7];
|
||||
// wchar_t rgbColor8[9];
|
||||
//CString rgbColor6;
|
||||
//CString rgbColor8;
|
||||
std::wstringstream rgbColor6, rgbColor8;
|
||||
|
||||
if( order == RedFirst )
|
||||
{
|
||||
//R
|
||||
this->Red = bytes[0];
|
||||
//G
|
||||
this->Green = bytes[1];
|
||||
//B
|
||||
this->Green = bytes[1];
|
||||
this->Blue = bytes[2];
|
||||
//Alpha
|
||||
this->Alpha = bytes[3];
|
||||
this->Alpha = bytes[3];
|
||||
|
||||
//rgbColor6.Format( _T( "%02x%02x%02x" ), /*R*/this->Red, /*G*/this->Green, /*B*/this->Blue );
|
||||
//rgbColor8.Format( _T( "%02x%02x%02x%02x" ), /*R*/this->Red, /*G*/this->Green, /*B*/this->Blue, /*A*/this->Alpha );
|
||||
|
||||
//SixDigitHexCode = rgbColor6;
|
||||
//EightDigitHexCode = rgbColor8;
|
||||
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue;
|
||||
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue % /*A*/this->Alpha;
|
||||
|
||||
@ -89,20 +76,11 @@ namespace DocFileFormat
|
||||
}
|
||||
else if ( order == RedLast )
|
||||
{
|
||||
//R
|
||||
this->Red = bytes[2];
|
||||
//G
|
||||
this->Green = bytes[1];
|
||||
//B
|
||||
this->Blue = bytes[0];
|
||||
//Alpha
|
||||
this->Alpha = bytes[3];
|
||||
this->Alpha = bytes[3];
|
||||
|
||||
//rgbColor6.Format( _T( "%02x%02x%02x" ), /*R*/this->Red, /*G*/this->Green, /*B*/this->Blue );
|
||||
//rgbColor8.Format( _T( "%02x%02x%02x%02x" ), /*R*/this->Red, /*G*/this->Green, /*B*/this->Blue, /*A*/this->Alpha );
|
||||
|
||||
//SixDigitHexCode = rgbColor6;
|
||||
//EightDigitHexCode = rgbColor8;
|
||||
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue;
|
||||
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue % /*A*/this->Alpha;
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ namespace DocFileFormat
|
||||
SectionPropertiesMapping::SectionPropertiesMapping (XMLTools::CStringXmlWriter* pWriter, ConversionContext* pContext, int nSelectProperties) : PropertiesMapping (pWriter)
|
||||
{
|
||||
m_bDeleteNode = TRUE;
|
||||
m_pXmlNode = new XMLTools::XMLElement<wchar_t> (_T("w:sectPr"));
|
||||
m_pXmlNode = new XMLTools::XMLElement (_T("w:sectPr"));
|
||||
|
||||
m_nColumns = 0;
|
||||
m_arrWidth = NULL;
|
||||
@ -53,7 +53,7 @@ namespace DocFileFormat
|
||||
_type = std::wstring (_T("nextPage"));
|
||||
}
|
||||
|
||||
SectionPropertiesMapping::SectionPropertiesMapping (XMLTools::XMLElement<wchar_t>* pBaseNode, ConversionContext* pContext, int nSelectProperties) : PropertiesMapping(NULL)
|
||||
SectionPropertiesMapping::SectionPropertiesMapping (XMLTools::XMLElement* pBaseNode, ConversionContext* pContext, int nSelectProperties) : PropertiesMapping(NULL)
|
||||
{
|
||||
m_bDeleteNode = FALSE;
|
||||
m_pXmlNode = pBaseNode;
|
||||
@ -87,16 +87,16 @@ namespace DocFileFormat
|
||||
{
|
||||
SectionPropertyExceptions* sepx = static_cast<SectionPropertyExceptions*>(visited);
|
||||
|
||||
XMLTools::XMLElement<wchar_t> pgSz (_T("w:pgSz"));
|
||||
XMLTools::XMLElement<wchar_t> pgMar (_T("w:pgMar"));
|
||||
XMLTools::XMLElement<wchar_t> lnNumType (_T("w:lnNumType"));
|
||||
XMLTools::XMLElement<wchar_t> cols (_T("w:cols"));
|
||||
XMLTools::XMLElement<wchar_t> docGrid (_T("w:docGrid"));
|
||||
XMLTools::XMLElement<wchar_t> pgBorders (_T("w:pgBorders"));
|
||||
XMLTools::XMLElement<wchar_t> paperSrc (_T("w:paperSrc"));
|
||||
XMLTools::XMLElement<wchar_t> footnotePr(_T("w:footnotePr"));
|
||||
XMLTools::XMLElement<wchar_t> endnotePr (_T("w:endnotePr"));
|
||||
XMLTools::XMLElement<wchar_t> pgNumType (_T("w:pgNumType"));
|
||||
XMLTools::XMLElement pgSz (_T("w:pgSz"));
|
||||
XMLTools::XMLElement pgMar (_T("w:pgMar"));
|
||||
XMLTools::XMLElement lnNumType (_T("w:lnNumType"));
|
||||
XMLTools::XMLElement cols (_T("w:cols"));
|
||||
XMLTools::XMLElement docGrid (_T("w:docGrid"));
|
||||
XMLTools::XMLElement pgBorders (_T("w:pgBorders"));
|
||||
XMLTools::XMLElement paperSrc (_T("w:paperSrc"));
|
||||
XMLTools::XMLElement footnotePr(_T("w:footnotePr"));
|
||||
XMLTools::XMLElement endnotePr (_T("w:endnotePr"));
|
||||
XMLTools::XMLElement pgNumType (_T("w:pgNumType"));
|
||||
|
||||
HeaderAndFooterTable* pTable = _ctx->_doc->headerAndFooterTable;
|
||||
|
||||
@ -157,7 +157,7 @@ namespace DocFileFormat
|
||||
case sprmSDxaLeft:
|
||||
{
|
||||
_marLeft = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
appendValueAttribute( &pgMar, _T( "w:left" ), FormatUtils::IntToWideString( _marLeft ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:left" ), FormatUtils::IntToWideString( _marLeft ) );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -165,38 +165,38 @@ namespace DocFileFormat
|
||||
case sprmSDxaRight:
|
||||
{
|
||||
_marRight = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
appendValueAttribute( &pgMar, _T( "w:right" ), FormatUtils::IntToWideString( _marRight ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:right" ), FormatUtils::IntToWideString( _marRight ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldSDyaTop:
|
||||
case sprmSDyaTop:
|
||||
//top margin
|
||||
appendValueAttribute( &pgMar, _T( "w:top" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:top" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDyaBottom:
|
||||
case sprmSDyaBottom:
|
||||
//bottom margin
|
||||
appendValueAttribute( &pgMar, _T( "w:bottom" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:bottom" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDzaGutter:
|
||||
case sprmSDzaGutter:
|
||||
//gutter margin
|
||||
appendValueAttribute( &pgMar, _T( "w:gutter" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:gutter" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDyaHdrTop:
|
||||
case sprmSDyaHdrTop:
|
||||
//header margin
|
||||
appendValueAttribute( &pgMar, _T( "w:header"), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:header"), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDyaHdrBottom:
|
||||
case sprmSDyaHdrBottom:
|
||||
//footer margin
|
||||
appendValueAttribute( &pgMar, _T( "w:footer" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgMar, _T( "w:footer" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
//page size and orientation
|
||||
@ -204,30 +204,30 @@ namespace DocFileFormat
|
||||
case sprmSXaPage:
|
||||
{
|
||||
_pgWidth = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
appendValueAttribute( &pgSz, _T( "w:w" ), FormatUtils::IntToWideString( _pgWidth ).c_str() );
|
||||
appendValueAttribute( &pgSz, _T( "w:w" ), FormatUtils::IntToWideString( _pgWidth ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldSYaPage:
|
||||
case sprmSYaPage:
|
||||
appendValueAttribute( &pgSz, _T( "w:h" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &pgSz, _T( "w:h" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSBOrientation:
|
||||
case sprmSBOrientation:
|
||||
//orientation
|
||||
appendValueAttribute( &pgSz, _T( "w:orient" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &PageOrientationMap[0][0], 3, 10 ).c_str() );
|
||||
appendValueAttribute( &pgSz, _T( "w:orient" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &PageOrientationMap[0][0], 3, 10 ) );
|
||||
break;
|
||||
|
||||
//paper source
|
||||
case sprmOldSDmBinFirst:
|
||||
case sprmSDmBinFirst:
|
||||
appendValueAttribute( &paperSrc, _T( "w:first" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &paperSrc, _T( "w:first" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDmBinOther:
|
||||
case sprmSDmBinOther:
|
||||
appendValueAttribute( &paperSrc, _T( "w:other" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &paperSrc, _T( "w:other" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
//page borders
|
||||
@ -235,7 +235,7 @@ namespace DocFileFormat
|
||||
case sprmSBrcTop:
|
||||
{
|
||||
//top
|
||||
XMLTools::XMLElement<wchar_t> topBorder( _T( "w:top" ) );
|
||||
XMLTools::XMLElement topBorder( _T( "w:top" ) );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &topBorder );
|
||||
addOrSetBorder( &pgBorders, &topBorder);
|
||||
@ -245,7 +245,7 @@ namespace DocFileFormat
|
||||
case sprmSBrcLeft80:
|
||||
case sprmSBrcLeft:
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> leftBorder( _T( "w:left" ) );
|
||||
XMLTools::XMLElement leftBorder( _T( "w:left" ) );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &leftBorder);
|
||||
addOrSetBorder( &pgBorders, &leftBorder);
|
||||
@ -256,7 +256,7 @@ namespace DocFileFormat
|
||||
case sprmSBrcBottom:
|
||||
{
|
||||
//left
|
||||
XMLTools::XMLElement<wchar_t> bottomBorder( _T( "w:bottom" ) );
|
||||
XMLTools::XMLElement bottomBorder( _T( "w:bottom" ) );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &bottomBorder );
|
||||
addOrSetBorder( &pgBorders, &bottomBorder);
|
||||
@ -267,7 +267,7 @@ namespace DocFileFormat
|
||||
case sprmSBrcRight:
|
||||
{
|
||||
//left
|
||||
XMLTools::XMLElement<wchar_t> rightBorder( _T( "w:right" ) );
|
||||
XMLTools::XMLElement rightBorder( _T( "w:right" ) );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &rightBorder);
|
||||
addOrSetBorder( &pgBorders, &rightBorder);
|
||||
@ -276,12 +276,12 @@ namespace DocFileFormat
|
||||
|
||||
case sprmSRncFtn:
|
||||
//restart code
|
||||
appendValueElement( &footnotePr, _T( "numRestart" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ), &FootnoteRestartCodeMap[0][0], 3, 11 ).c_str(), true );
|
||||
appendValueElement( &footnotePr, _T( "numRestart" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ), &FootnoteRestartCodeMap[0][0], 3, 11 ), true );
|
||||
break;
|
||||
|
||||
case sprmSRncEdn:
|
||||
//restart code
|
||||
appendValueElement( &endnotePr, _T( "numRestart" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ), &EndnoteRestartCodeMap[0][0], 3, 11 ).c_str(), true );
|
||||
appendValueElement( &endnotePr, _T( "numRestart" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ), &EndnoteRestartCodeMap[0][0], 3, 11 ), true );
|
||||
break;
|
||||
|
||||
case sprmSFpc:
|
||||
@ -305,31 +305,31 @@ namespace DocFileFormat
|
||||
}break;
|
||||
|
||||
case sprmSNfcFtnRef:
|
||||
appendValueElement( &footnotePr, _T( "numFmt" ), NumberingMapping::GetNumberFormatWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( &footnotePr, _T( "numFmt" ), NumberingMapping::GetNumberFormatWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
break;
|
||||
|
||||
case sprmSNfcEdnRef:
|
||||
appendValueElement( &endnotePr, _T( "numFmt" ), NumberingMapping::GetNumberFormatWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( &endnotePr, _T( "numFmt" ), NumberingMapping::GetNumberFormatWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
break;
|
||||
|
||||
case sprmSNFtn:
|
||||
appendValueElement( &footnotePr, _T( "numStart" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( &footnotePr, _T( "numStart" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
break;
|
||||
|
||||
case sprmSNEdn:
|
||||
appendValueElement( &endnotePr, _T( "numStart" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( &endnotePr, _T( "numStart" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
break;
|
||||
|
||||
case sprmSDyaLinePitch:
|
||||
appendValueAttribute( &docGrid, _T( "w:linePitch" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &docGrid, _T( "w:linePitch" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmSDxtCharSpace:
|
||||
appendValueAttribute( &docGrid, _T( "w:charSpace" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute( &docGrid, _T( "w:charSpace" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmSClm:
|
||||
appendValueAttribute( &docGrid, _T( "w:type" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize ), &DocGridTypeMap[0][0], 4, 14 ).c_str() );
|
||||
appendValueAttribute( &docGrid, _T( "w:type" ), FormatUtils::MapValueToWideString( FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize ), &DocGridTypeMap[0][0], 4, 14 ) );
|
||||
break;
|
||||
|
||||
case sprmOldSCcolumns:
|
||||
@ -340,14 +340,14 @@ namespace DocFileFormat
|
||||
RELEASEARRAYOBJECTS (m_arrSpace);
|
||||
m_arrSpace = new short [m_nColumns];
|
||||
|
||||
appendValueAttribute (&cols, _T( "w:num" ), FormatUtils::IntToWideString (m_nColumns).c_str());
|
||||
appendValueAttribute (&cols, _T( "w:num" ), FormatUtils::IntToWideString (m_nColumns));
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldSDxaColumns:
|
||||
case sprmSDxaColumns:
|
||||
//evenly spaced columns
|
||||
appendValueAttribute (&cols, _T( "w:space" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ).c_str() );
|
||||
appendValueAttribute (&cols, _T( "w:space" ), FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
break;
|
||||
|
||||
case sprmOldSDxaColWidth:
|
||||
@ -403,12 +403,12 @@ namespace DocFileFormat
|
||||
|
||||
case sprmOldSVjc:
|
||||
case sprmSVjc:
|
||||
appendValueElement (m_pXmlNode, _T( "vAlign" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &TextVerticalAlignment[0][0], 4, 7 ).c_str(), true );
|
||||
appendValueElement (m_pXmlNode, _T( "vAlign" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &TextVerticalAlignment[0][0], 4, 7 ), true );
|
||||
break;
|
||||
|
||||
case sprmOldSNfcPgn:
|
||||
case sprmSNfcPgn:
|
||||
appendValueAttribute( &pgNumType, _T( "w:fmt" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &PageNumberFormatCodeMap[0][0], 42, 29 ).c_str() );
|
||||
appendValueAttribute( &pgNumType, _T( "w:fmt" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &PageNumberFormatCodeMap[0][0], 42, 29 ) );
|
||||
break;
|
||||
|
||||
case sprmOldSPgnStart:
|
||||
@ -439,7 +439,7 @@ namespace DocFileFormat
|
||||
SLncOperand mode = (SLncOperand)FormatUtils::BytesToUChar (iter->Arguments, 0, iter->argumentsSize);
|
||||
mode = (SLncOperand)(std::min)((std::max)(mode,lncPerPage),lncContinue);
|
||||
|
||||
appendValueAttribute (&lnNumType, _T("w:restart"), LineNumberRestart[mode].c_str() );
|
||||
appendValueAttribute (&lnNumType, _T("w:restart"), LineNumberRestart[mode] );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -461,12 +461,12 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
if (bWasSprmSFPgnRestart && false == wsSprmSPgnStart.empty() )
|
||||
appendValueAttribute( &pgNumType, _T( "w:start" ), wsSprmSPgnStart.c_str() );
|
||||
appendValueAttribute( &pgNumType, _T( "w:start" ), wsSprmSPgnStart );
|
||||
|
||||
// build the columns
|
||||
if (m_arrWidth)
|
||||
{
|
||||
XMLTools::XMLAttribute<wchar_t> equalWidth( _T( "w:equalWidth" ), _T( "0" ) );
|
||||
XMLTools::XMLAttribute equalWidth( _T( "w:equalWidth" ), _T( "0" ) );
|
||||
cols.AppendAttribute( equalWidth );
|
||||
|
||||
//calculate the width of the last column:
|
||||
@ -486,9 +486,9 @@ namespace DocFileFormat
|
||||
|
||||
for (int i = 0; i < m_nColumns; ++i)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> col (_T( "w:col" ));
|
||||
XMLTools::XMLAttribute<wchar_t> w (_T( "w:w" ), FormatUtils::IntToWideString (m_arrWidth[i]).c_str());
|
||||
XMLTools::XMLAttribute<wchar_t> space (_T( "w:space" ), FormatUtils::IntToWideString (m_arrSpace[i]).c_str());
|
||||
XMLTools::XMLElement col (_T( "w:col" ));
|
||||
XMLTools::XMLAttribute w (_T( "w:w" ), FormatUtils::IntToWideString (m_arrWidth[i]));
|
||||
XMLTools::XMLAttribute space (_T( "w:space" ), FormatUtils::IntToWideString (m_arrSpace[i]));
|
||||
|
||||
col.AppendAttribute (w);
|
||||
col.AppendAttribute (space);
|
||||
@ -496,7 +496,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
appendValueElement (m_pXmlNode, _T( "type" ), _type.c_str(), true );
|
||||
appendValueElement (m_pXmlNode, _T( "type" ), _type, true );
|
||||
|
||||
if (footnotePr.GetChildCount())
|
||||
m_pXmlNode->AppendChild (footnotePr);
|
||||
@ -529,12 +529,12 @@ namespace DocFileFormat
|
||||
m_pXmlNode->AppendChild (pgNumType);
|
||||
|
||||
if (m_pXmlWriter)
|
||||
m_pXmlWriter->WriteString (m_pXmlNode->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString (m_pXmlNode->GetXMLString() );
|
||||
}
|
||||
|
||||
void SectionPropertiesMapping::AppendRef (XMLTools::XMLElement<wchar_t> *parent, const wchar_t* element, const wchar_t* refType, const wchar_t* refId)
|
||||
void SectionPropertiesMapping::AppendRef (XMLTools::XMLElement *parent, const std::wstring& element, const std::wstring& refType, const std::wstring& refId)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> headerRef (_T("w"), element);
|
||||
XMLTools::XMLElement headerRef (_T("w"), element);
|
||||
|
||||
headerRef.AppendAttribute (_T("w:type"), refType);
|
||||
headerRef.AppendAttribute (_T("r:id"), refId);
|
||||
@ -576,7 +576,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
AppendRef (m_pXmlNode, StoryType.c_str(), Story.c_str(), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString(nRelID) ).c_str() );
|
||||
AppendRef (m_pXmlNode, StoryType, Story, ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString(nRelID) ) );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ namespace DocFileFormat
|
||||
// Creates a new SectionPropertiesMapping which writes the properties to the given writer
|
||||
SectionPropertiesMapping (XMLTools::CStringXmlWriter* writer, ConversionContext* ctx, int nSelectProperties);
|
||||
// Creates a new SectionPropertiesMapping which appends the properties to a given node.
|
||||
SectionPropertiesMapping (XMLTools::XMLElement<wchar_t>* sectPr, ConversionContext* ctx, int nSelectProperties);
|
||||
SectionPropertiesMapping (XMLTools::XMLElement* sectPr, ConversionContext* ctx, int nSelectProperties);
|
||||
virtual ~SectionPropertiesMapping();
|
||||
|
||||
// Converts the given SectionPropertyExceptions
|
||||
@ -167,11 +167,11 @@ namespace DocFileFormat
|
||||
const std::wstring & get_section_type();
|
||||
private:
|
||||
|
||||
void AppendRef (XMLTools::XMLElement<wchar_t>* pBaseNode, const wchar_t* element, const wchar_t* refType, const wchar_t* refId);
|
||||
void AppendRef (XMLTools::XMLElement* pBaseNode, const std::wstring& element, const std::wstring& refType, const std::wstring& refId);
|
||||
|
||||
bool WriteSectionStory (CharacterRange* pRange, const std::wstring& StoryType, const std::wstring& Story);
|
||||
|
||||
XMLTools::XMLElement<wchar_t>* m_pXmlNode;
|
||||
XMLTools::XMLElement* m_pXmlNode;
|
||||
bool m_bDeleteNode;
|
||||
|
||||
int m_nColumns;
|
||||
|
||||
@ -56,11 +56,11 @@ namespace DocFileFormat
|
||||
|
||||
//zoom
|
||||
m_oXmlWriter.WriteNodeBegin ( L"w:zoom", TRUE );
|
||||
m_oXmlWriter.WriteAttribute ( L"w:percent", FormatUtils::IntToWideString( dop->wScaleSaved ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute ( L"w:percent", FormatUtils::IntToWideString( dop->wScaleSaved ) );
|
||||
|
||||
if ( dop->zkSaved != 0 )
|
||||
{
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::MapValueToWideString( dop->zkSaved, &ZoomTypeMap[0][0], 3, 9 ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::MapValueToWideString( dop->zkSaved, &ZoomTypeMap[0][0], 3, 9 ) );
|
||||
}
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
@ -95,7 +95,7 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//proof state
|
||||
XMLTools::XMLElement<wchar_t> proofState( L"w:proofState" );
|
||||
XMLTools::XMLElement proofState( L"w:proofState" );
|
||||
|
||||
if ( dop->fGramAllClean )
|
||||
{
|
||||
@ -104,31 +104,31 @@ namespace DocFileFormat
|
||||
|
||||
if ( proofState.GetAttributeCount() > 0 )
|
||||
{
|
||||
m_oXmlWriter.WriteString( proofState.GetXMLString().c_str() );
|
||||
m_oXmlWriter.WriteString( proofState.GetXMLString() );
|
||||
}
|
||||
|
||||
//stylePaneFormatFilter
|
||||
if ( dop->grfFmtFilter != 0 )
|
||||
{
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:stylePaneFormatFilter", TRUE );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( dop->grfFmtFilter, L"%04x" ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( dop->grfFmtFilter, L"%04x" ) );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
}
|
||||
|
||||
//default tab stop
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:defaultTabStop", TRUE );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dxaTab ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dxaTab ) );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
//drawing grid
|
||||
if( dop->dogrid != NULL )
|
||||
{
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:displayHorizontalDrawingGridEvery", TRUE );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dogrid->dxGridDisplay ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dogrid->dxGridDisplay ) );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:displayVerticalDrawingGridEvery", TRUE );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dogrid->dyGridDisplay ).c_str() );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", FormatUtils::IntToWideString( dop->dogrid->dyGridDisplay ) );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
if ( dop->dogrid->fFollowMargins == false )
|
||||
@ -149,26 +149,26 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//footnote properties
|
||||
XMLTools::XMLElement<wchar_t> footnotePr( L"w:footnotePr" );
|
||||
XMLTools::XMLElement footnotePr( L"w:footnotePr" );
|
||||
|
||||
if ( dop->nFtn != 0 )
|
||||
{
|
||||
appendValueAttribute( &footnotePr, L"w:numStart", FormatUtils::IntToWideString( dop->nFtn ).c_str() );
|
||||
appendValueAttribute( &footnotePr, L"w:numStart", FormatUtils::IntToWideString( dop->nFtn ) );
|
||||
}
|
||||
|
||||
if ( dop->rncFtn != 0 )
|
||||
{
|
||||
appendValueAttribute( &footnotePr, L"w:numRestart", FormatUtils::IntToWideString( dop->rncFtn ).c_str() );
|
||||
appendValueAttribute( &footnotePr, L"w:numRestart", FormatUtils::IntToWideString( dop->rncFtn ) );
|
||||
}
|
||||
|
||||
if ( dop->Fpc != 0 )
|
||||
{
|
||||
appendValueAttribute( &footnotePr, L"w:pos", FormatUtils::MapValueToWideString( dop->Fpc, &FootnotePositionMap[0][0], 4, 12 ).c_str() );
|
||||
appendValueAttribute( &footnotePr, L"w:pos", FormatUtils::MapValueToWideString( dop->Fpc, &FootnotePositionMap[0][0], 4, 12 ) );
|
||||
}
|
||||
|
||||
if ( footnotePr.GetAttributeCount() > 0 )
|
||||
{
|
||||
m_oXmlWriter.WriteString( footnotePr.GetXMLString().c_str() );
|
||||
m_oXmlWriter.WriteString( footnotePr.GetXMLString() );
|
||||
}
|
||||
|
||||
|
||||
@ -549,4 +549,4 @@ namespace DocFileFormat
|
||||
|
||||
m_oXmlWriter.WriteNodeEnd( L"w:compat" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ namespace DocFileFormat
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:style" ), TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:type" ), FormatUtils::MapValueToWideString( (*iter)->stk, &StyleKindMap[0][0], 5, 10 ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:type" ), FormatUtils::MapValueToWideString( (*iter)->stk, &StyleKindMap[0][0], 5, 10 ));
|
||||
|
||||
//!!!TODO: There is NO default styles in DOC file. So, we can't choose one of them!!!
|
||||
/*if ( ( (*iter)->sti != Null ) && ( (*iter)->sti != User ) )
|
||||
@ -95,19 +95,19 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:default" ), _T( "1" ) );
|
||||
}*/
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:styleId" ), FormatUtils::XmlEncode(MakeStyleId( *iter )).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:styleId" ), FormatUtils::XmlEncode(MakeStyleId( *iter )));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
|
||||
// <w:name val="" />
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:name" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(getStyleName( *iter ), true ).c_str());
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(getStyleName( *iter ), true ));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
|
||||
// <w:basedOn val="" />
|
||||
if ( ( (*iter)->istdBase != 4095 ) && ( (*iter)->istdBase < sheet->Styles->size() ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:basedOn" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdBase ) )).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdBase ) )));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
@ -115,7 +115,7 @@ namespace DocFileFormat
|
||||
if ( (*iter)->istdNext < sheet->Styles->size() )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:next" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdNext ) )).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdNext ) )));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ namespace DocFileFormat
|
||||
if ( (*iter)->istdLink < sheet->Styles->size() )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:link" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdLink ) )).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), FormatUtils::XmlEncode(MakeStyleId( sheet->Styles->at( (*iter)->istdLink ) )));
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE );
|
||||
}
|
||||
|
||||
@ -242,19 +242,19 @@ namespace DocFileFormat
|
||||
|
||||
FontFamilyName* ffnAscii = static_cast<FontFamilyName*>( m_document->FontTable->operator [] ( sheet->stshi->rgftcStandardChpStsh[0] ) );
|
||||
if (ffnAscii)
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ascii" ), FormatUtils::XmlEncode(ffnAscii->xszFtn).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:ascii" ), FormatUtils::XmlEncode(ffnAscii->xszFtn, true));
|
||||
|
||||
FontFamilyName* ffnAsia = static_cast<FontFamilyName*>( m_document->FontTable->operator [] ( sheet->stshi->rgftcStandardChpStsh[1] ) );
|
||||
if (ffnAsia)
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:eastAsia" ), FormatUtils::XmlEncode(ffnAsia->xszFtn).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:eastAsia" ), FormatUtils::XmlEncode(ffnAsia->xszFtn, true));
|
||||
|
||||
FontFamilyName* ffnAnsi = static_cast<FontFamilyName*>( m_document->FontTable->operator [] ( sheet->stshi->rgftcStandardChpStsh[2] ) );
|
||||
if (ffnAnsi)
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:hAnsi" ), FormatUtils::XmlEncode(ffnAnsi->xszFtn).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:hAnsi" ), FormatUtils::XmlEncode(ffnAnsi->xszFtn, true));
|
||||
|
||||
FontFamilyName* ffnComplex = static_cast<FontFamilyName*>( m_document->FontTable->operator [] ( sheet->stshi->rgftcStandardChpStsh[3] ) );
|
||||
if (ffnComplex)
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:cs" ), FormatUtils::XmlEncode(ffnComplex->xszFtn).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:cs" ), FormatUtils::XmlEncode(ffnComplex->xszFtn, true));
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:rFonts" ) );
|
||||
@ -263,7 +263,7 @@ namespace DocFileFormat
|
||||
std::wstring langcode = LanguageIdMapping::getLanguageCode( &langid );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "w:lang" ), TRUE );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), langcode.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "w:val" ), langcode);
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "w:lang" ) );
|
||||
|
||||
|
||||
@ -49,9 +49,9 @@ namespace DocFileFormat
|
||||
_brcRight = NULL;
|
||||
_brcBottom = NULL;
|
||||
|
||||
_tcPr = new XMLTools::XMLElement<wchar_t>(L"w:tcPr");
|
||||
_tcMar = new XMLTools::XMLElement<wchar_t>(L"w:tcMar");
|
||||
_tcBorders = new XMLTools::XMLElement<wchar_t>(L"w:tcBorders");
|
||||
_tcPr = new XMLTools::XMLElement(L"w:tcPr");
|
||||
_tcMar = new XMLTools::XMLElement(L"w:tcMar");
|
||||
_tcBorders = new XMLTools::XMLElement(L"w:tcBorders");
|
||||
|
||||
_ftsWidth = Global::nil;
|
||||
}
|
||||
@ -89,7 +89,7 @@ namespace DocFileFormat
|
||||
_tGrid = tdef.rgdxaCenter;
|
||||
_tcDef = tdef.rgTc80[(std::min)(_cellIndex, (int)tdef.rgTc80.size() - 1)]; // NOTE: fix for crash
|
||||
|
||||
appendValueElement( _tcPr, L"textDirection", FormatUtils::MapValueToWideString( _tcDef.textFlow, &Global::TextFlowMap[0][0], 6, 6 ).c_str(), false );
|
||||
appendValueElement( _tcPr, L"textDirection", FormatUtils::MapValueToWideString( _tcDef.textFlow, &Global::TextFlowMap[0][0], 6, 6 ), false );
|
||||
|
||||
if ( _tcDef.vertMerge == Global::fvmMerge )
|
||||
{
|
||||
@ -100,7 +100,7 @@ namespace DocFileFormat
|
||||
appendValueElement( _tcPr, L"vMerge", L"restart", false );
|
||||
}
|
||||
|
||||
appendValueElement( _tcPr, L"vAlign", FormatUtils::MapValueToWideString( _tcDef.vertAlign, &Global::VerticalAlignMap[0][0], 3, 7 ).c_str(), false );
|
||||
appendValueElement( _tcPr, L"vAlign", FormatUtils::MapValueToWideString( _tcDef.vertAlign, &Global::VerticalAlignMap[0][0], 3, 7 ), false );
|
||||
|
||||
if ( _tcDef.fFitText )
|
||||
{
|
||||
@ -145,22 +145,22 @@ namespace DocFileFormat
|
||||
{
|
||||
if ( FormatUtils::GetBitFromInt( iter->Arguments[2], 0 ) == true )
|
||||
{
|
||||
appendDxaElement( _tcMar, L"top", FormatUtils::IntToWideString( wMargin ).c_str(), true );
|
||||
appendDxaElement( _tcMar, L"top", FormatUtils::IntToWideString( wMargin ), true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::GetBitFromInt( iter->Arguments[2], 1 ) == true )
|
||||
{
|
||||
appendDxaElement( _tcMar, L"left", FormatUtils::IntToWideString( wMargin ).c_str(), true );
|
||||
appendDxaElement( _tcMar, L"left", FormatUtils::IntToWideString( wMargin ), true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::GetBitFromInt( iter->Arguments[2], 2 ) == true )
|
||||
{
|
||||
appendDxaElement( _tcMar, L"bottom", FormatUtils::IntToWideString( wMargin ).c_str(), true );
|
||||
appendDxaElement( _tcMar, L"bottom", FormatUtils::IntToWideString( wMargin ), true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::GetBitFromInt( iter->Arguments[2], 3 ) == true )
|
||||
{
|
||||
appendDxaElement( _tcMar, L"right", FormatUtils::IntToWideString( wMargin ).c_str(), true );
|
||||
appendDxaElement( _tcMar, L"right", FormatUtils::IntToWideString( wMargin ), true );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -210,7 +210,7 @@ namespace DocFileFormat
|
||||
|
||||
if ((_cellIndex >= first) && (_cellIndex < lim))
|
||||
{
|
||||
appendValueElement(_tcPr, L"vAlign", FormatUtils::MapValueToWideString( (VerticalCellAlignment)iter->Arguments[2], &VerticalCellAlignmentMap[0][0], 3, 7 ).c_str(), true );
|
||||
appendValueElement(_tcPr, L"vAlign", FormatUtils::MapValueToWideString( (VerticalCellAlignment)iter->Arguments[2], &VerticalCellAlignmentMap[0][0], 3, 7 ), true );
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -222,7 +222,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( ( _cellIndex >= first ) && ( _cellIndex < lim ) )
|
||||
{
|
||||
appendValueElement( _tcPr, L"tcFitText", FormatUtils::IntToWideString( iter->Arguments[2] ).c_str(), true );
|
||||
appendValueElement( _tcPr, L"tcFitText", FormatUtils::IntToWideString( iter->Arguments[2] ), true );
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -271,10 +271,11 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//width
|
||||
XMLTools::XMLElement<wchar_t> tcW( L"w:tcW" );
|
||||
XMLTools::XMLAttribute<wchar_t> tcWType( L"w:type", FormatUtils::MapValueToWideString( _ftsWidth, &Global::CellWidthTypeMap[0][0], 4, 5 ).c_str() );
|
||||
XMLTools::XMLAttribute<wchar_t> tcWVal( L"w:w", FormatUtils::IntToWideString( _width ).c_str() );
|
||||
tcW.AppendAttribute( tcWType );
|
||||
XMLTools::XMLElement tcW ( L"w:tcW" );
|
||||
XMLTools::XMLAttribute tcWType ( L"w:type", FormatUtils::MapValueToWideString( _ftsWidth, &Global::CellWidthTypeMap[0][0], 4, 5 ) );
|
||||
XMLTools::XMLAttribute tcWVal ( L"w:w", FormatUtils::IntToWideString( _width ) );
|
||||
|
||||
tcW.AppendAttribute( tcWType );
|
||||
tcW.AppendAttribute( tcWVal );
|
||||
_tcPr->AppendChild( tcW );
|
||||
|
||||
@ -298,7 +299,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
appendValueElement( _tcPr, L"gridSpan", FormatUtils::IntToWideString( _gridSpan ).c_str(), true );
|
||||
appendValueElement( _tcPr, L"gridSpan", FormatUtils::IntToWideString( _gridSpan ), true );
|
||||
}
|
||||
|
||||
//append margins
|
||||
@ -310,28 +311,28 @@ namespace DocFileFormat
|
||||
//append borders
|
||||
if (_brcTop)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> topBorder( L"w:top" );
|
||||
XMLTools::XMLElement topBorder( L"w:top" );
|
||||
appendBorderAttributes(_brcTop, &topBorder);
|
||||
addOrSetBorder(_tcBorders, &topBorder );
|
||||
}
|
||||
|
||||
if (_brcLeft )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> leftBorder( L"w:left" );
|
||||
XMLTools::XMLElement leftBorder( L"w:left" );
|
||||
appendBorderAttributes(_brcLeft, &leftBorder);
|
||||
addOrSetBorder(_tcBorders, &leftBorder);
|
||||
}
|
||||
|
||||
if (_brcBottom)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> bottomBorder( L"w:bottom" );
|
||||
XMLTools::XMLElement bottomBorder( L"w:bottom" );
|
||||
appendBorderAttributes(_brcBottom, &bottomBorder);
|
||||
addOrSetBorder(_tcBorders, &bottomBorder);
|
||||
}
|
||||
|
||||
if (_brcRight)
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> rightBorder( L"w:right" );
|
||||
XMLTools::XMLElement rightBorder( L"w:right" );
|
||||
appendBorderAttributes( _brcRight, &rightBorder );
|
||||
addOrSetBorder( _tcBorders, &rightBorder );
|
||||
}
|
||||
@ -343,7 +344,7 @@ namespace DocFileFormat
|
||||
|
||||
//write Properties
|
||||
if ((_tcPr->GetChildCount() > 0) || (_tcPr->GetAttributeCount() > 0))
|
||||
m_pXmlWriter->WriteString(_tcPr->GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(_tcPr->GetXMLString());
|
||||
}
|
||||
|
||||
void TableCellPropertiesMapping::apppendCellShading (unsigned char* sprmArg, int size, int cellIndex)
|
||||
|
||||
@ -77,9 +77,9 @@ namespace DocFileFormat
|
||||
int _gridIndex;
|
||||
int _cellIndex;
|
||||
|
||||
XMLTools::XMLElement<wchar_t>* _tcPr;
|
||||
XMLTools::XMLElement<wchar_t>* _tcMar;
|
||||
XMLTools::XMLElement<wchar_t>* _tcBorders;
|
||||
XMLTools::XMLElement* _tcPr;
|
||||
XMLTools::XMLElement* _tcMar;
|
||||
XMLTools::XMLElement* _tcBorders;
|
||||
|
||||
const std::vector<short>* _grid;
|
||||
std::vector<short> _tGrid;
|
||||
|
||||
@ -40,8 +40,8 @@ namespace DocFileFormat
|
||||
_isTableStyleNeeded(isTableStyleNeeded)
|
||||
{
|
||||
_styles = styles;
|
||||
_tblPr = new XMLTools::XMLElement<wchar_t>( _T( "w:tblPr" ) );
|
||||
_tblBorders = new XMLTools::XMLElement<wchar_t>( _T( "w:tblBorders" ) );
|
||||
_tblPr = new XMLTools::XMLElement( _T( "w:tblPr" ) );
|
||||
_tblBorders = new XMLTools::XMLElement( _T( "w:tblBorders" ) );
|
||||
_grid = grid;
|
||||
}
|
||||
TablePropertiesMapping::~TablePropertiesMapping()
|
||||
@ -63,10 +63,10 @@ namespace DocFileFormat
|
||||
{
|
||||
TablePropertyExceptions* tapx = static_cast<TablePropertyExceptions*>( visited );
|
||||
|
||||
XMLTools::XMLElement<wchar_t> tblCellMar ( _T( "w:tblCellMar" ) );
|
||||
XMLTools::XMLElement<wchar_t> tblLayout ( _T( "w:tblLayout" ) );
|
||||
XMLTools::XMLElement<wchar_t> tblpPr ( _T( "w:tblpPr" ) );
|
||||
XMLTools::XMLAttribute<wchar_t> layoutType ( _T( "w:type" ), _T( "fixed" ) );
|
||||
XMLTools::XMLElement tblCellMar ( _T( "w:tblCellMar" ) );
|
||||
XMLTools::XMLElement tblLayout ( _T( "w:tblLayout" ) );
|
||||
XMLTools::XMLElement tblpPr ( _T( "w:tblpPr" ) );
|
||||
XMLTools::XMLAttribute layoutType ( _T( "w:type" ), _T( "fixed" ) );
|
||||
bool bLayoutFixed = true;
|
||||
|
||||
short tblIndent = 0;
|
||||
@ -109,10 +109,10 @@ namespace DocFileFormat
|
||||
unsigned char fts = iter->Arguments[0];
|
||||
short width = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
|
||||
XMLTools::XMLElement<wchar_t> tblW( _T( "w:tblW" ) );
|
||||
XMLTools::XMLElement tblW( _T( "w:tblW" ) );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> w( _T( "w:w" ), FormatUtils::IntToWideString( width ).c_str() );
|
||||
XMLTools::XMLAttribute<wchar_t> type( _T( "w:type" ), FormatUtils::MapValueToWideString( fts, &WidthType[0][0], 4, 5 ).c_str() );
|
||||
XMLTools::XMLAttribute w( _T( "w:w" ), FormatUtils::IntToWideString( width ) );
|
||||
XMLTools::XMLAttribute type( _T( "w:type" ), FormatUtils::MapValueToWideString( fts, &WidthType[0][0], 4, 5 ) );
|
||||
|
||||
tblW.AppendAttribute( type );
|
||||
tblW.AppendAttribute( w );
|
||||
@ -126,7 +126,7 @@ namespace DocFileFormat
|
||||
case sprmTJcRow:
|
||||
{ //justification
|
||||
|
||||
appendValueElement( _tblPr, _T( "jc" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::JustificationCode[0][0], 10, 15 ).c_str(), true );
|
||||
appendValueElement( _tblPr, _T( "jc" ), FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::JustificationCode[0][0], 10, 15 ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -150,7 +150,7 @@ namespace DocFileFormat
|
||||
|
||||
if( id != std::wstring( _T( "TableNormal" )) && !id.empty() )
|
||||
{
|
||||
appendValueElement( _tblPr, _T( "tblStyle" ), id.c_str(), true );
|
||||
appendValueElement( _tblPr, _T( "tblStyle" ), id, true );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -168,7 +168,7 @@ namespace DocFileFormat
|
||||
case sprmTTlp:
|
||||
{ //table look
|
||||
|
||||
appendValueElement( _tblPr, _T( "tblLook" ), FormatUtils::IntToFormattedWideString( FormatUtils::BytesToInt16( iter->Arguments, 2, iter->argumentsSize ), _T( "%04x" ) ).c_str(), true );
|
||||
appendValueElement( _tblPr, _T( "tblLook" ), FormatUtils::IntToFormattedWideString( FormatUtils::BytesToInt16( iter->Arguments, 2, iter->argumentsSize ), _T( "%04x" ) ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -194,7 +194,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x01 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "top" ), strValue.c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "top" ), strValue, true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x02 ) )
|
||||
@ -204,7 +204,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x04 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "bottom" ), strValue.c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "bottom" ), strValue, true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x08 ) )
|
||||
@ -238,7 +238,7 @@ namespace DocFileFormat
|
||||
tblOverlapVal = std::wstring( _T( "never" ) );
|
||||
}
|
||||
|
||||
appendValueElement( _tblPr, _T( "tblOverlap" ), tblOverlapVal.c_str(), true );
|
||||
appendValueElement( _tblPr, _T( "tblOverlap" ), tblOverlapVal, true );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -332,11 +332,11 @@ namespace DocFileFormat
|
||||
{
|
||||
unsigned char flag = ( iter->Arguments[0] & 0x30 ) >> 4;
|
||||
|
||||
appendValueAttribute( &tblpPr, _T( "w:vertAnchor" ), FormatUtils::MapValueToWideString( flag, &Global::VerticalPositionCode[0][0], 4, 7 ).c_str() );
|
||||
appendValueAttribute( &tblpPr, _T( "w:vertAnchor" ), FormatUtils::MapValueToWideString( flag, &Global::VerticalPositionCode[0][0], 4, 7 ) );
|
||||
|
||||
flag = ( iter->Arguments[0] & 0xC0 ) >> 6;
|
||||
|
||||
appendValueAttribute( &tblpPr, _T( "w:horzAnchor" ), FormatUtils::MapValueToWideString( flag, &Global::HorizontalPositionCode[0][0], 4, 7 ).c_str() );
|
||||
appendValueAttribute( &tblpPr, _T( "w:horzAnchor" ), FormatUtils::MapValueToWideString( flag, &Global::HorizontalPositionCode[0][0], 4, 7 ) );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -381,12 +381,12 @@ namespace DocFileFormat
|
||||
//indent
|
||||
if ( tblIndent != 0 )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> tblInd( _T( "w:tblInd" ) );
|
||||
XMLTools::XMLElement tblInd( _T( "w:tblInd" ) );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> tblIndW( _T( "w:w" ),FormatUtils::IntToWideString( tblIndent ).c_str() );
|
||||
XMLTools::XMLAttribute tblIndW( _T( "w:w" ),FormatUtils::IntToWideString( tblIndent ) );
|
||||
tblInd.AppendAttribute( tblIndW );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> tblIndType( _T( "w:type" ), _T( "dxa" ) );
|
||||
XMLTools::XMLAttribute tblIndType( _T( "w:type" ), _T( "dxa" ) );
|
||||
tblInd.AppendAttribute( tblIndType );
|
||||
|
||||
_tblPr->AppendChild( tblInd );
|
||||
@ -401,42 +401,42 @@ namespace DocFileFormat
|
||||
//set borders
|
||||
if ( brcTop != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> topBorder( _T( "w:top" ) );
|
||||
XMLTools::XMLElement topBorder( _T( "w:top" ) );
|
||||
appendBorderAttributes( brcTop, &topBorder );
|
||||
addOrSetBorder( _tblBorders, &topBorder );
|
||||
}
|
||||
|
||||
if ( brcLeft != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> leftBorder( _T( "w:left" ) );
|
||||
XMLTools::XMLElement leftBorder( _T( "w:left" ) );
|
||||
appendBorderAttributes( brcLeft, &leftBorder );
|
||||
addOrSetBorder( _tblBorders, &leftBorder );
|
||||
}
|
||||
|
||||
if ( brcBottom != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> bottomBorder( _T( "w:bottom" ) );
|
||||
XMLTools::XMLElement bottomBorder( _T( "w:bottom" ) );
|
||||
appendBorderAttributes( brcBottom, &bottomBorder );
|
||||
addOrSetBorder( _tblBorders, &bottomBorder );
|
||||
}
|
||||
|
||||
if ( brcRight != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> rightBorder( _T( "w:right" ) );
|
||||
XMLTools::XMLElement rightBorder( _T( "w:right" ) );
|
||||
appendBorderAttributes( brcRight, &rightBorder );
|
||||
addOrSetBorder( _tblBorders, &rightBorder );
|
||||
}
|
||||
|
||||
if ( brcHorz != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> insideHBorder( _T( "w:insideH" ) );
|
||||
XMLTools::XMLElement insideHBorder( _T( "w:insideH" ) );
|
||||
appendBorderAttributes( brcHorz, &insideHBorder );
|
||||
addOrSetBorder( _tblBorders, &insideHBorder );
|
||||
}
|
||||
|
||||
if ( brcVert != NULL )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> insideVBorder( _T( "w:insideV" ) );
|
||||
XMLTools::XMLElement insideVBorder( _T( "w:insideV" ) );
|
||||
appendBorderAttributes( brcVert, &insideVBorder );
|
||||
addOrSetBorder( _tblBorders, &insideVBorder );
|
||||
}
|
||||
@ -453,20 +453,20 @@ namespace DocFileFormat
|
||||
//append margins
|
||||
if ( ( marginLeft == 0 ) && ( gabHalf != 0 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "left" ), FormatUtils::IntToWideString( gabHalf ).c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "left" ), FormatUtils::IntToWideString( gabHalf ), true );
|
||||
}
|
||||
else
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "left" ), FormatUtils::IntToWideString( marginLeft ).c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "left" ), FormatUtils::IntToWideString( marginLeft ), true );
|
||||
}
|
||||
|
||||
if ( ( marginRight == 0 ) && ( gabHalf != 0 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "right" ), FormatUtils::IntToWideString( gabHalf ).c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "right" ), FormatUtils::IntToWideString( gabHalf ), true );
|
||||
}
|
||||
else
|
||||
{
|
||||
appendDxaElement( &tblCellMar, _T( "right" ), FormatUtils::IntToWideString( marginRight ).c_str(), true );
|
||||
appendDxaElement( &tblCellMar, _T( "right" ), FormatUtils::IntToWideString( marginRight ), true );
|
||||
}
|
||||
|
||||
_tblPr->AppendChild( tblCellMar );
|
||||
@ -474,11 +474,11 @@ namespace DocFileFormat
|
||||
//write Properties
|
||||
if ( ( _tblPr->GetChildCount() > 0 ) || ( _tblPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _tblPr->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( _tblPr->GetXMLString() );
|
||||
}
|
||||
|
||||
//append the grid
|
||||
_tblGrid = new XMLTools::XMLElement<wchar_t>( _T( "w:tblGrid" ) );
|
||||
_tblGrid = new XMLTools::XMLElement( _T( "w:tblGrid" ) );
|
||||
|
||||
//Если _grid состоит из одних DocFormatUtils::gc_nZeroWidth и layout != "fixed", значит это doc полученный нами при конвертации из html. Таблицу размеров писать не нужно
|
||||
bool bWriteGridCol = false;
|
||||
@ -499,13 +499,13 @@ namespace DocFileFormat
|
||||
{
|
||||
for ( unsigned int i = 0; i < _grid->size(); i++ )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> gridCol( _T( "w:gridCol" ) );
|
||||
XMLTools::XMLAttribute<wchar_t> gridColW( _T( "w:w" ), FormatUtils::IntToWideString( _grid->at( i ) ).c_str() );
|
||||
XMLTools::XMLElement gridCol( _T( "w:gridCol" ) );
|
||||
XMLTools::XMLAttribute gridColW( _T( "w:w" ), FormatUtils::IntToWideString( _grid->at( i ) ) );
|
||||
gridCol.AppendAttribute( gridColW );
|
||||
_tblGrid->AppendChild( gridCol );
|
||||
}
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteString( _tblGrid->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( _tblGrid->GetXMLString() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,9 +77,9 @@ namespace DocFileFormat
|
||||
|
||||
private:
|
||||
|
||||
XMLTools::XMLElement<wchar_t>* _tblPr;
|
||||
XMLTools::XMLElement<wchar_t>* _tblGrid;
|
||||
XMLTools::XMLElement<wchar_t>* _tblBorders;
|
||||
XMLTools::XMLElement* _tblPr;
|
||||
XMLTools::XMLElement* _tblGrid;
|
||||
XMLTools::XMLElement* _tblBorders;
|
||||
|
||||
StyleSheet* _styles;
|
||||
std::vector<short>* _grid;
|
||||
|
||||
@ -37,9 +37,9 @@ namespace DocFileFormat
|
||||
{
|
||||
TableRowPropertiesMapping::TableRowPropertiesMapping (XMLTools::CStringXmlWriter* pWriter, CharacterPropertyExceptions* rowEndChpx) : PropertiesMapping(pWriter), _trPr(NULL), _tblPrEx(NULL), _rowEndChpx(NULL)
|
||||
{
|
||||
_trPr = new XMLTools::XMLElement<wchar_t>(L"w:trPr");
|
||||
_tblPrEx = new XMLTools::XMLElement<wchar_t>(L"w:tblPrEx");
|
||||
//_tblBorders = new XMLTools::XMLElement<wchar_t>(L"w:tblBorders");
|
||||
_trPr = new XMLTools::XMLElement(L"w:trPr");
|
||||
_tblPrEx = new XMLTools::XMLElement(L"w:tblPrEx");
|
||||
//_tblBorders = new XMLTools::XMLElement(L"w:tblBorders");
|
||||
_rowEndChpx = rowEndChpx;
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( ( _rowEndChpx != NULL ) && ( rev.Type == Deleted ) )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> del( L"w:del" );
|
||||
XMLTools::XMLElement del( L"w:del" );
|
||||
_trPr->AppendChild( del );
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( fHeader )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> header( L"w:tblHeader" );
|
||||
XMLTools::XMLElement header( L"w:tblHeader" );
|
||||
_trPr->AppendChild( header );
|
||||
}
|
||||
}
|
||||
@ -89,11 +89,11 @@ namespace DocFileFormat
|
||||
|
||||
case sprmTWidthAfter:
|
||||
{ //width after
|
||||
XMLTools::XMLElement<wchar_t> wAfter( L"w:wAfter" );
|
||||
XMLTools::XMLAttribute<wchar_t> wAfterValue( L"w:w", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize ) ).c_str() );
|
||||
XMLTools::XMLElement wAfter( L"w:wAfter" );
|
||||
XMLTools::XMLAttribute wAfterValue( L"w:w", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize ) ) );
|
||||
wAfter.AppendAttribute( wAfterValue );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> wAfterType( L"w:type", L"dxa" );
|
||||
XMLTools::XMLAttribute wAfterType( L"w:type", L"dxa" );
|
||||
wAfter.AppendAttribute( wAfterType );
|
||||
_trPr->AppendChild( wAfter, true );
|
||||
}
|
||||
@ -105,11 +105,11 @@ namespace DocFileFormat
|
||||
|
||||
if ( before != 0 )
|
||||
{
|
||||
XMLTools::XMLElement<wchar_t> wBefore( L"w:wBefore" );
|
||||
XMLTools::XMLAttribute<wchar_t> wBeforeValue( L"w:w", FormatUtils::IntToWideString( before ).c_str() );
|
||||
XMLTools::XMLElement wBefore( L"w:wBefore" );
|
||||
XMLTools::XMLAttribute wBeforeValue( L"w:w", FormatUtils::IntToWideString( before ) );
|
||||
wBefore.AppendAttribute( wBeforeValue );
|
||||
|
||||
XMLTools::XMLAttribute<wchar_t> wBeforeType( L"w:type", L"dxa" );
|
||||
XMLTools::XMLAttribute wBeforeType( L"w:type", L"dxa" );
|
||||
wBefore.AppendAttribute( wBeforeType );
|
||||
_trPr->AppendChild( wBefore, true );
|
||||
}
|
||||
@ -119,16 +119,16 @@ namespace DocFileFormat
|
||||
case sprmOldTDyaRowHeight:
|
||||
case sprmTDyaRowHeight:
|
||||
{ //row height
|
||||
XMLTools::XMLElement<wchar_t> rowHeight( L"w:trHeight" );
|
||||
XMLTools::XMLAttribute<wchar_t> rowHeightVal( L"w:val" );
|
||||
XMLTools::XMLAttribute<wchar_t> rowHeightRule( L"w:hRule" );
|
||||
XMLTools::XMLElement rowHeight( L"w:trHeight" );
|
||||
XMLTools::XMLAttribute rowHeightVal( L"w:val" );
|
||||
XMLTools::XMLAttribute rowHeightRule( L"w:hRule" );
|
||||
|
||||
short rH = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if ( rH > 0 )
|
||||
{
|
||||
rowHeightRule.SetValue( L"atLeast" );
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ).c_str() );
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ) );
|
||||
rowHeight.AppendAttribute( rowHeightVal );
|
||||
}
|
||||
else if( rH == 0 )
|
||||
@ -139,7 +139,7 @@ namespace DocFileFormat
|
||||
{
|
||||
rowHeightRule.SetValue( L"exact" );
|
||||
rH *= -1;
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ).c_str() );
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ) );
|
||||
rowHeight.AppendAttribute( rowHeightVal );
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ namespace DocFileFormat
|
||||
//div id
|
||||
case sprmTIpgp:
|
||||
{
|
||||
appendValueElement( _trPr, L"divId", FormatUtils::IntToWideString( FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize ) ).c_str(), true );
|
||||
appendValueElement( _trPr, L"divId", FormatUtils::IntToWideString( FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
//borders 80 exceptions
|
||||
@ -260,7 +260,7 @@ namespace DocFileFormat
|
||||
//write Properties
|
||||
if ( ( _trPr->GetChildCount() > 0 ) || ( _trPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _trPr->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( _trPr->GetXMLString() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,9 +44,9 @@ namespace DocFileFormat
|
||||
class TableRowPropertiesMapping: public PropertiesMapping, public IMapping
|
||||
{
|
||||
private:
|
||||
XMLTools::XMLElement<wchar_t>* _trPr;
|
||||
XMLTools::XMLElement<wchar_t>* _tblPrEx;
|
||||
//XMLTools::XMLElement<wchar_t>* _tblBorders;
|
||||
XMLTools::XMLElement* _trPr;
|
||||
XMLTools::XMLElement* _tblPrEx;
|
||||
//XMLTools::XMLElement* _tblBorders;
|
||||
//BorderCode brcLeft, brcTop, brcBottom, brcRight, brcHorz, brcVert;
|
||||
CharacterPropertyExceptions* _rowEndChpx;
|
||||
|
||||
@ -55,4 +55,4 @@ namespace DocFileFormat
|
||||
virtual ~TableRowPropertiesMapping();
|
||||
virtual void Apply( IVisitable* visited );
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ namespace DocFileFormat
|
||||
file.WriteFile((BYTE*)xmlString.c_str(), xmlString.size());
|
||||
file.CloseFile();
|
||||
|
||||
OOX::CPath path(sTempXmlFile.c_str());
|
||||
OOX::CPath path(sTempXmlFile);
|
||||
OOX::CDocument docEmbedded(path, path);
|
||||
|
||||
bool res = false;
|
||||
@ -194,9 +194,9 @@ namespace DocFileFormat
|
||||
if ( b != NULL )
|
||||
{
|
||||
b->operator += ( propName );
|
||||
b->operator += ( _T( ":" ) );
|
||||
b->operator += ( L":" );
|
||||
b->operator += ( propValue );
|
||||
b->operator +=( _T( ";" ) );
|
||||
b->operator +=( L";" );
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@ namespace DocFileFormat
|
||||
m_isEquation = false;
|
||||
m_isEmbedded = false;
|
||||
|
||||
m_imageData = new XMLTools::XMLElement<wchar_t>( _T( "v:imagedata" ) );
|
||||
m_imageData = new XMLTools::XMLElement( L"v:imagedata" );
|
||||
}
|
||||
|
||||
VMLPictureMapping::~VMLPictureMapping()
|
||||
@ -256,24 +256,24 @@ namespace DocFileFormat
|
||||
{
|
||||
type.SetType(msosptPictureFrame);
|
||||
}
|
||||
m_pXmlWriter->WriteNodeBegin( _T( "v:shape" ), true );
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:shape", true );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "type" ), std::wstring( _T( "#" ) + VMLShapeTypeMapping::GenerateTypeId(&type)).c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"type", std::wstring( L"#" + VMLShapeTypeMapping::GenerateTypeId(&type)));
|
||||
|
||||
count_vml_objects++;
|
||||
|
||||
if (m_shapeId.empty())
|
||||
m_shapeId = std::wstring(L"_x0000_s") + FormatUtils::IntToWideString(1024 + count_vml_objects);
|
||||
m_shapeId = L"_x0000_s" + FormatUtils::IntToWideString(1024 + count_vml_objects);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( _T( "id" ), m_shapeId.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"id", m_shapeId);
|
||||
|
||||
if (m_isOlePreview)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:ole" ), _T( "" ) );
|
||||
m_pXmlWriter->WriteAttribute( L"o:ole", L"" );
|
||||
}
|
||||
else if (m_isBullete)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:bullet" ), _T( "1" ) );
|
||||
m_pXmlWriter->WriteAttribute( L"o:bullet", L"1" );
|
||||
}
|
||||
//todooo oбъединить с shape_mapping
|
||||
|
||||
@ -304,25 +304,25 @@ namespace DocFileFormat
|
||||
case borderBottomColor:
|
||||
{
|
||||
RGBColor bottomColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:borderbottomcolor" ), ( std::wstring( _T( "#" ) ) + bottomColor.SixDigitHexCode ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderbottomcolor", L"#" + bottomColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderLeftColor:
|
||||
{
|
||||
RGBColor leftColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:borderleftcolor" ), ( std::wstring( _T( "#" ) ) + leftColor.SixDigitHexCode ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderleftcolor", L"#" + leftColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderRightColor:
|
||||
{
|
||||
RGBColor rightColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:borderrightcolor" ), ( std::wstring( _T( "#" ) ) + rightColor.SixDigitHexCode ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderrightcolor", L"#" + rightColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderTopColor:
|
||||
{
|
||||
RGBColor topColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( _T( "o:bordertopcolor" ), ( std::wstring( _T( "#" ) ) + topColor.SixDigitHexCode ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:bordertopcolor", L"#" + topColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
//CROPPING
|
||||
@ -330,28 +330,28 @@ namespace DocFileFormat
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropBottom = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, _T( "cropbottom" ), ( FormatUtils::IntToWideString( cropBottom ) + std::wstring( _T( "f" ) ) ).c_str() );
|
||||
appendValueAttribute(m_imageData, L"cropbottom", FormatUtils::IntToWideString( cropBottom ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromLeft:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropLeft = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, _T( "cropleft" ), ( FormatUtils::IntToWideString( cropLeft ) + std::wstring( _T( "f" ) ) ).c_str());
|
||||
appendValueAttribute(m_imageData, L"cropleft", FormatUtils::IntToWideString( cropLeft ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromRight:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropRight = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, _T( "cropright" ), ( FormatUtils::IntToWideString( cropRight ) + std::wstring( _T( "f" ) ) ).c_str());
|
||||
appendValueAttribute(m_imageData, L"cropright", FormatUtils::IntToWideString( cropRight ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromTop:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropTop = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, _T( "croptop" ), ( FormatUtils::IntToWideString( cropTop ) + std::wstring( _T( "f" ) ) ).c_str());
|
||||
appendValueAttribute(m_imageData, L"croptop", FormatUtils::IntToWideString( cropTop ) + L"f" );
|
||||
}
|
||||
break;
|
||||
//------------------------------------------------------------
|
||||
@ -365,23 +365,23 @@ namespace DocFileFormat
|
||||
std::wstring v = strHeight;
|
||||
strHeight = strWidth; strWidth = v;
|
||||
|
||||
appendStyleProperty(&strStyle, _T( "rotation" ), FormatUtils::DoubleToWideString(dAngle));
|
||||
appendStyleProperty(&strStyle, L"rotation", FormatUtils::DoubleToWideString(dAngle));
|
||||
}break;
|
||||
case posh:
|
||||
{
|
||||
appendStyleProperty(&strStyle, _T("mso-position-horizontal"), VMLShapeMapping::mapHorizontalPosition((PositionHorizontal)iter->op));
|
||||
appendStyleProperty(&strStyle, L"mso-position-horizontal", VMLShapeMapping::mapHorizontalPosition((PositionHorizontal)iter->op));
|
||||
}break;
|
||||
case posrelh:
|
||||
{
|
||||
appendStyleProperty(&strStyle, _T("mso-position-horizontal-relative"), VMLShapeMapping::mapHorizontalPositionRelative((PositionHorizontalRelative)iter->op));
|
||||
appendStyleProperty(&strStyle, L"mso-position-horizontal-relative", VMLShapeMapping::mapHorizontalPositionRelative((PositionHorizontalRelative)iter->op));
|
||||
}break;
|
||||
case posv:
|
||||
{
|
||||
appendStyleProperty(&strStyle, _T("mso-position-vertical"), VMLShapeMapping::mapVerticalPosition((PositionVertical)iter->op));
|
||||
appendStyleProperty(&strStyle, L"mso-position-vertical", VMLShapeMapping::mapVerticalPosition((PositionVertical)iter->op));
|
||||
}break;
|
||||
case posrelv:
|
||||
{
|
||||
appendStyleProperty(&strStyle, _T("mso-position-vertical-relative"), VMLShapeMapping::mapVerticalPositionRelative((PositionVerticalRelative)iter->op));
|
||||
appendStyleProperty(&strStyle, L"mso-position-vertical-relative", VMLShapeMapping::mapVerticalPositionRelative((PositionVerticalRelative)iter->op));
|
||||
}break;
|
||||
case groupShapeBooleans:
|
||||
{
|
||||
@ -390,52 +390,53 @@ namespace DocFileFormat
|
||||
if (groupShapeBooleans.fUsefBehindDocument && groupShapeBooleans.fBehindDocument)
|
||||
{
|
||||
//The shape is behind the text, so the z-index must be negative.
|
||||
appendStyleProperty(&strStyle, _T( "z-index" ), _T( "-1" ) );
|
||||
appendStyleProperty(&strStyle, L"z-index", L"-1" );
|
||||
}
|
||||
//else if (!m_isInlinePicture)
|
||||
//{
|
||||
// appendStyleProperty( &strStyle, _T( "z-index" ), FormatUtils::IntToWideString(zIndex + 0x7ffff));
|
||||
// appendStyleProperty( &strStyle, L"z-index", FormatUtils::IntToWideString(zIndex + 0x7ffff));
|
||||
//}
|
||||
|
||||
if (groupShapeBooleans.fHidden && groupShapeBooleans.fUsefHidden)
|
||||
{
|
||||
appendStyleProperty(&strStyle, _T( "visibility" ), _T( "hidden" ));
|
||||
appendStyleProperty(&strStyle, L"visibility", L"hidden");
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
strStyle += _T( "width:" ) + strWidth + _T( "pt;" ) + _T( "height:" ) + strHeight + _T( "pt;" );
|
||||
m_pXmlWriter->WriteAttribute( _T( "style" ), strStyle.c_str() );
|
||||
strStyle += L"width:" + strWidth + L"pt;" + L"height:" + strHeight + L"pt;";
|
||||
m_pXmlWriter->WriteAttribute( L"style", strStyle);
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "" ), TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
if (CopyPicture(pict))
|
||||
{
|
||||
//v:imageData
|
||||
appendValueAttribute(m_imageData, _T( "r:id" ), ( std::wstring( _T( "rId" ) ) + FormatUtils::IntToWideString(m_nImageId) ).c_str());
|
||||
appendValueAttribute(m_imageData, _T( "o:title" ) , _T( "" ));
|
||||
m_pXmlWriter->WriteString(m_imageData->GetXMLString().c_str());
|
||||
appendValueAttribute(m_imageData, L"r:id", L"rId" + FormatUtils::IntToWideString(m_nImageId));
|
||||
appendValueAttribute(m_imageData, L"o:title", L"" );
|
||||
m_pXmlWriter->WriteString(m_imageData->GetXMLString());
|
||||
}
|
||||
|
||||
//borders
|
||||
writePictureBorder( _T( "bordertop" ), pict->brcTop );
|
||||
writePictureBorder( _T( "borderleft" ), pict->brcLeft );
|
||||
writePictureBorder( _T( "borderbottom" ), pict->brcBottom );
|
||||
writePictureBorder( _T( "borderright" ), pict->brcRight );
|
||||
{//borders
|
||||
writePictureBorder( L"bordertop", pict->brcTop );
|
||||
writePictureBorder( L"borderleft", pict->brcLeft );
|
||||
writePictureBorder( L"borderbottom", pict->brcBottom );
|
||||
writePictureBorder( L"borderright", pict->brcRight );
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( _T( "v:shape" ) );
|
||||
m_pXmlWriter->WriteNodeEnd( L"v:shape" );
|
||||
}
|
||||
|
||||
void VMLPictureMapping::writePictureBorder( const std::wstring & name, const BorderCode* brc )
|
||||
{
|
||||
if (!brc || name.empty()) return;
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( ( std::wstring( _T( "w10:" ) ) + name).c_str(), true );
|
||||
m_pXmlWriter->WriteAttribute( _T( "type" ), getBorderType( brc->brcType ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( _T( "width" ), FormatUtils::IntToWideString( brc->dptLineWidth ).c_str() );
|
||||
m_pXmlWriter->WriteNodeEnd ( _T( "" ), true );
|
||||
m_pXmlWriter->WriteNodeBegin( L"w10:" + name, true );
|
||||
m_pXmlWriter->WriteAttribute( L"type", getBorderType( brc->brcType ));
|
||||
m_pXmlWriter->WriteAttribute( L"width", FormatUtils::IntToWideString( brc->dptLineWidth ));
|
||||
m_pXmlWriter->WriteNodeEnd ( L"", true );
|
||||
}
|
||||
|
||||
bool VMLPictureMapping::CopyPicture (PictureDescriptor* pict)
|
||||
@ -534,26 +535,26 @@ namespace DocFileFormat
|
||||
switch (nType)
|
||||
{
|
||||
case Global::msoblipDIB:
|
||||
return std::wstring(_T(".bmp"));
|
||||
return std::wstring(L".bmp");
|
||||
|
||||
case Global::msoblipEMF:
|
||||
return std::wstring(_T(".emf"));
|
||||
return std::wstring(L".emf");
|
||||
|
||||
case Global::msoblipJPEG:
|
||||
case Global::msoblipCMYKJPEG:
|
||||
return std::wstring(_T(".jpg"));
|
||||
return std::wstring(L".jpg");
|
||||
|
||||
case Global::msoblipPNG:
|
||||
return std::wstring(_T(".png"));
|
||||
return std::wstring(L".png");
|
||||
|
||||
case Global::msoblipTIFF:
|
||||
return std::wstring(_T(".tif"));
|
||||
return std::wstring(L".tif");
|
||||
|
||||
case Global::msoblipWMF:
|
||||
return std::wstring(_T(".wmf"));
|
||||
return std::wstring(L".wmf");
|
||||
|
||||
default:
|
||||
return std::wstring(_T(".png"));
|
||||
return std::wstring(L".png");
|
||||
}
|
||||
}
|
||||
|
||||
@ -565,17 +566,17 @@ namespace DocFileFormat
|
||||
return std::wstring(OpenXmlContentTypes::Emf);
|
||||
|
||||
//case msoblipGIF:
|
||||
// return wstring( _T( "image/gif" ) );
|
||||
// return wstring( L"image/gif" );
|
||||
|
||||
//case msoblipICON:
|
||||
// return wstring( _T( "image/x-icon" ) );
|
||||
// return wstring( L"image/x-icon" );
|
||||
|
||||
case Global::msoblipJPEG:
|
||||
case Global::msoblipCMYKJPEG:
|
||||
return std::wstring(OpenXmlContentTypes::Jpeg);
|
||||
|
||||
//case msoblipPCX:
|
||||
// return wstring( _T( "image/pcx" ) );
|
||||
// return wstring( L"image/pcx" );
|
||||
|
||||
case Global::msoblipPNG:
|
||||
return std::wstring(OpenXmlContentTypes::Png);
|
||||
|
||||
@ -84,7 +84,7 @@ namespace DocFileFormat
|
||||
bool m_isOlePreview;
|
||||
bool m_isInlinePicture;
|
||||
|
||||
XMLTools::XMLElement<wchar_t>* m_imageData;
|
||||
XMLTools::XMLElement* m_imageData;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@ -73,12 +73,12 @@ namespace DocFileFormat
|
||||
m_pict = pPicture;
|
||||
m_nImageId = 0;
|
||||
|
||||
m_imagedata = XMLTools::XMLElement<wchar_t>(L"v:imagedata");
|
||||
m_fill = XMLTools::XMLElement<wchar_t>(L"v:fill");
|
||||
m_stroke = XMLTools::XMLElement<wchar_t>(L"v:stroke");
|
||||
m_shadow = XMLTools::XMLElement<wchar_t>(L"v:shadow");
|
||||
m_3dstyle = XMLTools::XMLElement<wchar_t>(L"o:extrusion");
|
||||
m_textpath = XMLTools::XMLElement<wchar_t>(L"v:textpath");
|
||||
m_imagedata = XMLTools::XMLElement(L"v:imagedata");
|
||||
m_fill = XMLTools::XMLElement(L"v:fill");
|
||||
m_stroke = XMLTools::XMLElement(L"v:stroke");
|
||||
m_shadow = XMLTools::XMLElement(L"v:shadow");
|
||||
m_3dstyle = XMLTools::XMLElement(L"o:extrusion");
|
||||
m_textpath = XMLTools::XMLElement(L"v:textpath");
|
||||
|
||||
Record* recBs = NULL;
|
||||
if ((m_context) && (m_context->_doc))
|
||||
@ -149,10 +149,10 @@ namespace DocFileFormat
|
||||
m_shapeId = GetShapeID(shape);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:group", true );
|
||||
m_pXmlWriter->WriteAttribute( L"id", m_shapeId .c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(shape, anchor, options, container->Index)).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"coordorigin", ( FormatUtils::IntToWideString(gsr->rcgBounds.topLeftAngle.x) + L"," + FormatUtils::IntToWideString( gsr->rcgBounds.topLeftAngle.y)).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString(gsr->rcgBounds.size.cx) + L"," + FormatUtils::IntToWideString(gsr->rcgBounds.size.cy)).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"id", m_shapeId);
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(shape, anchor, options, container->Index)));
|
||||
m_pXmlWriter->WriteAttribute( L"coordorigin", ( FormatUtils::IntToWideString(gsr->rcgBounds.topLeftAngle.x) + L"," + FormatUtils::IntToWideString( gsr->rcgBounds.topLeftAngle.y)));
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString(gsr->rcgBounds.size.cx) + L"," + FormatUtils::IntToWideString(gsr->rcgBounds.size.cy)));
|
||||
|
||||
// Write wrap coords
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
@ -164,7 +164,7 @@ namespace DocFileFormat
|
||||
{
|
||||
std::wstring wrapCoords = getWrapCoords(*iter);
|
||||
if (wrapCoords.length())
|
||||
m_pXmlWriter->WriteAttribute(L"wrapcoords", wrapCoords.c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"wrapcoords", wrapCoords);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -205,7 +205,7 @@ namespace DocFileFormat
|
||||
if (wrap != L"through")
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w10:wrap", true );
|
||||
m_pXmlWriter->WriteAttribute( L"type", wrap.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"type", wrap);
|
||||
m_pXmlWriter->WriteNodeEnd ( L"w10:wrap", true );
|
||||
}
|
||||
}
|
||||
@ -246,16 +246,16 @@ namespace DocFileFormat
|
||||
if (pShape->GetShapeType())
|
||||
{
|
||||
freeform = false;
|
||||
m_pXmlWriter->WriteAttribute( L"type", (std::wstring(L"#") + VMLShapeTypeMapping::GenerateTypeId(pShape->GetShapeType())).c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"type", (std::wstring(L"#") + VMLShapeTypeMapping::GenerateTypeId(pShape->GetShapeType())));
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(pShape, pAnchor, options, pContainer->Index)).c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(pShape, pAnchor, options, pContainer->Index)));
|
||||
}
|
||||
|
||||
if (pShape->is<LineType>())
|
||||
{
|
||||
//append "from" and "to" attributes
|
||||
m_pXmlWriter->WriteAttribute(L"from", GetLineFrom(pAnchor).c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"to", GetLineTo(pAnchor).c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"from", GetLineFrom(pAnchor));
|
||||
m_pXmlWriter->WriteAttribute(L"to", GetLineTo(pAnchor));
|
||||
}
|
||||
|
||||
if (m_isBullete)
|
||||
@ -410,7 +410,7 @@ namespace DocFileFormat
|
||||
|
||||
if (!wrapCoords.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"wrapcoords", wrapCoords.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"wrapcoords", wrapCoords);
|
||||
}
|
||||
}break;
|
||||
case geoRight:
|
||||
@ -433,7 +433,7 @@ namespace DocFileFormat
|
||||
{
|
||||
RGBColor lineColor((int)iter->op, RedFirst);
|
||||
if ( !pShape->fBackground )
|
||||
m_pXmlWriter->WriteAttribute( L"strokecolor", (std::wstring(L"#") + lineColor.SixDigitHexCode).c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"strokecolor", (std::wstring(L"#") + lineColor.SixDigitHexCode));
|
||||
}break;
|
||||
case lineWidth:
|
||||
{
|
||||
@ -445,67 +445,67 @@ namespace DocFileFormat
|
||||
}break;
|
||||
case lineDashing:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"dashstyle", FormatUtils::MapValueToWideString( iter->op, &Global::DashStyleMap[0][0], 11, 16 ).c_str() );
|
||||
appendValueAttribute(&m_stroke, L"dashstyle", FormatUtils::MapValueToWideString( iter->op, &Global::DashStyleMap[0][0], 11, 16 ) );
|
||||
}break;
|
||||
case lineStyle:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"linestyle", getLineStyle( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"linestyle", getLineStyle( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowhead:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrow", getArrowStyle( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"endarrow", getArrowStyle( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowLength:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrowlength", getArrowLength( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"endarrowlength", getArrowLength( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowWidth:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrowwidth", getArrowWidth( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"endarrowwidth", getArrowWidth( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowhead:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrow", getArrowStyle( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"startarrow", getArrowStyle( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowLength:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrowlength", getArrowLength( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"startarrowlength", getArrowLength( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowWidth:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrowwidth", getArrowWidth( iter->op ).c_str());
|
||||
appendValueAttribute(&m_stroke, L"startarrowwidth", getArrowWidth( iter->op ));
|
||||
}break;
|
||||
// FILL
|
||||
case fillColor:
|
||||
{
|
||||
RGBColor fillColor((int)iter->op, RedFirst);
|
||||
m_pXmlWriter->WriteAttribute(L"fillcolor", ( std::wstring( L"#" ) + fillColor.SixDigitHexCode ).c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"fillcolor", ( std::wstring( L"#" ) + fillColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case fillBackColor:
|
||||
{
|
||||
RGBColor fillBackColor( (int)iter->op, RedFirst );
|
||||
appendValueAttribute(&m_fill, L"color2", ( std::wstring( L"#" ) + fillBackColor.SixDigitHexCode ).c_str());
|
||||
appendValueAttribute(&m_fill, L"color2", ( std::wstring( L"#" ) + fillBackColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case fillAngle:
|
||||
{
|
||||
FixedPointNumber fllAngl( iter->op );
|
||||
appendValueAttribute(&m_fill, L"angle", FormatUtils::DoubleToWideString( fllAngl.ToAngle() ).c_str());
|
||||
appendValueAttribute(&m_fill, L"angle", FormatUtils::DoubleToWideString( fllAngl.ToAngle() ));
|
||||
}break;
|
||||
case fillShadeType:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"method", getFillMethod( iter->op ).c_str());
|
||||
appendValueAttribute(&m_fill, L"method", getFillMethod( iter->op ));
|
||||
}break;
|
||||
case fillShadeColors:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"colors", getFillColorString( iter->opComplex, iter->op ).c_str());
|
||||
appendValueAttribute(&m_fill, L"colors", getFillColorString( iter->opComplex, iter->op ));
|
||||
}break;
|
||||
case fillFocus:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"focus", ( FormatUtils::IntToWideString( iter->op ) + L"%" ).c_str());
|
||||
appendValueAttribute(&m_fill, L"focus", ( FormatUtils::IntToWideString( iter->op ) + L"%" ));
|
||||
}break;
|
||||
case fillType:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"type", getFillType( iter->op ).c_str());
|
||||
appendValueAttribute(&m_fill, L"type", getFillType( iter->op ));
|
||||
}break;
|
||||
case fillBlip:
|
||||
{
|
||||
@ -523,28 +523,28 @@ namespace DocFileFormat
|
||||
|
||||
if ( (pFillBlip != NULL) && copyPicture(pFillBlip) )
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"r:id", std::wstring(( L"rId" ) + FormatUtils::IntToWideString(m_nImageId) ).c_str());
|
||||
appendValueAttribute(&m_fill, L"r:id", std::wstring(( L"rId" ) + FormatUtils::IntToWideString(m_nImageId) ));
|
||||
}
|
||||
}break;
|
||||
case fillOpacity:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"opacity", ( FormatUtils::IntToWideString( iter->op ) + L"f" ).c_str());
|
||||
appendValueAttribute(&m_fill, L"opacity", ( FormatUtils::IntToWideString( iter->op ) + L"f" ));
|
||||
}
|
||||
break;
|
||||
case fillBackOpacity:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"opacity2", (FormatUtils::IntToWideString(iter->op) + L"f").c_str());
|
||||
appendValueAttribute(&m_fill, L"opacity2", (FormatUtils::IntToWideString(iter->op) + L"f"));
|
||||
}break;
|
||||
// SHADOW
|
||||
case shadowType:
|
||||
{
|
||||
appendValueAttribute(&m_shadow, L"type", getShadowType(iter->op).c_str());
|
||||
appendValueAttribute(&m_shadow, L"type", getShadowType(iter->op));
|
||||
}break;
|
||||
|
||||
case shadowColor:
|
||||
{
|
||||
RGBColor shadowColor((int)iter->op, RedFirst);
|
||||
appendValueAttribute(&m_shadow, L"color", ( std::wstring( L"#" ) + shadowColor.SixDigitHexCode ).c_str());
|
||||
appendValueAttribute(&m_shadow, L"color", ( std::wstring( L"#" ) + shadowColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case shadowOffsetX:
|
||||
{
|
||||
@ -574,7 +574,7 @@ namespace DocFileFormat
|
||||
{
|
||||
double shadowOpa = (iter->op / pow( (double)2, (double)16));
|
||||
|
||||
appendValueAttribute(&m_shadow, L"opacity", FormatUtils::DoubleToFormattedWideString( shadowOpa, L"%.2f" ).c_str());
|
||||
appendValueAttribute(&m_shadow, L"opacity", FormatUtils::DoubleToFormattedWideString( shadowOpa, L"%.2f" ));
|
||||
}break;
|
||||
case shadowStyleBooleanProperties:
|
||||
{
|
||||
@ -595,7 +595,7 @@ namespace DocFileFormat
|
||||
BlipStoreEntry* oBlip = static_cast<BlipStoreEntry*>(m_pBlipStore->Children[index]);
|
||||
if (copyPicture(oBlip))
|
||||
{
|
||||
appendValueAttribute(&m_imagedata, L"r:id", ( std::wstring( L"rId" ) + FormatUtils::IntToWideString(m_nImageId) ).c_str());
|
||||
appendValueAttribute(&m_imagedata, L"r:id", ( std::wstring( L"rId" ) + FormatUtils::IntToWideString(m_nImageId) ));
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -604,7 +604,7 @@ namespace DocFileFormat
|
||||
std::wstring name;
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>(&name, iter->opComplex, iter->op, ENCODING_UTF16);
|
||||
if (!name.empty())
|
||||
appendValueAttribute(&m_imagedata, L"o:title", FormatUtils::XmlEncode(name).c_str());
|
||||
appendValueAttribute(&m_imagedata, L"o:title", FormatUtils::XmlEncode(name));
|
||||
}break;
|
||||
// 3D STYLE
|
||||
case f3D:
|
||||
@ -616,37 +616,37 @@ namespace DocFileFormat
|
||||
{
|
||||
EmuValue backwardValue( (int)iter->op );
|
||||
std::wstring depth = FormatUtils::DoubleToWideString( backwardValue.ToPoints() ) + L"pt";
|
||||
appendValueAttribute(&m_3dstyle, L"backdepth", depth.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"backdepth", depth);
|
||||
}break;
|
||||
case c3DAmbientIntensity:
|
||||
{
|
||||
std::wstring intens = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"brightness", intens.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"brightness", intens);
|
||||
}break;
|
||||
case c3DSpecularAmt:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"specularity", amt.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"specularity", amt);
|
||||
}break;
|
||||
case c3DDiffuseAmt:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"diffusity", amt.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"diffusity", amt);
|
||||
}break;
|
||||
case c3DKeyIntensity:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op);
|
||||
appendValueAttribute(&m_3dstyle, L"lightlevel", amt.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"lightlevel", amt);
|
||||
}break;
|
||||
case c3DExtrusionColor:
|
||||
{
|
||||
std::wstring color = FormatUtils::IntToFormattedWideString(iter->op, L"#%06x");
|
||||
appendValueAttribute(&m_3dstyle, L"color", color.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"color", color);
|
||||
}break;
|
||||
case c3DSkewAngle:
|
||||
{
|
||||
FixedPointNumber skewAngle( iter->op );
|
||||
appendValueAttribute(&m_3dstyle, L"skewangle", FormatUtils::DoubleToWideString( skewAngle.ToAngle() ).c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"skewangle", FormatUtils::DoubleToWideString( skewAngle.ToAngle() ));
|
||||
}break;
|
||||
case c3DXViewpoint:
|
||||
{
|
||||
@ -706,10 +706,10 @@ namespace DocFileFormat
|
||||
|
||||
if (0 <= text.find(L"\n"))
|
||||
{
|
||||
m_textpath.AppendText(text.c_str());
|
||||
m_textpath.AppendText(text);
|
||||
}
|
||||
text = ReplaceString(text, L"\n", L"
");
|
||||
appendValueAttribute(&m_textpath, L"string", text.c_str());
|
||||
appendValueAttribute(&m_textpath, L"string", text);
|
||||
}break;
|
||||
case gtextFont:
|
||||
{
|
||||
@ -772,7 +772,7 @@ namespace DocFileFormat
|
||||
std::wstring path = ParsePath(options);
|
||||
|
||||
if (false == path.empty())
|
||||
m_pXmlWriter->WriteAttribute (L"path", path.c_str());
|
||||
m_pXmlWriter->WriteAttribute (L"path", path);
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
@ -786,7 +786,7 @@ namespace DocFileFormat
|
||||
std::wstring path = ParsePath(options);
|
||||
|
||||
if (false == path.empty())
|
||||
m_pXmlWriter->WriteAttribute (L"path", path.c_str());
|
||||
m_pXmlWriter->WriteAttribute (L"path", path);
|
||||
}
|
||||
|
||||
if ( !filled )
|
||||
@ -806,7 +806,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( ( xCoord > 0 ) && ( yCoord > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString( xCoord ) + L"," + FormatUtils::IntToWideString( yCoord ) ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString( xCoord ) + L"," + FormatUtils::IntToWideString( yCoord ) ));
|
||||
}
|
||||
|
||||
int nCode = 0;
|
||||
@ -819,7 +819,7 @@ namespace DocFileFormat
|
||||
{
|
||||
if (nAdjValues)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute(L"arcsize", adjValues[0].c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"arcsize", adjValues[0]);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -831,7 +831,7 @@ namespace DocFileFormat
|
||||
for (int i = 1; i < nAdjValues; ++i)
|
||||
adjTag += std::wstring(L",") + adjValues[i];
|
||||
|
||||
m_pXmlWriter->WriteAttribute(L"adj", adjTag.c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"adj", adjTag);
|
||||
}
|
||||
}
|
||||
|
||||
@ -853,7 +853,7 @@ namespace DocFileFormat
|
||||
}
|
||||
if ( !offset.empty() )
|
||||
{
|
||||
appendValueAttribute(&m_shadow, L"offset", offset.c_str());
|
||||
appendValueAttribute(&m_shadow, L"offset", offset);
|
||||
}
|
||||
|
||||
std::wstring offset2;
|
||||
@ -873,13 +873,13 @@ namespace DocFileFormat
|
||||
|
||||
if (!offset2.empty())
|
||||
{
|
||||
appendValueAttribute(&m_shadow, L"offset2", offset2.c_str());
|
||||
appendValueAttribute(&m_shadow, L"offset2", offset2);
|
||||
}
|
||||
|
||||
//build shadow origin
|
||||
if ( ( ShadowOriginX != 0 ) && ( ShadowOriginY != 0 ) )
|
||||
{
|
||||
appendValueAttribute(&m_shadow, L"origin", (FormatUtils::DoubleToWideString(shadowOriginX) + std::wstring(L"," ) + FormatUtils::DoubleToWideString(shadowOriginY)).c_str());
|
||||
appendValueAttribute(&m_shadow, L"origin", (FormatUtils::DoubleToWideString(shadowOriginX) + std::wstring(L"," ) + FormatUtils::DoubleToWideString(shadowOriginY)));
|
||||
}
|
||||
|
||||
// write shadow
|
||||
@ -890,7 +890,7 @@ namespace DocFileFormat
|
||||
appendValueAttribute(&m_shadow, L"on", L"t" );
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteString(m_shadow.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(m_shadow.GetXMLString());
|
||||
}
|
||||
//write 3d style
|
||||
if (m_3dstyle.GetAttributeCount() > 0)
|
||||
@ -918,7 +918,7 @@ namespace DocFileFormat
|
||||
viewPoint += FormatUtils::IntToWideString( ViewPointZ ) + L"pt";
|
||||
}
|
||||
|
||||
appendValueAttribute(&m_3dstyle, L"viewpoint", viewPoint.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"viewpoint", viewPoint);
|
||||
}
|
||||
// write the viewpointorigin
|
||||
if ( ( viewPointOriginX != 0 ) || ( viewPointOriginY != 0 ) )
|
||||
@ -936,10 +936,10 @@ namespace DocFileFormat
|
||||
viewPointOrigin += FormatUtils::DoubleToFormattedWideString( viewPointOriginY, L"%.2f" );
|
||||
}
|
||||
|
||||
appendValueAttribute(&m_3dstyle, L"viewpointorigin", viewPointOrigin.c_str());
|
||||
appendValueAttribute(&m_3dstyle, L"viewpointorigin", viewPointOrigin);
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteString(m_3dstyle.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(m_3dstyle.GetXMLString());
|
||||
}
|
||||
// write wrap
|
||||
if (m_pSpa)
|
||||
@ -949,19 +949,19 @@ namespace DocFileFormat
|
||||
if (wrap != L"through")
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w10:wrap", true );
|
||||
m_pXmlWriter->WriteAttribute( L"type", wrap.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"type", wrap );
|
||||
m_pXmlWriter->WriteNodeEnd ( L"w10:wrap", true );
|
||||
}
|
||||
}
|
||||
// write fill
|
||||
if (m_fill.GetAttributeCount())
|
||||
{
|
||||
m_pXmlWriter->WriteString(m_fill.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(m_fill.GetXMLString());
|
||||
}
|
||||
// write imagedata
|
||||
if (m_imagedata.GetAttributeCount())
|
||||
{
|
||||
m_pXmlWriter->WriteString(m_imagedata.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(m_imagedata.GetXMLString());
|
||||
}
|
||||
|
||||
if ( pShape->fBackground )
|
||||
@ -972,13 +972,13 @@ namespace DocFileFormat
|
||||
// write stroke
|
||||
if (m_stroke.GetAttributeCount())
|
||||
{
|
||||
m_pXmlWriter->WriteString(m_stroke.GetXMLString().c_str());
|
||||
m_pXmlWriter->WriteString(m_stroke.GetXMLString());
|
||||
}
|
||||
// text path
|
||||
if (m_textpath.GetAttributeCount())
|
||||
{
|
||||
appendValueAttribute(&m_textpath, L"style", FormatUtils::XmlEncode(m_textPathStyle).c_str());
|
||||
m_pXmlWriter->WriteString(m_textpath.GetXMLString().c_str());
|
||||
appendValueAttribute(&m_textpath, L"style", FormatUtils::XmlEncode(m_textPathStyle));
|
||||
m_pXmlWriter->WriteString(m_textpath.GetXMLString());
|
||||
}
|
||||
if (freeform)
|
||||
{
|
||||
@ -1942,7 +1942,7 @@ namespace DocFileFormat
|
||||
|
||||
DrawingPrimitive *primitive = dynamic_cast<DrawingPrimitive *>(primitives->at(index));
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(primitive->strVmlType.c_str(), true );
|
||||
m_pXmlWriter->WriteNodeBegin(primitive->strVmlType, true );
|
||||
|
||||
if (primitive->type == 0x0007)
|
||||
{
|
||||
@ -1993,7 +1993,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( primitive->strVmlType.c_str() );
|
||||
m_pXmlWriter->WriteNodeEnd( primitive->strVmlType );
|
||||
|
||||
index++;
|
||||
return index;
|
||||
@ -2009,8 +2009,8 @@ namespace DocFileFormat
|
||||
std::wstring strId = std::wstring(L"_x0000_s") + FormatUtils::IntToWideString(1024 + count_vml_objects);
|
||||
|
||||
count_vml_objects++;
|
||||
//m_pXmlWriter->WriteAttribute ( L"id") , strId.c_str());
|
||||
m_pXmlWriter->WriteAttribute ( L"o:spid", strId.c_str());
|
||||
//m_pXmlWriter->WriteAttribute ( L"id") , strId);
|
||||
m_pXmlWriter->WriteAttribute ( L"o:spid", strId);
|
||||
|
||||
std::wstring strStyle = L"position:absolute;visibility:visible;mso-wrap-style:square;";
|
||||
|
||||
@ -2025,8 +2025,8 @@ namespace DocFileFormat
|
||||
std::wstring strStart = FormatUtils::IntToWideString(line->xaStart + primitive->xa) + L"," + FormatUtils::IntToWideString(line->yaStart + primitive->ya);
|
||||
std::wstring strEnd = FormatUtils::IntToWideString(line->xaEnd + primitive->xa) + L"," + FormatUtils::IntToWideString(line->yaEnd + primitive->ya);
|
||||
|
||||
m_pXmlWriter->WriteAttribute(L"from", strStart.c_str() );
|
||||
m_pXmlWriter->WriteAttribute(L"to", strEnd.c_str());
|
||||
m_pXmlWriter->WriteAttribute(L"from", strStart);
|
||||
m_pXmlWriter->WriteAttribute(L"to", strEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2054,8 +2054,8 @@ namespace DocFileFormat
|
||||
std::wstring strSize = FormatUtils::IntToWideString(primitive->dxa) + L"," + FormatUtils::IntToWideString(primitive->dya);
|
||||
std::wstring strOrigin = FormatUtils::IntToWideString(primitive->xa) + L"," + FormatUtils::IntToWideString(primitive->ya);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", strSize.c_str());
|
||||
//m_pXmlWriter->WriteAttribute( L"coordorigin"), strOrigin.c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", strSize);
|
||||
//m_pXmlWriter->WriteAttribute( L"coordorigin"), strOrigin);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2070,23 +2070,23 @@ namespace DocFileFormat
|
||||
|
||||
if (primitive->type > 1)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"fillColor", FormatUtils::IntToFormattedWideString(primitive->fillFore, L"#%06x").c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"fillColor", FormatUtils::IntToFormattedWideString(primitive->fillFore, L"#%06x"));
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"style", strStyle.c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"style", strStyle);
|
||||
|
||||
std::wstring strStrokeWeight = FormatUtils::IntToWideString(primitive->lineWeight / 20) + L"pt";
|
||||
if (primitive->lineWeight > 20)
|
||||
m_pXmlWriter->WriteAttribute( L"strokeweight", strStrokeWeight.c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"strokeweight", strStrokeWeight);
|
||||
|
||||
if (primitive->type > 0)
|
||||
m_pXmlWriter->WriteAttribute( L"strokecolor", FormatUtils::IntToFormattedWideString(primitive->lineColor, L"#%06x").c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"strokecolor", FormatUtils::IntToFormattedWideString(primitive->lineColor, L"#%06x"));
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true, false );
|
||||
|
||||
if (primitive->type > 1 && primitive->fillPattern > 1)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"v:fill", true );
|
||||
m_pXmlWriter->WriteAttribute( L"color2", FormatUtils::IntToFormattedWideString(primitive->fillBack, L"#%06x").c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"color2", FormatUtils::IntToFormattedWideString(primitive->fillBack, L"#%06x"));
|
||||
m_pXmlWriter->WriteAttribute( L"type", L"pattern");
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true, false );
|
||||
m_pXmlWriter->WriteNodeEnd( L"v:fill" );
|
||||
@ -2096,7 +2096,7 @@ namespace DocFileFormat
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"v:stroke", true );
|
||||
std::wstring strDashStyle = FormatUtils::IntToWideString(primitive->lineStyle) + L" 1";
|
||||
m_pXmlWriter->WriteAttribute( L"dashstyle", strDashStyle.c_str());
|
||||
m_pXmlWriter->WriteAttribute( L"dashstyle", strDashStyle);
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true, false );
|
||||
m_pXmlWriter->WriteNodeEnd( L"v:stroke" );
|
||||
}
|
||||
|
||||
@ -133,11 +133,11 @@ namespace DocFileFormat
|
||||
ConversionContext* m_context;
|
||||
PictureDescriptor* m_pict;
|
||||
|
||||
XMLTools::XMLElement<wchar_t> m_fill;
|
||||
XMLTools::XMLElement<wchar_t> m_stroke;
|
||||
XMLTools::XMLElement<wchar_t> m_shadow;
|
||||
XMLTools::XMLElement<wchar_t> m_imagedata;
|
||||
XMLTools::XMLElement<wchar_t> m_3dstyle;
|
||||
XMLTools::XMLElement<wchar_t> m_textpath;
|
||||
XMLTools::XMLElement m_fill;
|
||||
XMLTools::XMLElement m_stroke;
|
||||
XMLTools::XMLElement m_shadow;
|
||||
XMLTools::XMLElement m_imagedata;
|
||||
XMLTools::XMLElement m_3dstyle;
|
||||
XMLTools::XMLElement m_textpath;
|
||||
};
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace DocFileFormat
|
||||
{
|
||||
VMLShapeTypeMapping::VMLShapeTypeMapping (XMLTools::CStringXmlWriter* pWriter, bool isInlineShape) : PropertiesMapping(pWriter), _lock(NULL), _isInlineShape(isInlineShape)
|
||||
{
|
||||
this->_lock = new XMLTools::XMLElement<wchar_t>( L"o:lock");
|
||||
this->_lock = new XMLTools::XMLElement( L"o:lock");
|
||||
appendValueAttribute( this->_lock, L"v:ext", L"edit");
|
||||
}
|
||||
|
||||
@ -58,21 +58,21 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:shapetype", true );
|
||||
|
||||
// ID
|
||||
m_pXmlWriter->WriteAttribute( L"id", GenerateTypeId( pShape ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"id", GenerateTypeId( pShape ));
|
||||
|
||||
// Coordinate System
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", L"21600,21600");
|
||||
|
||||
// Shape Code
|
||||
m_pXmlWriter->WriteAttribute( L"o:spt", FormatUtils::IntToWideString( pShape->GetTypeCode() ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:spt", FormatUtils::IntToWideString( pShape->GetTypeCode() ));
|
||||
|
||||
// Adj
|
||||
if (pShape->AdjustmentValues.length())
|
||||
m_pXmlWriter->WriteAttribute( L"adj", pShape->AdjustmentValues.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"adj", pShape->AdjustmentValues);
|
||||
|
||||
// Path
|
||||
if (!pShape->Path.empty())
|
||||
m_pXmlWriter->WriteAttribute( L"path", pShape->Path.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"path", pShape->Path);
|
||||
else if (_isInlineShape)
|
||||
m_pXmlWriter->WriteAttribute( L"path", L"m@4@5l@4@11@9@11@9@5xe");
|
||||
|
||||
@ -99,12 +99,12 @@ namespace DocFileFormat
|
||||
if (!pShape->Textpath.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:textpath", true );
|
||||
m_pXmlWriter->WriteString( pShape->Textpath.c_str() );
|
||||
m_pXmlWriter->WriteString( pShape->Textpath );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
// Stroke
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:stroke", true );
|
||||
m_pXmlWriter->WriteAttribute( L"joinstyle", FormatUtils::MapValueToWideString( pShape->Joins, &JoinStyleMap[0][0], 3, 6 ).c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"joinstyle", FormatUtils::MapValueToWideString( pShape->Joins, &JoinStyleMap[0][0], 3, 6 ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
|
||||
// Formulas
|
||||
@ -115,7 +115,7 @@ namespace DocFileFormat
|
||||
for ( std::list<std::wstring>::iterator iter = pShape->Formulas.begin(); iter != pShape->Formulas.end(); iter++ )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:f", true );
|
||||
m_pXmlWriter->WriteAttribute( L"eqn", iter->c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"eqn", *iter );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
|
||||
@ -147,19 +147,19 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute( L"gradientshapeok", L"t" );
|
||||
|
||||
if (pShape->Limo.length())
|
||||
m_pXmlWriter->WriteAttribute( L"limo", pShape->Limo.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"limo", pShape->Limo );
|
||||
|
||||
if (pShape->ConnectorLocations.length())
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"o:connecttype", L"custom");
|
||||
m_pXmlWriter->WriteAttribute( L"o:connectlocs", pShape->ConnectorLocations.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:connectlocs", pShape->ConnectorLocations);
|
||||
}
|
||||
|
||||
if (pShape->TextBoxRectangle.length())
|
||||
m_pXmlWriter->WriteAttribute( L"textboxrect", pShape->TextBoxRectangle.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"textboxrect", pShape->TextBoxRectangle);
|
||||
|
||||
if (pShape->ConnectorAngles.length())
|
||||
m_pXmlWriter->WriteAttribute( L"o:connectangles", pShape->ConnectorAngles.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"o:connectangles", pShape->ConnectorAngles);
|
||||
}
|
||||
WordArtTextType* wordArt = dynamic_cast<WordArtTextType*>(pShape);
|
||||
if (wordArt)
|
||||
@ -177,7 +177,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( _lock->GetAttributeCount() > 1 )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _lock->GetXMLString().c_str() );
|
||||
m_pXmlWriter->WriteString( _lock->GetXMLString() );
|
||||
}
|
||||
|
||||
// Handles
|
||||
@ -190,22 +190,22 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:h", true );
|
||||
|
||||
if (iter->position.length())
|
||||
m_pXmlWriter->WriteAttribute( L"position", iter->position.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"position", iter->position);
|
||||
|
||||
if (iter->switchHandle.length())
|
||||
m_pXmlWriter->WriteAttribute( L"switch", iter->switchHandle.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"switch", iter->switchHandle);
|
||||
|
||||
if (iter->xrange.length())
|
||||
m_pXmlWriter->WriteAttribute( L"xrange", iter->xrange.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"xrange", iter->xrange);
|
||||
|
||||
if (iter->yrange.length())
|
||||
m_pXmlWriter->WriteAttribute( L"yrange", iter->yrange.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"yrange", iter->yrange);
|
||||
|
||||
if (iter->polar.length())
|
||||
m_pXmlWriter->WriteAttribute( L"polar", iter->polar.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"polar", iter->polar);
|
||||
|
||||
if (iter->radiusrange.length())
|
||||
m_pXmlWriter->WriteAttribute( L"radiusrange", iter->radiusrange.c_str() );
|
||||
m_pXmlWriter->WriteAttribute( L"radiusrange", iter->radiusrange );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
|
||||
@ -42,8 +42,8 @@ namespace DocFileFormat
|
||||
class VMLShapeTypeMapping: public PropertiesMapping, public IMapping
|
||||
{
|
||||
private:
|
||||
XMLTools::XMLElement<wchar_t> *_lock;
|
||||
bool _isInlineShape;
|
||||
XMLTools::XMLElement * _lock;
|
||||
bool _isInlineShape;
|
||||
|
||||
public:
|
||||
VMLShapeTypeMapping(XMLTools::CStringXmlWriter* writer, bool isInlineShape = false );
|
||||
|
||||
@ -371,9 +371,9 @@ namespace DocFileFormat
|
||||
|
||||
if ( ( bookmarkName != NULL ) && ( *bookmarkName == L"_PictureBullets" ) )
|
||||
{
|
||||
for (unsigned int j = BookmarkStartEndCPs[i].first, k = 0; j < this->Text->size(); ++j, ++k )
|
||||
for (unsigned int j = BookmarkStartEndCPs[i].first, k = 0; j < Text->size(); ++j, ++k )
|
||||
{
|
||||
if ( this->Text->at( j ) == 1 )
|
||||
if ( Text->at( j ) == 1 )
|
||||
{
|
||||
PictureBulletsCPsMap.insert (std::make_pair( k, j ));
|
||||
}
|
||||
@ -424,7 +424,7 @@ namespace DocFileFormat
|
||||
int cp = SectionPlex->CharacterPositions[i + 1];
|
||||
|
||||
//Get the SEPX
|
||||
VirtualStreamReader wordReader( this->WordDocumentStream, sed->fcSepx, bOlderVersion);
|
||||
VirtualStreamReader wordReader( WordDocumentStream, sed->fcSepx, bOlderVersion);
|
||||
|
||||
//!!!TODO: cbSepx is the size in bytes of the rest properties part!!!
|
||||
short cbSepx = wordReader.ReadInt16();
|
||||
@ -672,7 +672,7 @@ namespace DocFileFormat
|
||||
|
||||
//last fkp?
|
||||
//use full table
|
||||
if ( i++ == ( this->AllChpxFkps->size() - 1 ) )
|
||||
if ( i++ == ( AllChpxFkps->size() - 1 ) )
|
||||
{
|
||||
max = fkp->rgfcSize;
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ namespace DocFileFormat
|
||||
void WordprocessingDocument::SaveDocument()
|
||||
{
|
||||
std::wstring pathWord = m_strOutputPath + FILE_SEPARATOR_STR + _T( "word" ) ;
|
||||
//OOX::CPath pathWord = CString(m_strOutputPath.c_str()) + FILE_SEPARATOR_STR + _T( "word" );
|
||||
//OOX::CPath pathWord = CString(m_strOutputPath) + FILE_SEPARATOR_STR + _T( "word" );
|
||||
//FileSystem::Directory::CreateDirectory( pathWord.GetPath() );
|
||||
NSDirectory::CreateDirectory( pathWord );
|
||||
|
||||
|
||||
@ -43,10 +43,12 @@ SOURCES += \
|
||||
../../DocDocxConverter/Spa.cpp \
|
||||
../../DocDocxConverter/OleObject.cpp
|
||||
|
||||
build_fast {
|
||||
core_release {
|
||||
SOURCES += \
|
||||
docformatlib_converter.cpp
|
||||
} else {
|
||||
}
|
||||
|
||||
core_debug {
|
||||
SOURCES += \
|
||||
../../DocDocxConverter/AnnotationReferenceDescriptor.cpp \
|
||||
../../DocDocxConverter/CharacterPropertiesMapping.cpp \
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../../DocDocxConverter/AnnotationReferenceDescriptor.cpp"
|
||||
#include "../../DocDocxConverter/CharacterPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/Converter.cpp"
|
||||
|
||||
@ -42,16 +42,16 @@ namespace Writers
|
||||
{
|
||||
public:
|
||||
std::wstring content;
|
||||
CString filename;
|
||||
std::wstring filename;
|
||||
int index;
|
||||
};
|
||||
std::vector<ChartElem*> m_aCharts;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
int nChartCount;
|
||||
public:
|
||||
CString m_sDir;
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
ChartWriter(CString sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
ChartWriter(std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
{
|
||||
nChartCount = 0;
|
||||
}
|
||||
@ -86,8 +86,8 @@ namespace Writers
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
CString sRelPath = _T("/word/charts/") + elem->filename;
|
||||
m_oContentTypesWriter.AddOverride(sRelPath, CString(_T("application/vnd.openxmlformats-officedocument.drawingml.chart+xml")));
|
||||
std::wstring sRelPath = L"/word/charts/" + elem->filename;
|
||||
m_oContentTypesWriter.AddOverride(sRelPath, L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -97,7 +97,7 @@ namespace Writers
|
||||
pChartElem->content = content;
|
||||
pChartElem->index = nChartCount + 1;
|
||||
nChartCount++;
|
||||
pChartElem->filename.Format(L"chart%d.xml", pChartElem->index);
|
||||
pChartElem->filename = L"chart" + std::to_wstring(pChartElem->index) + L".xml";
|
||||
|
||||
sRelsName = L"charts/" + pChartElem->filename;
|
||||
sFileName = pChartElem->filename;
|
||||
|
||||
@ -36,18 +36,18 @@
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
static CString g_string_ct_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">");
|
||||
static CString g_string_ct_Ext = _T("<Default Extension=\"bin\" ContentType=\"application/vnd.openxmlformats-officedocument.oleObject\"/><Default Extension=\"bmp\" ContentType=\"image/bmp\"/><Default Extension=\"jpg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpeg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpe\" ContentType=\"image/jpeg\"/><Default Extension=\"png\" ContentType=\"image/png\"/><Default Extension=\"gif\" ContentType=\"image/gif\"/><Default Extension=\"emf\" ContentType=\"image/x-emf\"/><Default Extension=\"wmf\" ContentType=\"image/x-wmf\"/><Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/><Default Extension=\"xml\" ContentType=\"application/xml\"/><Default Extension=\"xlsx\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"/>");
|
||||
static CString g_string_ct_Override = _T("<Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/><Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/><Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/><Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/><Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/><Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/><Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/><Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/>");
|
||||
static CString g_string_ct_End = _T("</Types>");
|
||||
static std::wstring g_string_ct_Start = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">";
|
||||
static std::wstring g_string_ct_Ext = L"<Default Extension=\"bin\" ContentType=\"application/vnd.openxmlformats-officedocument.oleObject\"/><Default Extension=\"bmp\" ContentType=\"image/bmp\"/><Default Extension=\"jpg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpeg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpe\" ContentType=\"image/jpeg\"/><Default Extension=\"png\" ContentType=\"image/png\"/><Default Extension=\"gif\" ContentType=\"image/gif\"/><Default Extension=\"emf\" ContentType=\"image/x-emf\"/><Default Extension=\"wmf\" ContentType=\"image/x-wmf\"/><Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/><Default Extension=\"xml\" ContentType=\"application/xml\"/><Default Extension=\"xlsx\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"/>";
|
||||
static std::wstring g_string_ct_Override = L"<Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/><Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/><Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/><Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/><Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/><Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/><Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/><Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/>";
|
||||
static std::wstring g_string_ct_End = L"</Types>";
|
||||
|
||||
class ContentTypesWriter
|
||||
{
|
||||
XmlUtils::CStringWriter m_oWriter;
|
||||
CString m_sDir;
|
||||
std::wstring m_sDir;
|
||||
XmlUtils::CStringWriter m_oAdditional;
|
||||
public:
|
||||
ContentTypesWriter(CString sDir):m_sDir(sDir)
|
||||
ContentTypesWriter(std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
@ -58,7 +58,7 @@ namespace Writers
|
||||
m_oWriter.Write(m_oAdditional);
|
||||
m_oWriter.WriteString(g_string_ct_End);
|
||||
|
||||
OOX::CPath filePath = m_sDir + _T("/[Content_Types].xml");
|
||||
OOX::CPath filePath = m_sDir + L"/[Content_Types].xml";
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
@ -66,12 +66,12 @@ namespace Writers
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
}
|
||||
void AddOverride(const CString& PartName, const CString& ContentType)
|
||||
void AddOverride(const std::wstring& PartName, const std::wstring& ContentType)
|
||||
{
|
||||
CString sOverride;sOverride.Format(_T("<Override PartName=\"%ls\" ContentType=\"%ls\"/>"),PartName , ContentType);
|
||||
std::wstring sOverride = L"<Override PartName=\"" + PartName+ L"\ ContentType=\"" + ContentType + L"\"/>";
|
||||
m_oAdditional.WriteString(sOverride);
|
||||
}
|
||||
void AddOverrideRaw(const CString& sXml)
|
||||
void AddOverrideRaw(const std::wstring& sXml)
|
||||
{
|
||||
m_oAdditional.WriteString(sXml);
|
||||
}
|
||||
|
||||
@ -39,26 +39,26 @@ namespace Writers
|
||||
class MediaWriter
|
||||
{
|
||||
XmlUtils::CStringWriter m_oWriter;
|
||||
CString m_sDir;
|
||||
CString m_sMediaDir;
|
||||
std::wstring m_sDir;
|
||||
std::wstring m_sMediaDir;
|
||||
public:
|
||||
std::vector<CString> m_aImageNames;
|
||||
std::vector<std::wstring> m_aImageNames;
|
||||
long nImageCount;
|
||||
public:
|
||||
MediaWriter(CString sDir):m_sDir(sDir)
|
||||
|
||||
MediaWriter(std::wstring sDir):m_sDir(sDir)
|
||||
{
|
||||
nImageCount = 0;
|
||||
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("media");
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"media";
|
||||
|
||||
m_sMediaDir = filePath.GetPath();
|
||||
}
|
||||
CString AddImageGetNewPath()
|
||||
std::wstring AddImageGetNewPath()
|
||||
{
|
||||
OOX::CSystemUtility::CreateDirectories(m_sMediaDir);
|
||||
|
||||
CString sNewImgName;sNewImgName.Format(_T("image%d.jpg"), (nImageCount + 1));
|
||||
CString sNewImg = m_sMediaDir + FILE_SEPARATOR_STR + sNewImgName;
|
||||
std::wstring sNewImgName = L"image" + std::to_wstring(nImageCount + 1) + L".jpg";
|
||||
std::wstring sNewImg = m_sMediaDir + FILE_SEPARATOR_STR + sNewImgName;
|
||||
nImageCount++;
|
||||
return sNewImg;
|
||||
}
|
||||
@ -72,23 +72,23 @@ namespace Writers
|
||||
DWORD dwSizeRead = (DWORD)fread((void*)pData, 1, size, pFile);
|
||||
if(dwSizeRead > 0)
|
||||
{
|
||||
CString sNewImagePath = AddImageGetNewPath();
|
||||
std::wstring sNewImagePath = AddImageGetNewPath();
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sNewImagePath);
|
||||
oFile.WriteFile(pData, dwSizeRead);
|
||||
oFile.CloseFile();
|
||||
CString sFilename = NSSystemPath::GetFileName(sNewImagePath);
|
||||
std::wstring sFilename = NSSystemPath::GetFileName(sNewImagePath);
|
||||
m_aImageNames.push_back(sFilename);
|
||||
}
|
||||
RELEASEARRAYOBJECTS(pData);
|
||||
}
|
||||
}
|
||||
void AddImage(const CString& sImg)
|
||||
void AddImage(const std::wstring& sImg)
|
||||
{
|
||||
OOX::CPath pathNewImg = AddImageGetNewPath();
|
||||
|
||||
NSFile::CFileBinary::Copy(sImg, pathNewImg.GetPath());
|
||||
CString sFilename = NSSystemPath::GetFileName(pathNewImg.GetPath()).c_str();
|
||||
std::wstring sFilename = NSSystemPath::GetFileName(pathNewImg.GetPath()).c_str();
|
||||
m_aImageNames.push_back(sFilename);
|
||||
}
|
||||
};
|
||||
|
||||
@ -98,11 +98,11 @@ public:
|
||||
long nMHeader = SerializeCommon::Round(Header * g_dKoef_mm_to_twips);
|
||||
long nMFooter = SerializeCommon::Round(Footer * g_dKoef_mm_to_twips);
|
||||
if(!sHeaderFooterReference.IsEmpty())
|
||||
sRes.Append(sHeaderFooterReference);
|
||||
sRes += sHeaderFooterReference;
|
||||
if(!footnotePr.IsEmpty())
|
||||
sRes.Append(footnotePr);
|
||||
sRes += footnotePr;
|
||||
if(!endnotePr.IsEmpty())
|
||||
sRes.Append(endnotePr);
|
||||
sRes += endnotePr;
|
||||
if(bSectionType)
|
||||
{
|
||||
CString sType;
|
||||
@ -126,18 +126,18 @@ public:
|
||||
sRes.AppendFormat(_T(" w:header=\"%d\""), nMHeader);
|
||||
if(bFooter)
|
||||
sRes.AppendFormat(_T(" w:footer=\"%d\""), nMFooter);
|
||||
sRes.Append(_T("/>"));
|
||||
sRes += L"/>";
|
||||
if(!pgBorders.IsEmpty())
|
||||
sRes.Append(pgBorders);
|
||||
sRes += pgBorders;
|
||||
if(bPageNumStart)
|
||||
sRes.AppendFormat(_T("<w:pgNumType w:start=\"%d\"/>"), PageNumStart);
|
||||
if(!cols.IsEmpty())
|
||||
sRes.Append(cols);
|
||||
sRes.Append(_T("<w:docGrid w:linePitch=\"360\"/>"));
|
||||
sRes += cols;
|
||||
sRes += L"<w:docGrid w:linePitch=\"360\"/>";
|
||||
if(bTitlePg && TitlePg)
|
||||
sRes.Append(_T("<w:titlePg/>"));
|
||||
sRes += L"<w:titlePg/>";
|
||||
if(!sectPrChange.IsEmpty())
|
||||
sRes.Append(sectPrChange);
|
||||
sRes += sectPrChange;
|
||||
return sRes;
|
||||
}
|
||||
};
|
||||
@ -292,9 +292,9 @@ public:
|
||||
if(ThemeColor.bColor)
|
||||
sBackground += L" w:themeColor=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
if(ThemeColor.bTint)
|
||||
sBackground += L" w:themeColorTint=\"" + ThemeColor.ToStringTint() + L"\"";
|
||||
sBackground += L" w:themeTint=\"" + ThemeColor.ToStringTint() + L"\"";
|
||||
if(ThemeColor.bShade)
|
||||
sBackground += L" w:themeColorShade=\"" + ThemeColor.ToStringShade() + L"\"";
|
||||
sBackground += L" w:themeShade=\"" + ThemeColor.ToStringShade() + L"\"";
|
||||
}
|
||||
|
||||
if (!bColor && !bThemeColor)
|
||||
@ -330,13 +330,13 @@ public:
|
||||
CString sShd;
|
||||
if(bColor || (bThemeColor && ThemeColor.IsNoEmpty()))
|
||||
{
|
||||
sShd.Append(_T("<w:shd w:val=\"clear\" w:color=\"auto\""));
|
||||
sShd += L"<w:shd w:val=\"clear\" w:color=\"auto\"";
|
||||
if(bColor)
|
||||
sShd.AppendFormat(_T(" w:fill=\"%ls\""), (const TCHAR *) Color.ToString());
|
||||
if(bThemeColor && ThemeColor.IsNoEmpty())
|
||||
{
|
||||
if(ThemeColor.Auto && !bColor)
|
||||
sShd.Append(_T(" w:fill=\"auto\""));
|
||||
sShd += L" w:fill=\"auto\"";
|
||||
if(ThemeColor.bColor)
|
||||
sShd.AppendFormat(_T(" w:themeFill=\"%ls\""), (const TCHAR *) ThemeColor.ToStringColor());
|
||||
if(ThemeColor.bTint)
|
||||
@ -344,7 +344,7 @@ public:
|
||||
if(ThemeColor.bShade)
|
||||
sShd.AppendFormat(_T(" w:themeFillShade=\"%ls\""), (const TCHAR *) ThemeColor.ToStringShade());
|
||||
}
|
||||
sShd.Append(_T("/>"));
|
||||
sShd += (_T("/>"));
|
||||
}
|
||||
return sShd;
|
||||
}
|
||||
@ -533,9 +533,9 @@ public:
|
||||
{
|
||||
switch(FontHint)
|
||||
{
|
||||
case 0: sFont.Append(_T(" w:hint=\"cs\""));break;
|
||||
case 2: sFont.Append(_T(" w:hint=\"eastAsia\""));break;
|
||||
default:sFont.Append(_T(" w:hint=\"default\""));break;
|
||||
case 0: sFont += L" w:hint=\"cs\""; break;
|
||||
case 2: sFont += L" w:hint=\"eastAsia\""; break;
|
||||
default:sFont += L" w:hint=\"default\""; break;
|
||||
}
|
||||
}
|
||||
sFont += _T("/>");
|
||||
@ -612,7 +612,7 @@ public:
|
||||
if(bThemeColor && ThemeColor.IsNoEmpty())
|
||||
{
|
||||
if(ThemeColor.Auto && !bColor)
|
||||
sColor.Append(_T(" w:val=\"auto\""));
|
||||
sColor += L" w:val=\"auto\"";
|
||||
if(ThemeColor.bColor)
|
||||
sColor.AppendFormat(_T(" w:themeColor=\"%ls\""), (const TCHAR *) ThemeColor.ToStringColor());
|
||||
if(ThemeColor.bTint)
|
||||
@ -620,7 +620,7 @@ public:
|
||||
if(ThemeColor.bShade)
|
||||
sColor.AppendFormat(_T(" w:themeShade=\"%ls\""), (const TCHAR *) ThemeColor.ToStringShade());
|
||||
}
|
||||
sColor.Append(_T("/>"));
|
||||
sColor += L"/>";
|
||||
pCStringWriter->WriteString(sColor);
|
||||
}
|
||||
if(bSpacing)
|
||||
@ -1316,7 +1316,7 @@ public:
|
||||
docLvlText* item = Text[i];
|
||||
if(item->bText)
|
||||
{
|
||||
sText.Append(item->Text);
|
||||
sText += (item->Text);
|
||||
}
|
||||
else if(item->bNumber)
|
||||
{
|
||||
@ -1543,20 +1543,20 @@ public:
|
||||
sStart.Format(_T("<w:hyperlink r:id=\"%ls\""), (const TCHAR *) sCorrect_rId);
|
||||
if(false == tooltip.IsEmpty())
|
||||
{
|
||||
sStart.Append(_T(" w:tooltip=\""));
|
||||
sStart.Append(sCorrect_tooltip);
|
||||
sStart.Append(_T("\""));
|
||||
sStart += L" w:tooltip=\"";
|
||||
sStart += sCorrect_tooltip;
|
||||
sStart += L"\"";
|
||||
}
|
||||
if(false == anchor.IsEmpty())
|
||||
{
|
||||
sStart.Append(_T(" w:anchor=\""));
|
||||
sStart.Append(sCorrect_anchor);
|
||||
sStart.Append(_T("\""));
|
||||
sStart += L" w:anchor=\"";
|
||||
sStart += sCorrect_anchor;
|
||||
sStart += L"\"";
|
||||
}
|
||||
sStart.Append(_T(" w:history=\"1\">"));
|
||||
sStart += L" w:history=\"1\">";
|
||||
wr.WriteString(sStart);
|
||||
wr.Write(writer);
|
||||
wr.WriteString(CString(_T("</w:hyperlink>")));
|
||||
wr.WriteString(L"</w:hyperlink>");
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1629,17 +1629,17 @@ public:
|
||||
CString writeRef(const CString& sBefore, const CString& sRef, const CString& sAfter)
|
||||
{
|
||||
CString sRes;
|
||||
sRes.Append(writeRef(this, sBefore, sRef, sAfter));
|
||||
sRes += (writeRef(this, sBefore, sRef, sAfter));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
sRes.Append(writeRef(replies[i], sBefore, sRef, sAfter));
|
||||
sRes += (writeRef(replies[i], sBefore, sRef, sAfter));
|
||||
return sRes;
|
||||
}
|
||||
CString writeTemplates(funcArg fReadFunction)
|
||||
{
|
||||
CString sRes;
|
||||
sRes.Append(fReadFunction(this));
|
||||
sRes += (fReadFunction(this));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
sRes.Append(fReadFunction(replies[i]));
|
||||
sRes += (fReadFunction(replies[i]));
|
||||
return sRes;
|
||||
}
|
||||
static CString writeRef(CComment* pComment, const CString& sBefore, const CString& sRef, const CString& sAfter)
|
||||
@ -1650,9 +1650,9 @@ public:
|
||||
pComment->bIdFormat = true;
|
||||
pComment->IdFormat = pComment->m_oFormatIdCounter.getNextId();
|
||||
}
|
||||
sRes.Append(sBefore);
|
||||
sRes += (sBefore);
|
||||
sRes.AppendFormat(_T("<%ls w:id=\"%d\"/>"), (const TCHAR *) sRef, pComment->IdFormat);
|
||||
sRes.Append(sAfter);
|
||||
sRes += (sAfter);
|
||||
return sRes;
|
||||
}
|
||||
static bool writeContentWritePart(CComment* pComment, CString& sText, int nPrevIndex, int nCurIndex, bool bFirst, CString& sRes)
|
||||
@ -1672,8 +1672,8 @@ public:
|
||||
}
|
||||
CString sFormat = _T("<w:p w14:paraId=\"%ls\" w14:textId=\"%ls\"><w:pPr><w:spacing w:line=\"240\" w:after=\"0\" w:lineRule=\"auto\" w:before=\"0\"/><w:ind w:firstLine=\"0\" w:left=\"0\" w:right=\"0\"/><w:jc w:val=\"left\"/></w:pPr><w:r><w:rPr><w:rFonts w:eastAsia=\"Arial\" w:ascii=\"Arial\" w:hAnsi=\"Arial\" w:cs=\"Arial\"/><w:sz w:val=\"22\"/></w:rPr><w:t xml:space=\"preserve\">");
|
||||
sRes.AppendFormat((const TCHAR *) sFormat, (const TCHAR *) sId, (const TCHAR *) sId);
|
||||
sRes.Append(sPart);
|
||||
sRes.Append(_T("</w:t></w:r></w:p>"));
|
||||
sRes += (sPart);
|
||||
sRes += (_T("</w:t></w:r></w:p>"));
|
||||
return bFirst;
|
||||
}
|
||||
static CString writeContent(CComment* pComment)
|
||||
@ -1689,9 +1689,9 @@ public:
|
||||
if(false == pComment->UserName.IsEmpty())
|
||||
{
|
||||
CString sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
|
||||
sRes.Append(_T(" w:author=\""));
|
||||
sRes.Append(sUserName);
|
||||
sRes.Append(_T("\""));
|
||||
sRes += (_T(" w:author=\""));
|
||||
sRes += (sUserName);
|
||||
sRes += (_T("\""));
|
||||
//делаем initials
|
||||
int nTokenPos = 0;
|
||||
CString strToken = pComment->UserName.Tokenize(_T(" "), nTokenPos);
|
||||
@ -1706,18 +1706,18 @@ public:
|
||||
if(false == pComment->Date.IsEmpty())
|
||||
{
|
||||
CString sDate = XmlUtils::EncodeXmlString(pComment->Date);
|
||||
sRes.Append(_T(" w:date=\""));
|
||||
sRes.Append(sDate);
|
||||
sRes.Append(_T("\""));
|
||||
sRes += (_T(" w:date=\""));
|
||||
sRes += (sDate);
|
||||
sRes += (_T("\""));
|
||||
}
|
||||
if(false == sInitials.IsEmpty())
|
||||
{
|
||||
sInitials = XmlUtils::EncodeXmlString(sInitials);
|
||||
sRes.Append(_T(" w:initials=\""));
|
||||
sRes.Append(sInitials);
|
||||
sRes.Append(_T("\""));
|
||||
sRes += (_T(" w:initials=\""));
|
||||
sRes += (sInitials);
|
||||
sRes += (_T("\""));
|
||||
}
|
||||
sRes.Append(_T(">"));
|
||||
sRes += (_T(">"));
|
||||
if(false == pComment->Text.IsEmpty())
|
||||
{
|
||||
CString sText = pComment->Text;
|
||||
@ -1735,7 +1735,7 @@ public:
|
||||
}
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, sText.GetLength(), bFirst, sRes);
|
||||
}
|
||||
sRes.Append(_T("</w:comment>"));
|
||||
sRes += (_T("</w:comment>"));
|
||||
return sRes;
|
||||
}
|
||||
static CString writeContentExt(CComment* pComment)
|
||||
@ -1763,11 +1763,11 @@ public:
|
||||
{
|
||||
CString sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
|
||||
CString sUserId = XmlUtils::EncodeXmlString(pComment->UserId);
|
||||
sRes.Append(_T("<w15:person w15:author=\""));
|
||||
sRes.Append(sUserName);
|
||||
sRes.Append(_T("\"><w15:presenceInfo w15:providerId=\"Teamlab\" w15:userId=\""));
|
||||
sRes.Append(sUserId);
|
||||
sRes.Append(_T("\"/></w15:person>"));
|
||||
sRes += (_T("<w15:person w15:author=\""));
|
||||
sRes += (sUserName);
|
||||
sRes += (_T("\"><w15:presenceInfo w15:providerId=\"Teamlab\" w15:userId=\""));
|
||||
sRes += (sUserId);
|
||||
sRes += (_T("\"/></w15:person>"));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -1823,7 +1823,7 @@ public:
|
||||
CString sRes;
|
||||
for (std::map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes.Append(it->second->writeTemplates(CComment::writeContent));
|
||||
sRes += (it->second->writeTemplates(CComment::writeContent));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -1832,7 +1832,7 @@ public:
|
||||
CString sRes;
|
||||
for (std::map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes.Append(it->second->writeTemplates(CComment::writeContentExt));
|
||||
sRes += (it->second->writeTemplates(CComment::writeContentExt));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -1841,7 +1841,7 @@ public:
|
||||
CString sRes;
|
||||
for (std::map<CString, CComment*>::const_iterator it = m_mapAuthors.begin(); it != m_mapAuthors.end(); ++it)
|
||||
{
|
||||
sRes.Append(it->second->writePeople(it->second));
|
||||
sRes += (it->second->writePeople(it->second));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -1921,6 +1921,7 @@ public:
|
||||
CString sSizeRelV;
|
||||
int m_nDocPr;
|
||||
CString sGraphicFramePr;
|
||||
CString sDocPr;
|
||||
|
||||
CDrawingPropertyWrap DrawingPropertyWrap;
|
||||
|
||||
@ -2015,9 +2016,9 @@ public:
|
||||
sXml.AppendFormat(_T("<wp:effectExtent l=\"%lld\" t=\"%lld\" r=\"%lld\" b=\"%lld\"/>"), emuEffectExtentL, emuEffectExtentT, emuEffectExtentR, emuEffectExtentB);
|
||||
}
|
||||
|
||||
if(bChart)
|
||||
if(!sDocPr.IsEmpty())
|
||||
{
|
||||
sXml.AppendFormat(_T("<wp:docPr id=\"%d\" name=\"Chart %d\"/>"), m_nDocPr, m_nDocPr);
|
||||
sXml += (sDocPr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2025,11 +2026,11 @@ public:
|
||||
}
|
||||
if(!sGraphicFramePr.IsEmpty())
|
||||
{
|
||||
sXml.Append(sGraphicFramePr);
|
||||
sXml += (sGraphicFramePr);
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml.Append(_T("<wp:cNvGraphicFramePr/>"));
|
||||
sXml += (_T("<wp:cNvGraphicFramePr/>"));
|
||||
}
|
||||
if(bChart)
|
||||
{
|
||||
@ -2037,7 +2038,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml.Append(_T("</wp:inline>"));
|
||||
sXml += (_T("</wp:inline>"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2074,7 +2075,7 @@ public:
|
||||
nLayoutInCell = 0;
|
||||
|
||||
if(bChart)
|
||||
sXml.Append(_T("<w:drawing>"));
|
||||
sXml += (_T("<w:drawing>"));
|
||||
|
||||
sXml.AppendFormat(_T("<wp:anchor xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" distT=\"%lld\" distB=\"%lld\" distL=\"%lld\" distR=\"%lld\" simplePos=\"%d\" relativeHeight=\"%u\" behindDoc=\"%d\" locked=\"0\" layoutInCell=\"%d\" allowOverlap=\"1\">"), emuDistT, emuDistB, emuDistL, emuDistR, nSimplePos, nRelativeHeight, nBehindDoc, nLayoutInCell);
|
||||
__int64 emuX = 0;
|
||||
@ -2214,7 +2215,7 @@ public:
|
||||
sXml.AppendFormat(_T("<wp:lineTo x=\"%lld\" y=\"%lld\"/>"), emuX, emuY);
|
||||
}
|
||||
}
|
||||
sXml.Append(_T("</wp:wrapPolygon>"));
|
||||
sXml += (_T("</wp:wrapPolygon>"));
|
||||
sXml.AppendFormat(_T("</wp:%ls>"), (const TCHAR *) sTagName);
|
||||
}
|
||||
else
|
||||
@ -2224,30 +2225,30 @@ public:
|
||||
c_oSerImageType2::WrapThrough == DrawingPropertyWrap.WrappingType ||
|
||||
c_oSerImageType2::WrapTight == DrawingPropertyWrap.WrappingType)
|
||||
{
|
||||
sXml.Append(_T("<wp:wrapSquare wrapText=\"bothSides\"/>"));
|
||||
sXml += (_T("<wp:wrapSquare wrapText=\"bothSides\"/>"));
|
||||
}
|
||||
else
|
||||
sXml.AppendFormat(_T("<wp:%ls/>"), (const TCHAR *) sTagName);
|
||||
}
|
||||
}
|
||||
else
|
||||
sXml.Append(_T("<wp:wrapNone/>"));
|
||||
sXml += (_T("<wp:wrapNone/>"));
|
||||
|
||||
if(bChart)
|
||||
{
|
||||
sXml.AppendFormat(_T("<wp:docPr id=\"%d\" name=\"Chart %d\"/>"), m_nDocPr, m_nDocPr);
|
||||
}
|
||||
if(!sDocPr.IsEmpty())
|
||||
{
|
||||
sXml += (sDocPr);
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml.AppendFormat(_T("<wp:docPr id=\"%d\" name=\"\"/>"), m_nDocPr);
|
||||
}
|
||||
if(!sGraphicFramePr.IsEmpty())
|
||||
{
|
||||
sXml.Append(sGraphicFramePr);
|
||||
sXml += (sGraphicFramePr);
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml.Append(_T("<wp:cNvGraphicFramePr/>"));
|
||||
sXml += (_T("<wp:cNvGraphicFramePr/>"));
|
||||
}
|
||||
if(bChart)
|
||||
{
|
||||
@ -2256,17 +2257,17 @@ public:
|
||||
|
||||
if(!sSizeRelH.IsEmpty())
|
||||
{
|
||||
sXml.Append(sSizeRelH);
|
||||
sXml += (sSizeRelH);
|
||||
}
|
||||
if(!sSizeRelV.IsEmpty())
|
||||
{
|
||||
sXml.Append(sSizeRelV);
|
||||
sXml += (sSizeRelV);
|
||||
}
|
||||
|
||||
sXml.Append(_T("</wp:anchor>"));
|
||||
sXml += (_T("</wp:anchor>"));
|
||||
|
||||
if(bChart)
|
||||
sXml.Append(_T("</w:drawing>"));
|
||||
sXml += (_T("</w:drawing>"));
|
||||
}
|
||||
}
|
||||
return sXml;
|
||||
@ -2296,41 +2297,41 @@ public:
|
||||
CString Write(bool bBandSize, bool bLayout)
|
||||
{
|
||||
CString sRes;
|
||||
sRes.Append(_T("<w:tblPr>"));
|
||||
sRes += (_T("<w:tblPr>"));
|
||||
if(false == Style.IsEmpty())
|
||||
sRes.Append(Style);
|
||||
sRes += (Style);
|
||||
if(false == tblpPr.IsEmpty())
|
||||
sRes.Append(tblpPr);
|
||||
sRes += (tblpPr);
|
||||
if(!RowBandSize.IsEmpty())
|
||||
sRes.Append(RowBandSize);
|
||||
sRes += (RowBandSize);
|
||||
if(!ColBandSize.IsEmpty())
|
||||
sRes.Append(ColBandSize);
|
||||
sRes += (ColBandSize);
|
||||
if(false == TableW.IsEmpty())
|
||||
sRes.Append(TableW);
|
||||
sRes += (TableW);
|
||||
if(false == Jc.IsEmpty())
|
||||
sRes.Append(Jc);
|
||||
sRes += (Jc);
|
||||
if(false == TableCellSpacing.IsEmpty())
|
||||
sRes.Append(TableCellSpacing);
|
||||
sRes += (TableCellSpacing);
|
||||
if(false == TableInd.IsEmpty())
|
||||
sRes.Append(TableInd);
|
||||
sRes += (TableInd);
|
||||
if(false == TableBorders.IsEmpty())
|
||||
sRes.Append(TableBorders);
|
||||
sRes += (TableBorders);
|
||||
if(false == Shd.IsEmpty())
|
||||
sRes.Append(Shd);
|
||||
sRes += (Shd);
|
||||
if(bLayout)
|
||||
{
|
||||
if(false == Layout.IsEmpty())
|
||||
sRes.Append(Layout);
|
||||
sRes += (Layout);
|
||||
else if(g_nCurFormatVersion < 4)
|
||||
sRes.Append(_T("<w:tblLayout w:type=\"fixed\"/>"));
|
||||
sRes += (_T("<w:tblLayout w:type=\"fixed\"/>"));
|
||||
}
|
||||
if(false == TableCellMar.IsEmpty())
|
||||
sRes.Append(TableCellMar);
|
||||
sRes += (TableCellMar);
|
||||
if(false == Look.IsEmpty())
|
||||
sRes.Append(Look);
|
||||
sRes += (Look);
|
||||
if(!tblPrChange.IsEmpty())
|
||||
sRes.Append(tblPrChange);
|
||||
sRes.Append(_T("</w:tblPr>"));
|
||||
sRes += (tblPrChange);
|
||||
sRes += (_T("</w:tblPr>"));
|
||||
return sRes;
|
||||
}
|
||||
};
|
||||
@ -2548,17 +2549,17 @@ public:
|
||||
sStart.Format(_T("<w:hyperlink r:id=\"%ls\""), (const TCHAR *) sCorrect_rId);
|
||||
if(false == sTooltip.IsEmpty())
|
||||
{
|
||||
sStart.Append(_T(" w:tooltip=\""));
|
||||
sStart.Append(sCorrect_tooltip);
|
||||
sStart.Append(_T("\""));
|
||||
sStart += (_T(" w:tooltip=\""));
|
||||
sStart += (sCorrect_tooltip);
|
||||
sStart += (_T("\""));
|
||||
}
|
||||
if(false == sAnchor.IsEmpty())
|
||||
{
|
||||
sStart.Append(_T(" w:anchor=\""));
|
||||
sStart.Append(sCorrect_anchor);
|
||||
sStart.Append(_T("\""));
|
||||
sStart += (_T(" w:anchor=\""));
|
||||
sStart += (sCorrect_anchor);
|
||||
sStart += (_T("\""));
|
||||
}
|
||||
sStart.Append(_T(" w:history=\"1\">"));
|
||||
sStart += (_T(" w:history=\"1\">"));
|
||||
wr.WriteString(sStart);
|
||||
wr.Write(writer);
|
||||
wr.WriteString(CString(_T("</w:hyperlink>")));
|
||||
@ -2579,8 +2580,8 @@ public:
|
||||
{
|
||||
CString sCorrect_Instr = XmlUtils::EncodeXmlString(sInstr);
|
||||
CString sStart(_T("<w:fldSimple w:instr=\""));
|
||||
sStart.Append(sCorrect_Instr);
|
||||
sStart.Append(_T("\">"));
|
||||
sStart += (sCorrect_Instr);
|
||||
sStart += (_T("\">"));
|
||||
wr.WriteString(sStart);
|
||||
wr.Write(writer);
|
||||
wr.WriteString(CString(_T("</w:fldSimple>")));
|
||||
|
||||
@ -792,9 +792,9 @@ public:
|
||||
CString sStyleName(m_oBufferedStream.GetString3(length));
|
||||
sStyleName = XmlUtils::EncodeXmlString(sStyleName);
|
||||
CString sStyle;
|
||||
sStyle.Append(_T("<w:pStyle w:val=\""));
|
||||
sStyle.Append(sStyleName);
|
||||
sStyle.Append(_T("\" />"));
|
||||
sStyle += L"<w:pStyle w:val=\"";
|
||||
sStyle += sStyleName;
|
||||
sStyle += L"\" />";
|
||||
pCStringWriter->WriteString(sStyle);
|
||||
}break;
|
||||
case c_oSerProp_pPrType::numPr:
|
||||
@ -1678,9 +1678,9 @@ public:
|
||||
res = Read1(length, &Binary_tblPrReader::ReadCellMargins, this, &oTempWriter);
|
||||
if(oTempWriter.GetCurSize() > 0)
|
||||
{
|
||||
pWiterTblPr->TableCellMar.Append(CString(_T("<w:tblCellMar>")));
|
||||
pWiterTblPr->TableCellMar.Append(oTempWriter.GetData());
|
||||
pWiterTblPr->TableCellMar.Append(CString(_T("</w:tblCellMar>")));
|
||||
pWiterTblPr->TableCellMar += L"<w:tblCellMar>";
|
||||
pWiterTblPr->TableCellMar += oTempWriter.GetData();
|
||||
pWiterTblPr->TableCellMar += L"</w:tblCellMar>";
|
||||
}
|
||||
}
|
||||
else if( c_oSerProp_tblPrType::TableBorders == type )
|
||||
@ -1691,9 +1691,9 @@ public:
|
||||
{
|
||||
XmlUtils::CStringWriter oTempWriter;
|
||||
odocBorders.Write(&oTempWriter, false);
|
||||
pWiterTblPr->TableBorders.Append(CString(_T("<w:tblBorders>")));
|
||||
pWiterTblPr->TableBorders.Append(oTempWriter.GetData());
|
||||
pWiterTblPr->TableBorders.Append(CString(_T("</w:tblBorders>")));
|
||||
pWiterTblPr->TableBorders += L"<w:tblBorders>";
|
||||
pWiterTblPr->TableBorders += oTempWriter.GetData();
|
||||
pWiterTblPr->TableBorders += L"</w:tblBorders>";
|
||||
}
|
||||
}
|
||||
else if( c_oSerProp_tblPrType::Shd == type )
|
||||
@ -1710,17 +1710,17 @@ public:
|
||||
{
|
||||
XmlUtils::CStringWriter oTempWriter;
|
||||
res = Read2(length, &Binary_tblPrReader::Read_tblpPr, this, &oTempWriter);
|
||||
pWiterTblPr->tblpPr.Append(CString(_T("<w:tblpPr w:vertAnchor=\"page\" w:horzAnchor=\"page\"")));
|
||||
pWiterTblPr->tblpPr.Append(oTempWriter.GetData());
|
||||
pWiterTblPr->tblpPr.Append(CString(_T("/>")));
|
||||
pWiterTblPr->tblpPr += L"<w:tblpPr w:vertAnchor=\"page\" w:horzAnchor=\"page\"";
|
||||
pWiterTblPr->tblpPr += oTempWriter.GetData();
|
||||
pWiterTblPr->tblpPr += L"/>";
|
||||
}
|
||||
else if( c_oSerProp_tblPrType::tblpPr2 == type )
|
||||
{
|
||||
XmlUtils::CStringWriter oTempWriter;
|
||||
res = Read2(length, &Binary_tblPrReader::Read_tblpPr2, this, &oTempWriter);
|
||||
pWiterTblPr->tblpPr.Append(CString(_T("<w:tblpPr")));
|
||||
pWiterTblPr->tblpPr.Append(oTempWriter.GetData());
|
||||
pWiterTblPr->tblpPr.Append(CString(_T("/>")));
|
||||
pWiterTblPr->tblpPr += L"<w:tblpPr";
|
||||
pWiterTblPr->tblpPr += oTempWriter.GetData();
|
||||
pWiterTblPr->tblpPr += L"/>";
|
||||
}
|
||||
else if( c_oSerProp_tblPrType::Style == type )
|
||||
{
|
||||
@ -1888,10 +1888,10 @@ public:
|
||||
CString sXml;
|
||||
switch(m_oBufferedStream.GetUChar())
|
||||
{
|
||||
case 0:sXml.Append(_T(" w:horzAnchor=\"margin\""));break;
|
||||
case 1:sXml.Append(_T(" w:horzAnchor=\"page\""));break;
|
||||
case 2:sXml.Append(_T(" w:horzAnchor=\"text\""));break;
|
||||
default:sXml.Append(_T(" w:horzAnchor=\"text\""));break;
|
||||
case 0:sXml += (_T(" w:horzAnchor=\"margin\""));break;
|
||||
case 1:sXml += (_T(" w:horzAnchor=\"page\""));break;
|
||||
case 2:sXml += (_T(" w:horzAnchor=\"text\""));break;
|
||||
default:sXml += (_T(" w:horzAnchor=\"text\""));break;
|
||||
}
|
||||
pCStringWriter->WriteString(sXml);
|
||||
}
|
||||
@ -1907,12 +1907,12 @@ public:
|
||||
CString sXml;
|
||||
switch(m_oBufferedStream.GetUChar())
|
||||
{
|
||||
case 0:sXml.Append(_T(" w:tblpXSpec=\"center\""));break;
|
||||
case 1:sXml.Append(_T(" w:tblpXSpec=\"inside\""));break;
|
||||
case 2:sXml.Append(_T(" w:tblpXSpec=\"left\""));break;
|
||||
case 3:sXml.Append(_T(" w:tblpXSpec=\"outside\""));break;
|
||||
case 4:sXml.Append(_T(" w:tblpXSpec=\"right\""));break;
|
||||
default:sXml.Append(_T(" w:tblpXSpec=\"left\""));break;
|
||||
case 0:sXml += (_T(" w:tblpXSpec=\"center\""));break;
|
||||
case 1:sXml += (_T(" w:tblpXSpec=\"inside\""));break;
|
||||
case 2:sXml += (_T(" w:tblpXSpec=\"left\""));break;
|
||||
case 3:sXml += (_T(" w:tblpXSpec=\"outside\""));break;
|
||||
case 4:sXml += (_T(" w:tblpXSpec=\"right\""));break;
|
||||
default:sXml += (_T(" w:tblpXSpec=\"left\""));break;
|
||||
}
|
||||
pCStringWriter->WriteString(sXml);
|
||||
}
|
||||
@ -1921,10 +1921,10 @@ public:
|
||||
CString sXml;
|
||||
switch(m_oBufferedStream.GetUChar())
|
||||
{
|
||||
case 0:sXml.Append(_T(" w:vertAnchor=\"margin\""));break;
|
||||
case 1:sXml.Append(_T(" w:vertAnchor=\"page\""));break;
|
||||
case 2:sXml.Append(_T(" w:vertAnchor=\"text\""));break;
|
||||
default:sXml.Append(_T(" w:vertAnchor=\"text\""));break;
|
||||
case 0:sXml += (_T(" w:vertAnchor=\"margin\""));break;
|
||||
case 1:sXml += (_T(" w:vertAnchor=\"page\""));break;
|
||||
case 2:sXml += (_T(" w:vertAnchor=\"text\""));break;
|
||||
default:sXml += (_T(" w:vertAnchor=\"text\""));break;
|
||||
}
|
||||
pCStringWriter->WriteString(sXml);
|
||||
}
|
||||
@ -1940,13 +1940,13 @@ public:
|
||||
CString sXml;
|
||||
switch(m_oBufferedStream.GetUChar())
|
||||
{
|
||||
case 0:sXml.Append(_T(" w:tblpYSpec=\"bottom\""));break;
|
||||
case 1:sXml.Append(_T(" w:tblpYSpec=\"center\""));break;
|
||||
case 2:sXml.Append(_T(" w:tblpYSpec=\"inline\""));break;
|
||||
case 3:sXml.Append(_T(" w:tblpYSpec=\"inside\""));break;
|
||||
case 4:sXml.Append(_T(" w:tblpYSpec=\"outside\""));break;
|
||||
case 5:sXml.Append(_T(" w:tblpYSpec=\"top\""));break;
|
||||
default:sXml.Append(_T(" w:tblpYSpec=\"top\""));break;
|
||||
case 0:sXml += (_T(" w:tblpYSpec=\"bottom\""));break;
|
||||
case 1:sXml += (_T(" w:tblpYSpec=\"center\""));break;
|
||||
case 2:sXml += (_T(" w:tblpYSpec=\"inline\""));break;
|
||||
case 3:sXml += (_T(" w:tblpYSpec=\"inside\""));break;
|
||||
case 4:sXml += (_T(" w:tblpYSpec=\"outside\""));break;
|
||||
case 5:sXml += (_T(" w:tblpYSpec=\"top\""));break;
|
||||
default:sXml += (_T(" w:tblpYSpec=\"top\""));break;
|
||||
}
|
||||
pCStringWriter->WriteString(sXml);
|
||||
}
|
||||
@ -3058,36 +3058,36 @@ public:
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 0: sSchemeMapping.Append(_T(" w:accent1"));break;
|
||||
case 1: sSchemeMapping.Append(_T(" w:accent2"));break;
|
||||
case 2: sSchemeMapping.Append(_T(" w:accent3"));break;
|
||||
case 3: sSchemeMapping.Append(_T(" w:accent4"));break;
|
||||
case 4: sSchemeMapping.Append(_T(" w:accent5"));break;
|
||||
case 5: sSchemeMapping.Append(_T(" w:accent6"));break;
|
||||
case 6: sSchemeMapping.Append(_T(" w:bg1"));break;
|
||||
case 7: sSchemeMapping.Append(_T(" w:bg2"));break;
|
||||
case 8: sSchemeMapping.Append(_T(" w:followedHyperlink"));break;
|
||||
case 9: sSchemeMapping.Append(_T(" w:hyperlink"));break;
|
||||
case 10: sSchemeMapping.Append(_T(" w:t1"));break;
|
||||
case 11: sSchemeMapping.Append(_T(" w:t2"));break;
|
||||
case 0: sSchemeMapping += (_T(" w:accent1"));break;
|
||||
case 1: sSchemeMapping += (_T(" w:accent2"));break;
|
||||
case 2: sSchemeMapping += (_T(" w:accent3"));break;
|
||||
case 3: sSchemeMapping += (_T(" w:accent4"));break;
|
||||
case 4: sSchemeMapping += (_T(" w:accent5"));break;
|
||||
case 5: sSchemeMapping += (_T(" w:accent6"));break;
|
||||
case 6: sSchemeMapping += (_T(" w:bg1"));break;
|
||||
case 7: sSchemeMapping += (_T(" w:bg2"));break;
|
||||
case 8: sSchemeMapping += (_T(" w:followedHyperlink"));break;
|
||||
case 9: sSchemeMapping += (_T(" w:hyperlink"));break;
|
||||
case 10: sSchemeMapping += (_T(" w:t1"));break;
|
||||
case 11: sSchemeMapping += (_T(" w:t2"));break;
|
||||
}
|
||||
switch(aSchemeMapping[i])
|
||||
{
|
||||
case 0: sSchemeMapping.Append(_T("=\"accent1\""));break;
|
||||
case 1: sSchemeMapping.Append(_T("=\"accent2\""));break;
|
||||
case 2: sSchemeMapping.Append(_T("=\"accent3\""));break;
|
||||
case 3: sSchemeMapping.Append(_T("=\"accent4\""));break;
|
||||
case 4: sSchemeMapping.Append(_T("=\"accent5\""));break;
|
||||
case 5: sSchemeMapping.Append(_T("=\"accent6\""));break;
|
||||
case 6: sSchemeMapping.Append(_T("=\"dark1\""));break;
|
||||
case 7: sSchemeMapping.Append(_T("=\"dark2\""));break;
|
||||
case 8: sSchemeMapping.Append(_T("=\"followedHyperlink\""));break;
|
||||
case 9: sSchemeMapping.Append(_T("=\"hyperlink\""));break;
|
||||
case 10: sSchemeMapping.Append(_T("=\"light1\""));break;
|
||||
case 11: sSchemeMapping.Append(_T("=\"light2\""));break;
|
||||
case 0: sSchemeMapping += (_T("=\"accent1\""));break;
|
||||
case 1: sSchemeMapping += (_T("=\"accent2\""));break;
|
||||
case 2: sSchemeMapping += (_T("=\"accent3\""));break;
|
||||
case 3: sSchemeMapping += (_T("=\"accent4\""));break;
|
||||
case 4: sSchemeMapping += (_T("=\"accent5\""));break;
|
||||
case 5: sSchemeMapping += (_T("=\"accent6\""));break;
|
||||
case 6: sSchemeMapping += (_T("=\"dark1\""));break;
|
||||
case 7: sSchemeMapping += (_T("=\"dark2\""));break;
|
||||
case 8: sSchemeMapping += (_T("=\"followedHyperlink\""));break;
|
||||
case 9: sSchemeMapping += (_T("=\"hyperlink\""));break;
|
||||
case 10: sSchemeMapping += (_T("=\"light1\""));break;
|
||||
case 11: sSchemeMapping += (_T("=\"light2\""));break;
|
||||
}
|
||||
}
|
||||
sSchemeMapping.Append(_T("/>"));
|
||||
sSchemeMapping += (_T("/>"));
|
||||
m_oSettingWriter.AddSetting(sSchemeMapping);
|
||||
m_oFileWriter.m_pDrawingConverter->LoadClrMap(sSchemeMapping);
|
||||
}
|
||||
@ -3436,9 +3436,9 @@ public:
|
||||
sFontName = XmlUtils::EncodeXmlString(sFontName);
|
||||
|
||||
CString sVal;
|
||||
sVal.Append(_T("<m:mathFont m:val=\""));
|
||||
sVal.Append(sFontName);
|
||||
sVal.Append(_T("\" />"));
|
||||
sVal += (_T("<m:mathFont m:val=\""));
|
||||
sVal += (sFontName);
|
||||
sVal += (_T("\" />"));
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(sVal);
|
||||
}
|
||||
else
|
||||
@ -4081,9 +4081,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4157,9 +4157,9 @@ public:
|
||||
{
|
||||
CString sChr = GetMathText (length);
|
||||
CString sVal;
|
||||
sVal.Append(_T("<m:begChr m:val=\""));
|
||||
sVal.Append(sChr);
|
||||
sVal.Append(_T("\" />"));
|
||||
sVal += (_T("<m:begChr m:val=\""));
|
||||
sVal += (sChr);
|
||||
sVal += (_T("\" />"));
|
||||
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
@ -4294,9 +4294,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:alnAt=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
@ -4320,9 +4320,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4341,9 +4341,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4358,9 +4358,9 @@ public:
|
||||
{
|
||||
CString sChr = GetMathText (length);
|
||||
CString sVal;
|
||||
sVal.Append(_T("<m:chr m:val=\""));
|
||||
sVal.Append(sChr);
|
||||
sVal.Append(_T("\" />"));
|
||||
sVal += (_T("<m:chr m:val=\""));
|
||||
sVal += (sChr);
|
||||
sVal += (_T("\" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4378,9 +4378,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4398,9 +4398,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -4546,9 +4546,9 @@ public:
|
||||
{
|
||||
CString sChr = GetMathText (length);
|
||||
CString sVal;
|
||||
sVal.Append(_T("<m:endChr m:val=\""));
|
||||
sVal.Append(sChr);
|
||||
sVal.Append(_T("\" />"));
|
||||
sVal += (_T("<m:endChr m:val=\""));
|
||||
sVal += (sChr);
|
||||
sVal += (_T("\" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -5566,9 +5566,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -5586,9 +5586,9 @@ public:
|
||||
if (lVal)
|
||||
{
|
||||
CString sXml; sXml.Format(_T(" m:val=\"%d\""), lVal);
|
||||
sVal.Append(sXml);
|
||||
sVal += (sXml);
|
||||
}
|
||||
sVal.Append(_T(" />"));
|
||||
sVal += (_T(" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -5626,9 +5626,9 @@ public:
|
||||
{
|
||||
CString sChr = GetMathText (length);
|
||||
CString sVal;
|
||||
sVal.Append(_T("<m:sepChr m:val=\""));
|
||||
sVal.Append(sChr);
|
||||
sVal.Append(_T("\" />"));
|
||||
sVal += (_T("<m:sepChr m:val=\""));
|
||||
sVal += (sChr);
|
||||
sVal += (_T("\" />"));
|
||||
GetRunStringWriter().WriteString(sVal);
|
||||
}
|
||||
else
|
||||
@ -6572,30 +6572,15 @@ public:
|
||||
}
|
||||
else if( c_oSerBackgroundType::pptxDrawing == type )
|
||||
{
|
||||
CDrawingProperty oCDrawingProperty(m_oFileWriter.getNextDocPr());
|
||||
oCDrawingProperty.bType = oCDrawingProperty.bHeight = oCDrawingProperty.bWidth = true;
|
||||
oCDrawingProperty.Type = c_oAscWrapStyle::Inline;
|
||||
CDrawingProperty oCDrawingProperty(m_oFileWriter.getNextDocPr());
|
||||
res = Read2(length, &Binary_DocumentTableReader::ReadPptxDrawing, this, &oCDrawingProperty);
|
||||
|
||||
CString sDrawingProperty = oCDrawingProperty.Write();
|
||||
|
||||
BYTE type = m_oBufferedStream.GetUChar();
|
||||
long lenType = m_oBufferedStream.GetUChar();
|
||||
int nRealLen = m_oBufferedStream.GetLong();
|
||||
|
||||
CString* bstrDrawingXml = NULL;
|
||||
|
||||
long nCurPos = m_oBufferedStream.GetPos();
|
||||
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->SaveObjectEx(nCurPos, nRealLen, sDrawingProperty, XMLWRITER_DOC_TYPE_DOCX, &bstrDrawingXml);
|
||||
|
||||
if(NULL != bstrDrawingXml && false == bstrDrawingXml->IsEmpty())
|
||||
{
|
||||
pBackground->sObject = *bstrDrawingXml;
|
||||
}
|
||||
RELEASEOBJECT(bstrDrawingXml);
|
||||
|
||||
m_oBufferedStream.Seek(nCurPos + nRealLen);
|
||||
if (oCDrawingProperty.bDataPos && oCDrawingProperty.bDataLength)
|
||||
{
|
||||
long nCurPos = m_oBufferedStream.GetPos();
|
||||
pBackground->sObject = m_oFileWriter.m_pDrawingConverter->SaveObjectBackground(oCDrawingProperty.DataPos, oCDrawingProperty.DataLength);
|
||||
m_oBufferedStream.Seek(nCurPos);
|
||||
}
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
@ -6814,6 +6799,13 @@ public:
|
||||
oGraphicFramePr.m_oGraphicFrameLocks.reset(pLocking);
|
||||
pDrawingProperty->sGraphicFramePr = oGraphicFramePr.toXML();
|
||||
}
|
||||
else if ( c_oSerImageType2::DocPr == type )
|
||||
{
|
||||
OOX::Drawing::CNonVisualDrawingProps pNonVisualDrawingProps;
|
||||
pNonVisualDrawingProps.m_eType = OOX::et_wp_docPr;
|
||||
res = Read1(length, &Binary_DocumentTableReader::ReadDocPr, this, &pNonVisualDrawingProps);
|
||||
pDrawingProperty->sDocPr = pNonVisualDrawingProps.toXML();
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
@ -6856,6 +6848,39 @@ public:
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
}
|
||||
int ReadDocPr(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
OOX::Drawing::CNonVisualDrawingProps* pNonVisualDrawingProps = static_cast<OOX::Drawing::CNonVisualDrawingProps*>(poResult);
|
||||
if ( c_oSerDocPr::Id == type )
|
||||
{
|
||||
pNonVisualDrawingProps->m_oId.Init();
|
||||
pNonVisualDrawingProps->m_oId->SetValue(m_oBufferedStream.GetLong());
|
||||
}
|
||||
else if ( c_oSerDocPr::Name == type )
|
||||
{
|
||||
pNonVisualDrawingProps->m_sName.Init();
|
||||
pNonVisualDrawingProps->m_sName->Append(m_oBufferedStream.GetString3(length));
|
||||
}
|
||||
else if ( c_oSerDocPr::Hidden == type )
|
||||
{
|
||||
pNonVisualDrawingProps->m_oHidden.Init();
|
||||
pNonVisualDrawingProps->m_oHidden->FromBool(m_oBufferedStream.GetBool());
|
||||
}
|
||||
else if ( c_oSerDocPr::Title == type )
|
||||
{
|
||||
pNonVisualDrawingProps->m_sTitle.Init();
|
||||
pNonVisualDrawingProps->m_sTitle->Append(m_oBufferedStream.GetString3(length));
|
||||
}
|
||||
else if ( c_oSerDocPr::Descr == type )
|
||||
{
|
||||
pNonVisualDrawingProps->m_sDescr.Init();
|
||||
pNonVisualDrawingProps->m_sDescr->Append(m_oBufferedStream.GetString3(length));
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
}
|
||||
int ReadEffectExtent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
|
||||
@ -198,7 +198,7 @@ namespace MathEquation
|
||||
// nCurPos = WriteItemStart(BinDocxRW::c_oSerRunType::rPr);
|
||||
|
||||
CString sFontName;
|
||||
//sFontName.Format(_T("%lS"), pFont->sName.c_str());
|
||||
|
||||
sFontName.Insert(0, _T("Cambria Math"));
|
||||
if (sFontName)
|
||||
{
|
||||
|
||||
@ -557,7 +557,8 @@ extern int g_nCurFormatVersion;
|
||||
SizeRelH = 27,
|
||||
SizeRelV = 28,
|
||||
Embedded = 29,
|
||||
GraphicFramePr = 30
|
||||
GraphicFramePr = 30,
|
||||
DocPr = 31
|
||||
};}
|
||||
namespace c_oSerEffectExtent{enum c_oSerEffectExtent
|
||||
{
|
||||
@ -986,6 +987,14 @@ extern int g_nCurFormatVersion;
|
||||
PrEndPos = 10,
|
||||
PrRef = 11
|
||||
};}
|
||||
namespace c_oSerDocPr{enum c_oSerDocPr
|
||||
{
|
||||
Id = 0,
|
||||
Name = 1,
|
||||
Hidden = 2,
|
||||
Title = 3,
|
||||
Descr = 4
|
||||
};}
|
||||
}
|
||||
|
||||
#endif // #ifndef DOCX_BIN_READER_WRITER_DEFINES
|
||||
|
||||
@ -5538,6 +5538,14 @@ namespace BinDocxRW
|
||||
WriteNvGraphicFramePr(pInline.m_oCNvGraphicFramePr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(pInline.m_oDocPr.IsInit())
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::DocPr);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteDocPr(pInline.m_oDocPr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(img.m_oAnchor.IsInit() )
|
||||
@ -5713,6 +5721,14 @@ namespace BinDocxRW
|
||||
WriteNvGraphicFramePr(pAnchor.m_oCNvGraphicFramePr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(pAnchor.m_oDocPr.IsInit())
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::DocPr);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteDocPr(pAnchor.m_oDocPr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(bDeleteDrawing)
|
||||
@ -5761,6 +5777,40 @@ namespace BinDocxRW
|
||||
}
|
||||
}
|
||||
}
|
||||
void WriteDocPr(const OOX::Drawing::CNonVisualDrawingProps& oDocPr)
|
||||
{
|
||||
int nCurPos;
|
||||
if(oDocPr.m_oId.IsInit())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerDocPr::Id);
|
||||
m_oBcw.m_oStream.WriteLONG(oDocPr.m_oId->GetValue());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(oDocPr.m_sName.IsInit())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerDocPr::Name);
|
||||
m_oBcw.m_oStream.WriteStringW3(oDocPr.m_sName.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(oDocPr.m_oHidden.IsInit())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerDocPr::Hidden);
|
||||
m_oBcw.m_oStream.WriteBOOL(oDocPr.m_oHidden->ToBool());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(oDocPr.m_sTitle.IsInit())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerDocPr::Title);
|
||||
m_oBcw.m_oStream.WriteStringW3(oDocPr.m_sTitle.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(oDocPr.m_sDescr.IsInit())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerDocPr::Descr);
|
||||
m_oBcw.m_oStream.WriteStringW3(oDocPr.m_sDescr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
void WriteEffectExtent(const OOX::Drawing::CEffectExtent& oEffectExtent)
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerEffectExtent::Left);
|
||||
@ -6350,6 +6400,7 @@ namespace BinDocxRW
|
||||
for(int i = 0, length = Content.size(); i < length; i++)
|
||||
{
|
||||
OOX::WritingElement* item = Content[i];
|
||||
|
||||
if(OOX::et_w_tc == item->getType())
|
||||
{
|
||||
OOX::Logic::CTc* tc = static_cast<OOX::Logic::CTc*>(item);
|
||||
|
||||
@ -231,7 +231,7 @@ namespace BinXlsxRW{
|
||||
m_pExternalDrawingConverter->SaveDstContentRels(pathRelsFile.GetPath());
|
||||
|
||||
CString sContentType(sContentTypePath);
|
||||
sContentType.Append(strFilename);
|
||||
sContentType += strFilename;
|
||||
|
||||
std::wstring sContent = L"<Override PartName=\"" + sContentType + L"\" ContentType=\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\"/>";
|
||||
sContent += oSaveParams.sAdditionalContentTypes;
|
||||
|
||||
@ -31,16 +31,17 @@ INCLUDEPATH += \
|
||||
../../DesktopEditor/xml/libxml2/include \
|
||||
|
||||
|
||||
SOURCES += ../DocWrapper/DocxSerializer.cpp \
|
||||
SOURCES += \
|
||||
../DocWrapper/DocxSerializer.cpp \
|
||||
../DocWrapper/FontProcessor.cpp \
|
||||
../DocWrapper/XlsxSerializer.cpp \
|
||||
../BinWriter/BinWriters.cpp \
|
||||
../DocWrapper/ChartWriter.cpp \
|
||||
../BinWriter/BinWriters.cpp \
|
||||
../../XlsxSerializerCom/Common/Common.cpp \
|
||||
../../XlsxSerializerCom/Reader/ChartFromToBinary.cpp \
|
||||
../../XlsxSerializerCom/Reader/CommonWriter.cpp \
|
||||
../../XlsxSerializerCom/Reader/CSVReader.cpp \
|
||||
../../XlsxSerializerCom/Writer/CSVWriter.cpp \
|
||||
../DocWrapper/ChartWriter.cpp \
|
||||
../../OfficeCryptReader/source/ECMACryptReader.cpp \
|
||||
../../OfficeCryptReader/source/CryptTransform.cpp
|
||||
|
||||
|
||||
@ -170,12 +170,13 @@ HEADERS += \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Theme.h \
|
||||
../../../Common/3dParty/pole/pole.h
|
||||
|
||||
build_fast {
|
||||
core_release {
|
||||
SOURCES += \
|
||||
pptformatlib_logic.cpp
|
||||
} else {
|
||||
}
|
||||
|
||||
core_debug {
|
||||
SOURCES += \
|
||||
../PPTFormatLib.cpp \
|
||||
../Reader/ReadStructures.cpp \
|
||||
../Reader/PPTDocumentInfoOneUser.cpp \
|
||||
../Reader/Records.cpp \
|
||||
@ -183,13 +184,14 @@ SOURCES += \
|
||||
../Records/Animations/AnimationTypes.cpp \
|
||||
../Records/Drawing/ArtBlip.cpp \
|
||||
../PPTXWriter/Converter.cpp \
|
||||
../PPTXWriter/ShapeWriter.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Elements.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Layout.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.cpp
|
||||
../PPTXWriter/ShapeWriter.cpp
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
../PPTFormatLib.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Elements.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Layout.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.cpp \
|
||||
../../../Common/3dParty/pole/pole.cpp
|
||||
|
||||
core_windows {
|
||||
|
||||
@ -29,15 +29,13 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "../PPTFormatLib.cpp"
|
||||
|
||||
#include "../Reader/ReadStructures.cpp"
|
||||
#include "../Reader/PPTDocumentInfoOneUser.cpp"
|
||||
#include "../Reader/Records.cpp"
|
||||
#include "../Reader/SlidePersist.cpp"
|
||||
#include "../Records/Animations/AnimationTypes.cpp"
|
||||
#include "../Records/Drawing/ArtBlip.cpp"
|
||||
|
||||
#include "../PPTXWriter/Converter.cpp"
|
||||
#include "../PPTXWriter/ShapeWriter.cpp"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Elements.cpp"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Layout.cpp"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.cpp"
|
||||
|
||||
@ -113,7 +113,7 @@ public:
|
||||
oPersist.m_nPsrRef = pAtom->m_arSlides[index]->m_nPsrRef;
|
||||
oPersist.m_nSlideID = pAtom->m_arSlides[index]->m_nSlideID;
|
||||
|
||||
oPersist.m_arTextAttrs.Append(pAtom->m_arTextPlaceHolders[index]);
|
||||
oPersist.m_arTextAttrs += pAtom->m_arTextPlaceHolders[index];
|
||||
|
||||
pArray->Add(oPersist);
|
||||
}
|
||||
@ -189,4 +189,4 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@ -1233,10 +1233,8 @@ rIns=\"91440\" bIns=\"45720\" numCol=\"1\" spcCol=\"0\" rtlCol=\"0\" fromWordArt
|
||||
}
|
||||
else if (strName == L"background")
|
||||
{
|
||||
m_pBinaryWriter->StartRecord(1);
|
||||
PPTX::Logic::SpTreeElem oElem = doc_LoadShape(oParseNode, pMainProps, false);
|
||||
m_pBinaryWriter->WriteRecord1(1, oElem);
|
||||
m_pBinaryWriter->EndRecord();
|
||||
PPTX::Logic::SpTreeElem oElem = doc_LoadShape(oParseNode, pMainProps, false);
|
||||
m_pBinaryWriter->WriteRecord1(1, oElem);
|
||||
break;
|
||||
}
|
||||
else if (strName == L"pict" || strName == L"object")
|
||||
@ -4414,6 +4412,39 @@ HRESULT CDrawingConverter::SaveObjectEx(LONG lStart, LONG lLength, const CString
|
||||
m_pReader->Seek(_e);
|
||||
return S_OK;
|
||||
}
|
||||
std::wstring CDrawingConverter::SaveObjectBackground(LONG lStart, LONG lLength)
|
||||
{
|
||||
m_pReader->Seek(lStart);
|
||||
|
||||
++m_nCurrentIndexObject;
|
||||
|
||||
BYTE typeRec1 = m_pReader->GetUChar(); // must be 0;
|
||||
LONG _e = m_pReader->GetPos() + m_pReader->GetLong() + 4;
|
||||
|
||||
m_pReader->Skip(5); // type record (must be 1) + 4 byte - len record
|
||||
PPTX::Logic::SpTreeElem oElem;
|
||||
|
||||
m_pReader->m_lDocumentType = XMLWRITER_DOC_TYPE_DOCX;
|
||||
|
||||
oElem.fromPPTY(m_pReader);
|
||||
|
||||
m_pReader->m_lDocumentType = XMLWRITER_DOC_TYPE_PPTX;
|
||||
|
||||
|
||||
NSBinPptxRW::CXmlWriter oXmlWriter;
|
||||
SaveObjectExWriterInit(oXmlWriter, XMLWRITER_DOC_TYPE_DOCX);
|
||||
|
||||
oXmlWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе
|
||||
PPTX::Logic::Shape& oShape = oElem.as<PPTX::Logic::Shape>();
|
||||
oShape.toXmlWriterVMLBackground(&oXmlWriter, *m_pTheme, *m_pClrMap);
|
||||
|
||||
--m_nCurrentIndexObject;
|
||||
|
||||
SaveObjectExWriterRelease(oXmlWriter);
|
||||
|
||||
m_pReader->Seek(_e);
|
||||
return oXmlWriter.GetXmlString();
|
||||
}
|
||||
|
||||
void CDrawingConverter::ConvertPicVML(PPTX::Logic::SpTreeElem& oElem, const CString& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter)
|
||||
{
|
||||
|
||||
@ -221,6 +221,7 @@ namespace NSBinPptxRW
|
||||
HRESULT SaveObjectEx (long lStart, long lLength, const CString& bsMainProps, long lDocType, CString** bsXml);
|
||||
void SaveObjectExWriterInit(NSBinPptxRW::CXmlWriter& oXmlWriter, LONG lDocType);
|
||||
void SaveObjectExWriterRelease(NSBinPptxRW::CXmlWriter& oXmlWriter);
|
||||
std::wstring SaveObjectBackground(LONG lStart, LONG lLength);
|
||||
|
||||
HRESULT GetRecordBinary (long lRecordType, const CString& bsXml);
|
||||
HRESULT GetRecordXml (long lStart, long lLength, long lRecType, long lDocType, CString** bsXml);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -35,138 +35,138 @@ namespace NSOfficePPT
|
||||
{
|
||||
enum SlideSizeType
|
||||
{
|
||||
OnScreen = 0,
|
||||
OnScreen = 0,
|
||||
LetterSizedPaper = 1,
|
||||
A4Paper = 2,
|
||||
Size35mm = 3,
|
||||
Overhead = 4,
|
||||
Banner = 5,
|
||||
Overhead = 4,
|
||||
Banner = 5,
|
||||
Custom = 6
|
||||
};
|
||||
|
||||
enum StyleMask
|
||||
{
|
||||
None = 0,
|
||||
None = 0,
|
||||
|
||||
IsBold = 1 << 0,
|
||||
IsItalic = 1 << 1,
|
||||
IsBold = 1 << 0,
|
||||
IsItalic = 1 << 1,
|
||||
IsUnderlined = 1 << 2,
|
||||
|
||||
HasShadow = 1 << 4,
|
||||
HasShadow = 1 << 4,
|
||||
HasAsianSmartQuotes = 1 << 5,
|
||||
|
||||
HasHorizonNumRendering = 1 << 7,
|
||||
HasHorizonNumRendering = 1 << 7,
|
||||
|
||||
IsEmbossed = 1 << 9,
|
||||
IsEmbossed = 1 << 9,
|
||||
|
||||
ExtensionNibble = 0xF << 10
|
||||
};
|
||||
|
||||
enum CharacterMask
|
||||
{
|
||||
_None = 0,
|
||||
_None = 0,
|
||||
|
||||
StyleFlagsFieldPresent = 0xFFFF,
|
||||
|
||||
TypefacePresent = 1 << 16,
|
||||
SizePresent = 1 << 17,
|
||||
ColorPresent = 1 << 18,
|
||||
PositionPresent = 1 << 19,
|
||||
TypefacePresent = 1 << 16,
|
||||
SizePresent = 1 << 17,
|
||||
ColorPresent = 1 << 18,
|
||||
PositionPresent = 1 << 19,
|
||||
|
||||
FEOldTypefacePresent = 1 << 21,
|
||||
ANSITypefacePresent = 1 << 22,
|
||||
ANSITypefacePresent = 1 << 22,
|
||||
SymbolTypefacePresent = 1 << 23
|
||||
};
|
||||
|
||||
enum PlaceholderEnum
|
||||
{
|
||||
__None = 0,
|
||||
MasterTitle = 1,
|
||||
MasterBody = 2,
|
||||
MasterCenteredTitle = 3,
|
||||
MasterSubtitle = 4,
|
||||
__None = 0,
|
||||
MasterTitle = 1,
|
||||
MasterBody = 2,
|
||||
MasterCenteredTitle = 3,
|
||||
MasterSubtitle = 4,
|
||||
MasterNotesSlideImage = 5,
|
||||
MasterNotesBody = 6,
|
||||
MasterDate = 7,
|
||||
MasterSlideNumber = 8,
|
||||
MasterFooter = 9,
|
||||
MasterHeader = 10,
|
||||
NotesSlideImage = 11,
|
||||
NotesBody = 12,
|
||||
Title = 13,
|
||||
Body = 14,
|
||||
CenteredTitle = 15,
|
||||
Subtitle = 16,
|
||||
VerticalTextTitle = 17,
|
||||
VerticalTextBody = 18,
|
||||
Object = 19,
|
||||
Graph = 20,
|
||||
Table = 21,
|
||||
ClipArt = 22,
|
||||
OrganizationChart = 23,
|
||||
MediaClip = 24
|
||||
MasterNotesBody = 6,
|
||||
MasterDate = 7,
|
||||
MasterSlideNumber = 8,
|
||||
MasterFooter = 9,
|
||||
MasterHeader = 10,
|
||||
NotesSlideImage = 11,
|
||||
NotesBody = 12,
|
||||
Title = 13,
|
||||
Body = 14,
|
||||
CenteredTitle = 15,
|
||||
Subtitle = 16,
|
||||
VerticalTextTitle = 17,
|
||||
VerticalTextBody = 18,
|
||||
Object = 19,
|
||||
Graph = 20,
|
||||
Table = 21,
|
||||
ClipArt = 22,
|
||||
OrganizationChart = 23,
|
||||
MediaClip = 24
|
||||
};
|
||||
|
||||
enum ParagraphMask
|
||||
{
|
||||
___None = 0,
|
||||
HasBullet = 1 << 0,
|
||||
BulletHasFont = 1 << 1,
|
||||
BulletHasColor = 1 << 2,
|
||||
BulletHasSize = 1 << 3,
|
||||
___None = 0,
|
||||
HasBullet = 1 << 0,
|
||||
BulletHasFont = 1 << 1,
|
||||
BulletHasColor = 1 << 2,
|
||||
BulletHasSize = 1 << 3,
|
||||
BulletFlagsFieldExists = HasBullet | BulletHasFont | BulletHasColor | BulletHasSize,
|
||||
|
||||
BulletFont = 1 << 4,
|
||||
BulletColor = 1 << 5,
|
||||
BulletSize = 1 << 6,
|
||||
BulletChar = 1 << 7,
|
||||
LeftMargin = 1 << 8,
|
||||
Indent = 1 << 10,
|
||||
Align = 1 << 11,
|
||||
LineSpacing = 1 << 12,
|
||||
SpaceBefore = 1 << 13,
|
||||
SpaceAfter = 1 << 14,
|
||||
DefaultTabSize = 1 << 15,
|
||||
FontAlign = 1 << 16,
|
||||
CharWrap = 1 << 17,
|
||||
WordWrap = 1 << 18,
|
||||
Overflow = 1 << 19,
|
||||
BulletFont = 1 << 4,
|
||||
BulletColor = 1 << 5,
|
||||
BulletSize = 1 << 6,
|
||||
BulletChar = 1 << 7,
|
||||
LeftMargin = 1 << 8,
|
||||
Indent = 1 << 10,
|
||||
Align = 1 << 11,
|
||||
LineSpacing = 1 << 12,
|
||||
SpaceBefore = 1 << 13,
|
||||
SpaceAfter = 1 << 14,
|
||||
DefaultTabSize = 1 << 15,
|
||||
FontAlign = 1 << 16,
|
||||
CharWrap = 1 << 17,
|
||||
WordWrap = 1 << 18,
|
||||
Overflow = 1 << 19,
|
||||
WrapFlagsFieldExists = CharWrap | WordWrap | Overflow,
|
||||
TabStops = 1 << 20,
|
||||
TextDirection = 1 << 21,
|
||||
BulletBlip = 1 << 23,
|
||||
BulletScheme = 1 << 24,
|
||||
BulletHasScheme = 1 << 25
|
||||
TabStops = 1 << 20,
|
||||
TextDirection = 1 << 21,
|
||||
BulletBlip = 1 << 23,
|
||||
BulletScheme = 1 << 24,
|
||||
BulletHasScheme = 1 << 25
|
||||
};
|
||||
|
||||
enum Instances
|
||||
{
|
||||
CollectionOfSlides = 0,
|
||||
CollectionOfSlides = 0,
|
||||
CollectionOfMasterSlides = 1,
|
||||
CollectionOfNotesSlides = 2
|
||||
};
|
||||
|
||||
enum SlideLayoutType
|
||||
{
|
||||
TitleSlide = 0,
|
||||
TitleAndBody = 1,
|
||||
TitleMaster = 2,
|
||||
TitleSlide = 0,
|
||||
TitleAndBody = 1,
|
||||
TitleMaster = 2,
|
||||
|
||||
MasterNotes = 4,
|
||||
NotesTitleAndBody = 5,
|
||||
Handout = 6,
|
||||
TitleOnly = 7,
|
||||
TwoColumnsAndTitle = 8,
|
||||
TwoRowsAndTitle = 9,
|
||||
TwoColumnsRightTwoRows = 10,
|
||||
TwoColumnsLeftTwoRows = 11,
|
||||
TwoRowsBottomTwoColumns = 12,
|
||||
TwoRowsTopTwoColumns = 13,
|
||||
FourObjects = 14,
|
||||
BigObject = 15,
|
||||
Blank = 16,
|
||||
VerticalTitleRightBodyLeft = 17,
|
||||
VerticalTitleRightBodyLeftTwoRows = 18
|
||||
MasterNotes = 4,
|
||||
NotesTitleAndBody = 5,
|
||||
Handout = 6,
|
||||
TitleOnly = 7,
|
||||
TwoColumnsAndTitle = 8,
|
||||
TwoRowsAndTitle = 9,
|
||||
TwoColumnsRightTwoRows = 10,
|
||||
TwoColumnsLeftTwoRows = 11,
|
||||
TwoRowsBottomTwoColumns = 12,
|
||||
TwoRowsTopTwoColumns = 13,
|
||||
FourObjects = 14,
|
||||
BigObject = 15,
|
||||
Blank = 16,
|
||||
VerticalTitleRightBodyLeft = 17,
|
||||
VerticalTitleRightBodyLeftTwoRows= 18
|
||||
};
|
||||
|
||||
enum TextType
|
||||
|
||||
@ -169,8 +169,8 @@ namespace PPTX
|
||||
|
||||
CString strXml = _T("<xml xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:p=\"urn:schemas-microsoft-com:office:powerpoint\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:oa=\"urn:schemas-microsoft-com:office:activation\">");
|
||||
strXml.Append(NodeContent);
|
||||
strXml.Append(_T("</xml>"));
|
||||
strXml += NodeContent;
|
||||
strXml += L"</xml>";
|
||||
|
||||
XmlUtils::CXmlLiteReader oSubReader;//нам нужны xml //и сами объекты
|
||||
|
||||
|
||||
@ -73,8 +73,8 @@ namespace PPTX
|
||||
if (xml.GetLength() > 0)
|
||||
{
|
||||
CString temp = _T("<v:object>");
|
||||
temp.Append(xml);
|
||||
temp.Append(_T("</v:object>"));
|
||||
temp += xml;
|
||||
temp += L"</v:object>";
|
||||
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
oDrawingConverter.SetAdditionalParam(_T("parent_spTree"), (BYTE*)spTreeElements, 0);
|
||||
@ -103,8 +103,8 @@ namespace PPTX
|
||||
if (xml.GetLength() > 0)
|
||||
{
|
||||
CString temp = _T("<v:object>");
|
||||
temp.Append(xml);
|
||||
temp.Append(_T("</v:object>"));
|
||||
temp += xml;
|
||||
temp += L"</v:object>";
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
//oDrawingConverter.SetFontManager(pFontManager);
|
||||
|
||||
|
||||
@ -270,8 +270,9 @@ namespace PPTX
|
||||
if (!table.is_init() && !chartRec.is_init() && xml_object_vml.IsEmpty() == false)
|
||||
{
|
||||
CString temp = _T("<v:object>");
|
||||
temp.Append(xml_object_vml);
|
||||
temp.Append(_T("</v:object>"));
|
||||
temp += xml_object_vml;
|
||||
temp += L"</v:object>";
|
||||
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
//oDrawingConverter.SetFontManager(pFontManager);
|
||||
|
||||
|
||||
@ -565,17 +565,14 @@ namespace PPTX
|
||||
int dH = 0;
|
||||
|
||||
int nShapeId = pWriter->m_lObjectIdVML;
|
||||
CString strId = _T("");
|
||||
strId.Format(_T("_x0000_i%04d"), nShapeId);
|
||||
CString strSpid = _T("");
|
||||
strSpid.Format(_T("_x%04d_s%04d"), 0xFFFF & (pWriter->m_lObjectIdVML >> 16), 0xFFFF & pWriter->m_lObjectIdVML);
|
||||
CString strObjectid = _T("");
|
||||
strObjectid.Format(_T("_152504%04d"), pWriter->m_lObjectIdVML);
|
||||
std::wstring strId = L"_x0000_i" + std::to_wstring(nShapeId);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
CString strObjectid = L"_152504" + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
pWriter->m_lObjectIdVML++;
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
|
||||
if(_T("") == pWriter->m_strStyleMain)
|
||||
if(pWriter->m_strStyleMain.empty())
|
||||
{
|
||||
if (spPr.xfrm.is_init())
|
||||
{
|
||||
@ -589,11 +586,11 @@ namespace PPTX
|
||||
dH = (*spPr.xfrm->extY);
|
||||
}
|
||||
|
||||
oStylesWriter.WriteAttributeCSS(_T("position"), _T("absolute"));
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("left"), dL);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("top"), dT);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("width"), dW);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("height"), dH);
|
||||
oStylesWriter.WriteAttributeCSS (_T("position"), _T("absolute"));
|
||||
oStylesWriter.WriteAttributeCSS_int (_T("left"), dL);
|
||||
oStylesWriter.WriteAttributeCSS_int (_T("top"), dT);
|
||||
oStylesWriter.WriteAttributeCSS_int (_T("width"), dW);
|
||||
oStylesWriter.WriteAttributeCSS_int (_T("height"), dH);
|
||||
}
|
||||
|
||||
if (spPr.xfrm.is_init())
|
||||
@ -621,8 +618,8 @@ namespace PPTX
|
||||
|
||||
if (spPr.Geometry.is_init())
|
||||
{
|
||||
CString strPath = _T("");
|
||||
CString strTextRect = _T("");
|
||||
CString strPath;
|
||||
CString strTextRect;
|
||||
|
||||
LONG lW = 43200;
|
||||
LONG lH = 43200;
|
||||
|
||||
@ -412,27 +412,26 @@ namespace PPTX
|
||||
spPr.Geometry.ConvertToCustomVML(pWriter->m_pOOXToVMLRenderer, strPath, strTextRect, lW, lH);
|
||||
#endif
|
||||
|
||||
CString strId = _T("");
|
||||
strId.Format(_T("shape %d"), pWriter->m_lObjectIdVML);
|
||||
CString strSpid = _T("");
|
||||
strSpid.Format(_T("_x%04d_s%04d"), 0xFFFF & (pWriter->m_lObjectIdVML >> 16), 0xFFFF & pWriter->m_lObjectIdVML);
|
||||
std::wstring strId = L"shape " + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
pWriter->m_lObjectIdVML++;
|
||||
|
||||
CString strFillAttr = _T("");
|
||||
CString strStrokeAttr = _T("");
|
||||
CString strFillNode = _T("");
|
||||
CString strStrokeNode = _T("");
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, bOle);
|
||||
std::wstring strFillAttr;
|
||||
std::wstring strStrokeAttr;
|
||||
std::wstring strFillNode;
|
||||
std::wstring strStrokeNode;;
|
||||
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, bOle);
|
||||
CalculateLine(spPr, style, oTheme, oClrMap, strStrokeAttr, strStrokeNode, bOle);
|
||||
|
||||
if (pWriter->m_strStyleMain != _T(""))
|
||||
if (!pWriter->m_strStyleMain.empty())
|
||||
{
|
||||
pWriter->StartNode(_T("v:shape"));
|
||||
pWriter->StartNode(L"v:shape");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(_T("id"), strId);
|
||||
pWriter->WriteAttribute(_T("o:spid"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
if (spPr.xfrm.is_init())
|
||||
@ -654,5 +653,31 @@ namespace PPTX
|
||||
pWriter->EndNode(_T("v:shape"));
|
||||
}
|
||||
}
|
||||
void Shape::toXmlWriterVMLBackground(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap)
|
||||
{
|
||||
CString strFillAttr = _T("");
|
||||
CString strFillNode = _T("");
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, false);
|
||||
|
||||
pWriter->StartNode(_T("v:background"));
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteString(L" id=\"_x0000_s1025\"");
|
||||
|
||||
if (!pWriter->m_strAttributesMain.empty())
|
||||
{
|
||||
pWriter->WriteString(pWriter->m_strAttributesMain);
|
||||
pWriter->m_strAttributesMain.clear();
|
||||
}
|
||||
|
||||
pWriter->WriteString(strFillAttr);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteString(strFillNode);
|
||||
|
||||
pWriter->EndNode(_T("v:background"));
|
||||
}
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
@ -134,6 +134,7 @@ namespace PPTX
|
||||
}
|
||||
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
void toXmlWriterVMLBackground(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
|
||||
@ -49,14 +49,12 @@ namespace PPTX
|
||||
pWriter->StartNode(_T("v:group"));
|
||||
pWriter->StartAttributes();
|
||||
|
||||
CString strId = _T("");
|
||||
strId.Format(_T("group %d"), pWriter->m_lObjectIdVML);
|
||||
CString strSpid = _T("");
|
||||
strSpid.Format(_T("_x%04d_s%04d"), 0xFFFF & (pWriter->m_lObjectIdVML >> 16), 0xFFFF & pWriter->m_lObjectIdVML);
|
||||
std::wstring strId = L"group " + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
pWriter->m_lObjectIdVML++;
|
||||
|
||||
pWriter->WriteAttribute(_T("id"), strId);
|
||||
pWriter->WriteAttribute(_T("o:spid"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
if (_T("") != pWriter->m_strStyleMain)
|
||||
@ -204,4 +202,4 @@ namespace PPTX
|
||||
pWriter->EndNode(_T("v:group"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,7 +54,8 @@ namespace PPTX
|
||||
return sC;
|
||||
}
|
||||
|
||||
void CalculateFill(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, CString& strAttr, CString& strNode, bool bOle)
|
||||
void CalculateFill(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme,
|
||||
NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, std::wstring& strAttr, std::wstring& strNode, bool bOle)
|
||||
{
|
||||
smart_ptr<PPTX::Theme> oTheme = _oTheme.smart_dynamic_cast<PPTX::Theme>();
|
||||
smart_ptr<PPTX::Logic::ClrMap> oClrMap = _oClrMap.smart_dynamic_cast<PPTX::Logic::ClrMap>();
|
||||
@ -173,14 +174,14 @@ namespace PPTX
|
||||
BYTE alpha = (BYTE)((ARGB >> 24) & 0xFF);
|
||||
if (alpha < 255)
|
||||
{
|
||||
CString strA = _T("");
|
||||
strA.Format(_T("%d"), alpha);
|
||||
CString strA = = std::to_string( alpha);
|
||||
strAttr += _T(" opacity=\"") + strA + _T("\"");
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void CalculateLine(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, CString& strAttr, CString& strNode, bool bOle)
|
||||
void CalculateLine(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme,
|
||||
NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, std::wstring& strAttr, std::wstring& strNode, bool bOle)
|
||||
{
|
||||
smart_ptr<PPTX::Theme> oTheme = _oTheme.smart_dynamic_cast<PPTX::Theme>();
|
||||
smart_ptr<PPTX::Logic::ClrMap> oClrMap = _oClrMap.smart_dynamic_cast<PPTX::Logic::ClrMap>();
|
||||
|
||||
@ -41,8 +41,10 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
void CalculateFill(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, CString& strAttr, CString& strNode, bool bOle = false);
|
||||
void CalculateLine(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, CString& strAttr, CString& strNode, bool bOle = false);
|
||||
void CalculateFill(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle, smart_ptr<PPTX::WrapperFile>& oTheme,
|
||||
smart_ptr<PPTX::WrapperWritingElement>& oClrMap, std::wstring& strAttr, std::wstring& strNode, bool bOle = false);
|
||||
void CalculateLine(PPTX::Logic::SpPr& oSpPr, nullable<ShapeStyle>& pShapeStyle,
|
||||
smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, std::wstring& strAttr, std::wstring& strNode, bool bOle = false);
|
||||
|
||||
class SpTreeElem : public WrapperWritingElement
|
||||
{
|
||||
|
||||
@ -53,14 +53,13 @@ INCLUDEPATH += \
|
||||
|
||||
SOURCES += pptxformatlib.cpp
|
||||
|
||||
build_fast {
|
||||
core_release {
|
||||
SOURCES += \
|
||||
pptxformatlib_logic.cpp \
|
||||
pptxformatlib_converter.cpp
|
||||
} else {
|
||||
pptxformatlib_logic.cpp
|
||||
}
|
||||
|
||||
core_debug {
|
||||
SOURCES += \
|
||||
../../../ASCOfficeDrawingConverter.cpp \
|
||||
../../../ASCOfficePPTXFileRealization.cpp \
|
||||
../../../PPTXFormat/DocxFormat/IFileContainer.cpp \
|
||||
../../../PPTXFormat/Logic/Colors/SchemeClr.cpp \
|
||||
../../../PPTXFormat/Logic/Fills/Blip.cpp \
|
||||
@ -94,19 +93,23 @@ SOURCES += \
|
||||
../../../PPTXFormat/Logic/TxBody.cpp \
|
||||
../../../PPTXFormat/Logic/UniColor.cpp \
|
||||
../../../PPTXFormat/Logic/UniEffect.cpp \
|
||||
../../../PPTXFormat/Logic/Runs/MathParaWrapper.cpp \
|
||||
../../../PPTXFormat/Logic/Runs/MathParaWrapper.cpp \
|
||||
../../../PPTXFormat/Logic/Controls.cpp \
|
||||
../../../PPTXFormat/FileContainer.cpp \
|
||||
../../../PPTXFormat/FileFactory.cpp \
|
||||
../../../PPTXFormat/FileMap.cpp \
|
||||
../../../PPTXFormat/Folder.cpp \
|
||||
../../../PPTXFormat/Folder.cpp
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
../../../ASCOfficeDrawingConverter.cpp \
|
||||
../../../ASCOfficePPTXFileRealization.cpp \
|
||||
../../../Editor/BinaryFileReaderWriter.cpp \
|
||||
../../../Editor/FontPicker.cpp \
|
||||
../../../Editor/Drawing/Layout.cpp \
|
||||
../../../Editor/Drawing/TextAttributesEx.cpp \
|
||||
../../../Editor/Drawing/Elements.cpp \
|
||||
../../../PPTXFormat/Logic/Controls.cpp \
|
||||
../../../../HtmlRenderer/src/ASCSVGWriter.cpp
|
||||
}
|
||||
|
||||
HEADERS += pptxformatlib.h \
|
||||
../../../ASCOfficeDrawingConverter.h \
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2016
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "../../../Editor/FontPicker.cpp"
|
||||
#include "../../../../HtmlRenderer/src/ASCSVGWriter.cpp"
|
||||
#include "../../../ASCOfficeDrawingConverter.cpp"
|
||||
#include "../../../ASCOfficePPTXFileRealization.cpp"
|
||||
#include "../../../Editor/BinaryFileReaderWriter.cpp"
|
||||
@ -62,8 +62,9 @@
|
||||
#include "../../../PPTXFormat/Logic/TxBody.cpp"
|
||||
#include "../../../PPTXFormat/Logic/UniColor.cpp"
|
||||
#include "../../../PPTXFormat/Logic/UniEffect.cpp"
|
||||
#include "../../../PPTXFormat/Logic/Runs/MathParaWrapper.cpp"
|
||||
#include "../../../PPTXFormat/Logic/Controls.cpp"
|
||||
#include "../../../PPTXFormat/FileContainer.cpp"
|
||||
#include "../../../PPTXFormat/FileFactory.cpp"
|
||||
#include "../../../PPTXFormat/FileMap.cpp"
|
||||
#include "../../../PPTXFormat/Folder.cpp"
|
||||
#include "../../../PPTXFormat/Logic/Controls.cpp"
|
||||
|
||||
@ -34,12 +34,12 @@ core_mac {
|
||||
LIBS += $$DESTDIR -lUnicodeConverter
|
||||
}
|
||||
|
||||
build_fast {
|
||||
core_release {
|
||||
SOURCES += \
|
||||
rtfformatlib_source.cpp
|
||||
} else {
|
||||
}
|
||||
core_debug {
|
||||
SOURCES += \
|
||||
../source/DestinationCommand.cpp \
|
||||
../source/RtfBookmark.cpp \
|
||||
../source/RtfChar.cpp \
|
||||
../source/RtfDocument.cpp \
|
||||
@ -63,10 +63,13 @@ SOURCES += \
|
||||
../source/Reader/OOXShapeReader.cpp \
|
||||
../source/Reader/OOXTableReader.cpp \
|
||||
../source/Writer/OOXDocumentWriter.cpp \
|
||||
../source/Writer/OOXWriter.cpp \
|
||||
../source/ConvertationManager.cpp
|
||||
../source/Writer/OOXWriter.cpp
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
../source/DestinationCommand.cpp \
|
||||
../source/ConvertationManager.cpp
|
||||
|
||||
HEADERS += \
|
||||
../source/Basic.h \
|
||||
../source/ConvertationManager.h \
|
||||
|
||||
@ -29,19 +29,25 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "../source/DestinationCommand.cpp"
|
||||
|
||||
#include "../source/RtfBookmark.cpp"
|
||||
#include "../source/RtfChar.cpp"
|
||||
#include "../source/RtfDocument.cpp"
|
||||
#include "../source/RtfGlobalTables.cpp"
|
||||
#include "../source/RtfOldList.cpp"
|
||||
#include "../source/RtfOle.cpp"
|
||||
#include "../source/RtfPicture.cpp"
|
||||
#include "../source/RtfOle.cpp"
|
||||
#include "../source/RtfField.cpp"
|
||||
#include "../source/RtfParagraph.cpp"
|
||||
#include "../source/RtfProperty.cpp"
|
||||
#include "../source/RtfReader.cpp"
|
||||
#include "../source/RtfSection.cpp"
|
||||
#include "../source/RtfShape.cpp"
|
||||
#include "../source/RtfWriter.cpp"
|
||||
#include "../source/RtfMath.cpp"
|
||||
|
||||
#include "../source/Reader/OOXMathReader.cpp"
|
||||
#include "../source/Reader/OOXDrawingGraphicReader.cpp"
|
||||
#include "../source/Reader/OOXHeaderReader.cpp"
|
||||
#include "../source/Reader/OOXParagraphElementReaders.cpp"
|
||||
#include "../source/Reader/OOXReader.cpp"
|
||||
@ -49,4 +55,3 @@
|
||||
#include "../source/Reader/OOXTableReader.cpp"
|
||||
#include "../source/Writer/OOXDocumentWriter.cpp"
|
||||
#include "../source/Writer/OOXWriter.cpp"
|
||||
#include "../source/ConvertationManager.cpp"
|
||||
|
||||
@ -35,7 +35,6 @@
|
||||
#include "Ole1FormatReader.h"
|
||||
|
||||
#include "ConvertationManager.h"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Enums.h"
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
#include "Writer/OOXWriter.h"
|
||||
#include "Writer/OOXRelsWriter.h"
|
||||
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Enums.h"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Shapes/BaseShape/PPTShape/Enums.h"
|
||||
|
||||
#define COMMAND_RTF_BOOL( pattern, target, command, hasParameter, parameter )\
|
||||
else if( pattern == command )\
|
||||
|
||||
@ -52,9 +52,9 @@ public: bool GetByType(CString sType, std::vector<CString>& aOutArray)
|
||||
{
|
||||
if(oParam.oReader->ReadNodeAttribute(i,"Type") == sType)
|
||||
{
|
||||
CString sResult = oParam.oReader->ReadNodeAttribute(i,"Target");
|
||||
CString sResult = oParam.oReader->ReadNodeAttribute(i, "Target");
|
||||
sResult = sResult.Replace('/','\\');
|
||||
aOutArray.Append( sResult );
|
||||
aOutArray += sResult;
|
||||
}
|
||||
}
|
||||
return aOutArray.size() > 0;
|
||||
@ -72,4 +72,4 @@ public: CString GetByID(CString sId)
|
||||
}
|
||||
return "";
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@ -117,7 +117,10 @@ public:
|
||||
class RtfFieldInst : public IDocumentElement
|
||||
{
|
||||
public:
|
||||
|
||||
RtfFieldInst()
|
||||
{
|
||||
SetDefault();
|
||||
}
|
||||
void SetDefaultRtf()
|
||||
{
|
||||
SetDefault();
|
||||
|
||||
@ -281,7 +281,7 @@ private:
|
||||
{
|
||||
token.Type = RtfToken::Control;
|
||||
|
||||
CStringA s; s.Format("%i", c);
|
||||
CStringA s = std::to_string( c);
|
||||
|
||||
token.Key = s.GetBuffer();
|
||||
|
||||
|
||||
@ -691,11 +691,11 @@ CString RtfSectionProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
//Page Information
|
||||
CString sPageSize;
|
||||
if( PROP_DEF != m_nPageWidth )
|
||||
sPageSize.AppendFormat(L" w:w=\"%d\"",m_nPageWidth);
|
||||
sPageSize += L" w:w=\"" + std::to_wstring(m_nPageWidth) + L"\"";
|
||||
if( PROP_DEF != m_nPageHeight )
|
||||
sPageSize.AppendFormat(L" w:h=\"%d\"",m_nPageHeight);
|
||||
sPageSize += L" w:h=\"" + std::to_wstring(m_nPageHeight) + L"\"";
|
||||
if( 1 == m_bLandscapeFormat )
|
||||
sPageSize.Append(L" w:orient=\"landscape\"");
|
||||
sPageSize += L" w:orient=\"landscape\"";
|
||||
if( false == sPageSize.IsEmpty() )
|
||||
sResult += L"<w:pgSz " + sPageSize + L"/>";
|
||||
|
||||
|
||||
@ -1310,7 +1310,7 @@ CString RtfShape::RenderToOOXBegin(RenderParameter oRenderParameter)
|
||||
|
||||
if ( PROP_DEF != m_nFillOpacity)
|
||||
{
|
||||
CString sOpacity; sOpacity.Format(L"%d", /*100 - */m_nFillOpacity);
|
||||
CString sOpacity = std::to_wstring( /*100 - */m_nFillOpacity);
|
||||
sResult += L" opacity=\"" + sOpacity +L"%\"";
|
||||
//sResult.AppendFormat( L" opacity=\"%df\"", m_nFillOpacity );
|
||||
}
|
||||
|
||||
@ -141,17 +141,13 @@ namespace Strings
|
||||
|
||||
static CString FromInteger(int Value, int Base = 10)
|
||||
{
|
||||
CString str;
|
||||
|
||||
str.Format(L"%d", Value);
|
||||
CString str = std::to_wstring(Value);
|
||||
|
||||
return str;
|
||||
}
|
||||
static CString FromDouble(double Value)
|
||||
{
|
||||
CString str;
|
||||
|
||||
str.Format(L"%lf", Value);
|
||||
CString str = std::to_wstring(Value);
|
||||
|
||||
return str;
|
||||
}
|
||||
@ -170,8 +166,7 @@ class Convert
|
||||
public:
|
||||
static CString ToString(int i)
|
||||
{
|
||||
CString result;
|
||||
result.Format( L"%i", i);
|
||||
CString result = std::to_wstring( i);
|
||||
return result;
|
||||
}
|
||||
static CString ToStringHex( int i, int nLen )
|
||||
|
||||
@ -50,14 +50,7 @@ SOURCES += \
|
||||
../Source/Common/Encoding.cpp \
|
||||
../Source/Common/ToString.cpp \
|
||||
../Source/TxtFormat/File.cpp \
|
||||
../Source/TxtFormat/TxtFile.cpp
|
||||
|
||||
build_fast {
|
||||
SOURCES += \
|
||||
txtxmlformatlib_converter.cpp
|
||||
} else {
|
||||
SOURCES += \
|
||||
../Source/TxtFormat/TxtFile.cpp \
|
||||
../Source/TxtXmlFile.cpp \
|
||||
../Source/ConvertDocx2Txt.cpp \
|
||||
../Source/ConvertTxt2Docx.cpp
|
||||
}
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2016
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "../Source/TxtXmlFile.cpp"
|
||||
#include "../Source/ConvertDocx2Txt.cpp"
|
||||
#include "../Source/ConvertTxt2Docx.cpp"
|
||||
@ -55,7 +55,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
std::wstring outputDir = FileSystem::Directory::GetFolderPath(dstPath);
|
||||
std::wstring dstTempPath = FileSystem::Directory::CreateDirectoryWithUniqueName(outputDir);
|
||||
|
||||
hr = ConvertXls2Xlsx(srcFileName, dstTempPath, L"", L"C:\\Windows\\Fonts", NULL);
|
||||
hr = ConvertXls2Xlsx(srcFileName, dstTempPath, L"password", L"C:\\Windows\\Fonts", NULL);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
|
||||
@ -37,11 +37,11 @@
|
||||
|
||||
namespace CRYPT
|
||||
{
|
||||
RC4Decryptor::RC4Decryptor(CryptRC4Data & header, std::wstring password, int type) :
|
||||
crypt (new RC4Crypt(header, password, type)),
|
||||
type (Crypt::RC4)
|
||||
RC4Decryptor::RC4Decryptor(CryptRC4Data & header, std::wstring _password, int _type) :
|
||||
crypt(new RC4Crypt(header, _password, _type))
|
||||
{
|
||||
crypt_data = header;
|
||||
crypt_data = header;
|
||||
type = _type;
|
||||
}
|
||||
|
||||
void RC4Decryptor::Decrypt(char* data, const size_t size, const unsigned long stream_pos)
|
||||
@ -54,7 +54,7 @@ namespace CRYPT
|
||||
return crypt->IsVerify();
|
||||
}
|
||||
|
||||
bool RC4Decryptor::SetPassword(std::wstring password, int type)
|
||||
bool RC4Decryptor::SetPassword(std::wstring password)
|
||||
{
|
||||
crypt.reset();
|
||||
crypt = CryptPtr(new RC4Crypt(crypt_data, password, type));
|
||||
|
||||
@ -43,18 +43,16 @@ namespace CRYPT
|
||||
RC4Decryptor(CryptRC4Data & header, std::wstring password, int type);
|
||||
|
||||
virtual void Decrypt(char* data, const size_t size, const unsigned long stream_pos);
|
||||
virtual bool SetPassword(std::wstring password);
|
||||
|
||||
bool IsVerify();
|
||||
|
||||
bool SetPassword(std::wstring password, int type = 1);
|
||||
virtual bool IsVerify();
|
||||
|
||||
private:
|
||||
int type;
|
||||
CryptPtr crypt;
|
||||
Crypt::crypt_type type;
|
||||
CryptRC4Data crypt_data;
|
||||
};
|
||||
|
||||
typedef boost::shared_ptr<RC4Decryptor> RC4DecryptorPtr;
|
||||
|
||||
|
||||
} // namespace CRYPT
|
||||
|
||||
@ -61,7 +61,7 @@ BaseObjectPtr CF::clone()
|
||||
|
||||
void CF::readFields(CFRecord& record)
|
||||
{
|
||||
GlobalWorkbookInfoPtr global_info = record.getGlobalWorkbookInfo();
|
||||
global_info_ = record.getGlobalWorkbookInfo();
|
||||
|
||||
unsigned short cce1;
|
||||
unsigned short cce2;
|
||||
@ -72,10 +72,11 @@ void CF::readFields(CFRecord& record)
|
||||
rgce1.load(record, cce1);
|
||||
rgce2.load(record, cce2);
|
||||
|
||||
ipriority_ = ++record.getGlobalWorkbookInfo()->cmt_rules;
|
||||
|
||||
rgbdxf.serialize(record.getGlobalWorkbookInfo()->users_Dxfs_stream);
|
||||
dxfId_ = global_info->cellStyleDxfs_count++;
|
||||
ipriority_ = ++global_info_->cmt_rules;
|
||||
|
||||
rgbdxf.serialize(global_info_->users_Dxfs_stream);
|
||||
|
||||
dxfId_ = global_info_->cellStyleDxfs_count++;
|
||||
}
|
||||
|
||||
int CF::serialize(std::wostream & stream)
|
||||
@ -84,9 +85,6 @@ int CF::serialize(std::wostream & stream)
|
||||
return 0;
|
||||
|
||||
CFEx * cfEx = dynamic_cast<CFEx *>(m_CFEx.get());
|
||||
if (cfEx)
|
||||
{
|
||||
}
|
||||
|
||||
CP_XML_WRITER(stream)
|
||||
{
|
||||
@ -120,22 +118,31 @@ int CF::serialize(std::wostream & stream)
|
||||
|
||||
if ((cfEx) && (cfEx->content.fHasDXF))
|
||||
{
|
||||
cfEx->content.dxf.serialize(CP_XML_STREAM());
|
||||
//cfEx->content.dxf.serialize(CP_XML_STREAM()); - вложенный формат низя?
|
||||
|
||||
if (cfEx->dxfId_ >= 0 )
|
||||
dxfId_ = cfEx->dxfId_;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (dxfId_ >= 0)
|
||||
CP_XML_ATTR(L"dxfId", dxfId_);
|
||||
}
|
||||
|
||||
std::wstring s1 = rgce1.getAssembledFormula();
|
||||
std::wstring s2 = rgce2.getAssembledFormula();
|
||||
|
||||
CP_XML_NODE(L"formula")
|
||||
if (!s1.empty())
|
||||
{
|
||||
if (!s1.empty())
|
||||
CP_XML_NODE(L"formula")
|
||||
{
|
||||
CP_XML_STREAM() << xml::utils::replace_text_to_xml(s1);
|
||||
else if(!s2.empty())
|
||||
}
|
||||
}
|
||||
if(!s2.empty())
|
||||
{
|
||||
CP_XML_NODE(L"formula")
|
||||
{
|
||||
CP_XML_STREAM() << xml::utils::replace_text_to_xml(s2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,6 +69,8 @@ public:
|
||||
CFParsedFormulaNoCCE rgce2;
|
||||
|
||||
BaseObjectPtr m_CFEx;
|
||||
|
||||
GlobalWorkbookInfoPtr global_info_;
|
||||
};
|
||||
|
||||
typedef boost::shared_ptr<CF> CFPtr;
|
||||
|
||||
@ -37,6 +37,7 @@ namespace XLS
|
||||
|
||||
CFEx::CFEx()
|
||||
{
|
||||
dxfId_ = -1;
|
||||
}
|
||||
|
||||
|
||||
@ -57,6 +58,11 @@ void CFEx::readFields(CFRecord& record)
|
||||
if(!fIsCF12)
|
||||
{
|
||||
record >> content;
|
||||
|
||||
if (content.dxf.serialize(record.getGlobalWorkbookInfo()->users_Dxfs_stream) >= 0)
|
||||
{
|
||||
dxfId_ = record.getGlobalWorkbookInfo()->cellStyleDxfs_count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -49,17 +49,17 @@ public:
|
||||
~CFEx();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeCFEx;
|
||||
|
||||
//-----------------------------
|
||||
FrtRefHeaderU frtRefHeaderU;
|
||||
unsigned int fIsCF12;
|
||||
_UINT16 nID;
|
||||
CFExNonCF12 content;
|
||||
//-----------------------------
|
||||
int dxfId_;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,7 +53,9 @@ BaseObjectPtr DVal::clone()
|
||||
void DVal::readFields(CFRecord& record)
|
||||
{
|
||||
unsigned short flags;
|
||||
|
||||
record >> flags >> xLeft >> yTop >> idObj >> idvMac;
|
||||
|
||||
fWnClosed = GETBIT(flags, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -66,7 +66,7 @@ int DXF::serialize(std::wostream & stream)
|
||||
{
|
||||
CP_XML_NODE(L"dxf")
|
||||
{
|
||||
xfprops.serialize(CP_XML_STREAM());
|
||||
xfprops.serialize(CP_XML_STREAM(), true);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
@ -32,8 +32,33 @@
|
||||
|
||||
#include "Dv.h"
|
||||
|
||||
#include <utils.h>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
static std::wstring replace_zero (const std::wstring &str, const std::wstring &delimetr)
|
||||
{
|
||||
if (str.empty()) return L"";
|
||||
|
||||
std::wstring out;
|
||||
int pos = 0;
|
||||
while(true)
|
||||
{
|
||||
if (pos >= str.size()) break;
|
||||
|
||||
if (str[pos] == '\0')
|
||||
{
|
||||
out += delimetr;
|
||||
}
|
||||
else
|
||||
{
|
||||
out += str[pos];
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
BaseObjectPtr Dv::clone()
|
||||
{
|
||||
@ -45,22 +70,91 @@ void Dv::readFields(CFRecord& record)
|
||||
_UINT32 flags;
|
||||
record >> flags;
|
||||
|
||||
valType = static_cast<unsigned char>(GETBITS(flags, 0, 3));
|
||||
errStyle = static_cast<unsigned char>(GETBITS(flags, 4, 6));
|
||||
valType = static_cast<_valTypeDv>(GETBITS(flags, 0, 3));
|
||||
errStyle = static_cast<unsigned char>(GETBITS(flags, 4, 6));
|
||||
|
||||
fStrLookup = GETBIT(flags, 7);
|
||||
fAllowBlank = GETBIT(flags, 8);
|
||||
fSuppressCombo = GETBIT(flags, 9);
|
||||
mdImeMode = static_cast<unsigned char>(GETBITS(flags, 10, 17));
|
||||
fShowInputMsg = GETBIT(flags, 18);
|
||||
fShowErrorMsg = GETBIT(flags, 19);
|
||||
typOperator = static_cast<unsigned char>(GETBITS(flags, 20, 23));
|
||||
fStrLookup = GETBIT(flags, 7);
|
||||
fAllowBlank = GETBIT(flags, 8);
|
||||
fSuppressCombo = GETBIT(flags, 9);
|
||||
mdImeMode = static_cast<unsigned char>(GETBITS(flags, 10, 17));
|
||||
fShowInputMsg = GETBIT(flags, 18);
|
||||
fShowErrorMsg = GETBIT(flags, 19);
|
||||
typOperator = static_cast<_typOperatorDv>(GETBITS(flags, 20, 23));
|
||||
|
||||
record >> PromptTitle >> ErrorTitle >> Prompt >> Error;
|
||||
|
||||
formula1.load(record);
|
||||
formula2.load(record);
|
||||
|
||||
record >> sqref;
|
||||
}
|
||||
|
||||
int Dv::serialize(std::wostream & stream)
|
||||
{
|
||||
CP_XML_WRITER(stream)
|
||||
{
|
||||
CP_XML_NODE(L"dataValidation")
|
||||
{
|
||||
CP_XML_ATTR(L"sqref", sqref.strValue);
|
||||
CP_XML_ATTR(L"showErrorMessage", fShowErrorMsg);
|
||||
CP_XML_ATTR(L"showInputMessage", fShowInputMsg);
|
||||
CP_XML_ATTR(L"allowBlank", fAllowBlank);
|
||||
|
||||
switch(typOperator)
|
||||
{
|
||||
case operatorDvBetween: CP_XML_ATTR(L"operator", L"between"); break;
|
||||
case operatorDvNotBetween: CP_XML_ATTR(L"operator", L"notBetween"); break;
|
||||
case operatorDvEquals: CP_XML_ATTR(L"operator", L"equal"); break;
|
||||
case operatorDvNotEquals: CP_XML_ATTR(L"operator", L"notEqual"); break;
|
||||
case operatorDvGreaterThan: CP_XML_ATTR(L"operator", L"greaterThan"); break;
|
||||
case operatorDvLessThan: CP_XML_ATTR(L"operator", L"lessThan"); break;
|
||||
case operatorDvGreaterThanOrEqual: CP_XML_ATTR(L"operator", L"greaterThanOrEqual");break;
|
||||
case operatorDvLessThanOrEqual: CP_XML_ATTR(L"operator", L"lessThanOrEqual"); break;
|
||||
}
|
||||
switch(valType)
|
||||
{
|
||||
case typeDvCustom: CP_XML_ATTR(L"type", L"custom"); break;
|
||||
case typeDvDate: CP_XML_ATTR(L"type", L"date"); break;
|
||||
case typeDvDecimal: CP_XML_ATTR(L"type", L"decimal"); break;
|
||||
case typeDvList: CP_XML_ATTR(L"type", L"list"); break;
|
||||
case typeDvNone: CP_XML_ATTR(L"type", L"none"); break;
|
||||
case typeDvTextLength: CP_XML_ATTR(L"type", L"textLength");break;
|
||||
case typeDvTime: CP_XML_ATTR(L"type", L"time"); break;
|
||||
case typeDvWhole: CP_XML_ATTR(L"type", L"whole"); break;
|
||||
}
|
||||
if (!PromptTitle.value().empty())
|
||||
{
|
||||
CP_XML_ATTR(L"promtTitle", PromptTitle.value());
|
||||
}
|
||||
if (!Prompt.value().empty())
|
||||
{
|
||||
CP_XML_ATTR(L"promt", Prompt.value());
|
||||
}
|
||||
if (!ErrorTitle.value().empty())
|
||||
{
|
||||
CP_XML_ATTR(L"errorTitle", ErrorTitle.value());
|
||||
}
|
||||
if (!Error.value().empty())
|
||||
{
|
||||
CP_XML_ATTR(L"error", Error.value());
|
||||
}
|
||||
std::wstring sFormula1 = replace_zero(formula1.getAssembledFormula(), L",");
|
||||
std::wstring sFormula2 = replace_zero(formula2.getAssembledFormula(), L",");
|
||||
|
||||
if (!sFormula1.empty())
|
||||
{
|
||||
//boost::algorithm::replace_all(sFormula1 , "\0", L",");
|
||||
CP_XML_NODE(L"formula1") {CP_XML_STREAM() << xml::utils::replace_text_to_xml(sFormula1);}
|
||||
}
|
||||
if (!sFormula2.empty())
|
||||
{
|
||||
//boost::algorithm::replace_all(sFormula2 , "\0", L",");
|
||||
CP_XML_NODE(L"formula2") {CP_XML_STREAM() << xml::utils::replace_text_to_xml(sFormula2);}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -38,39 +38,62 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of Dv record in BIFF8
|
||||
enum _typOperatorDv
|
||||
{
|
||||
operatorDvBetween = 0,
|
||||
operatorDvNotBetween,
|
||||
operatorDvEquals,
|
||||
operatorDvNotEquals,
|
||||
operatorDvGreaterThan,
|
||||
operatorDvLessThan,
|
||||
operatorDvGreaterThanOrEqual,
|
||||
operatorDvLessThanOrEqual
|
||||
};
|
||||
enum _valTypeDv
|
||||
{
|
||||
typeDvCustom = 0,
|
||||
typeDvDate,
|
||||
typeDvDecimal,
|
||||
typeDvList,
|
||||
typeDvNone,
|
||||
typeDvTextLength,
|
||||
typeDvTime,
|
||||
typeDvWhole
|
||||
};
|
||||
class Dv: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(Dv)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Dv)
|
||||
public:
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeDv;
|
||||
|
||||
int serialize(std::wostream & stream);
|
||||
|
||||
//-----------------------------
|
||||
unsigned char valType;
|
||||
_valTypeDv valType;
|
||||
unsigned char errStyle;
|
||||
bool fStrLookup;
|
||||
bool fAllowBlank;
|
||||
bool fSuppressCombo;
|
||||
|
||||
bool fStrLookup;
|
||||
bool fAllowBlank;
|
||||
bool fSuppressCombo;
|
||||
unsigned char mdImeMode;
|
||||
bool fShowInputMsg;
|
||||
bool fShowErrorMsg;
|
||||
unsigned char typOperator;
|
||||
bool fShowInputMsg;
|
||||
bool fShowErrorMsg;
|
||||
_typOperatorDv typOperator;
|
||||
|
||||
XLUnicodeString PromptTitle;
|
||||
XLUnicodeString ErrorTitle;
|
||||
XLUnicodeString Prompt;
|
||||
XLUnicodeString Error;
|
||||
|
||||
DVParsedFormula formula1;
|
||||
DVParsedFormula formula2;
|
||||
SqRefU sqref;
|
||||
|
||||
SqRefU sqref;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -69,28 +69,27 @@ void FilePass::readFields(CFRecord& record)
|
||||
bEnabled = true;
|
||||
|
||||
majorVer = *record.getCurData<unsigned short>();
|
||||
|
||||
cryptHeaderPtr = CRYPTO::RC4EncryptionHeaderPtr(new CRYPTO::RC4EncryptionHeader());
|
||||
|
||||
cryptHeaderPtr->bStandard = 0x0001 == majorVer ? true : false; // _S2dvT1xU_R3bOPwre4_.xls
|
||||
|
||||
cryptHeaderPtr->load (record);
|
||||
|
||||
rc4HeaderPtr = CRYPTO::RC4EncryptionHeaderPtr(new CRYPTO::RC4EncryptionHeader());
|
||||
|
||||
rc4HeaderPtr->bStandard = 0x0001 == majorVer ? true : false; // _S2dvT1xU_R3bOPwre4_.xls
|
||||
rc4HeaderPtr->load (record);
|
||||
|
||||
if (rc4HeaderPtr->bStandard)
|
||||
if (cryptHeaderPtr->bStandard)
|
||||
{
|
||||
record.getGlobalWorkbookInfo()->decryptor =
|
||||
CRYPT::RC4DecryptorPtr(new CRYPT::RC4Decryptor(rc4HeaderPtr->crypt_data_rc4, record.getGlobalWorkbookInfo()->password, 2));
|
||||
CRYPT::DecryptorPtr(new CRYPT::RC4Decryptor(cryptHeaderPtr->crypt_data_rc4, record.getGlobalWorkbookInfo()->password, 2));
|
||||
}
|
||||
else
|
||||
{
|
||||
//CRYPT::ECMADecryptor Decryptor;
|
||||
record.getGlobalWorkbookInfo()->decryptor =
|
||||
CRYPT::DecryptorPtr(new CRYPT::ECMADecryptor());
|
||||
|
||||
CRYPT::ECMADecryptor *crypter = dynamic_cast<CRYPT::ECMADecryptor *>(record.getGlobalWorkbookInfo()->decryptor.get());
|
||||
|
||||
//Decryptor.SetCryptData(rc4HeaderPtr->crypt_data_aes);
|
||||
|
||||
//if (Decryptor.SetPassword(L"VelvetSweatshop") == false)
|
||||
//{
|
||||
//}
|
||||
// //record.getGlobalWorkbookInfo()->decryptor =
|
||||
// //CRYPT::ECMADecryptor(new CRYPT::RC4Decryptor(rc4HeaderPtr->crypt_data_rc4, record.getGlobalWorkbookInfo()->password, 2));
|
||||
crypter->SetCryptData(cryptHeaderPtr->crypt_data_aes);
|
||||
crypter->SetPassword(record.getGlobalWorkbookInfo()->password);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -60,8 +60,7 @@ public:
|
||||
XORObfuscation key;
|
||||
_UINT16 majorVer;
|
||||
|
||||
CRYPTO::RC4EncryptionHeaderPtr rc4HeaderPtr;
|
||||
CRYPTO::RC4CryptoAPIEncryptionHeader rc4CryptoAPIHeader;
|
||||
CRYPTO::RC4EncryptionHeaderPtr cryptHeaderPtr;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -111,6 +111,8 @@ int Legend::serialize(std::wostream & _stream, int size)
|
||||
dy = dy * size;
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"c:layout");
|
||||
CP_XML_NODE(L"c:overlay") {CP_XML_ATTR(L"val", 0);}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -40,7 +40,8 @@ namespace XLS
|
||||
|
||||
Pos::Pos()
|
||||
{
|
||||
m_iLinkObject = -1;
|
||||
m_iLinkObject = -1;
|
||||
m_iLayoutTarget = 0; //not set, 1 - outer, 2 -inner
|
||||
}
|
||||
|
||||
|
||||
@ -78,8 +79,8 @@ int Pos::serialize(std::wostream & _stream)
|
||||
{
|
||||
Frame* Frame_ = dynamic_cast<Frame*>(m_Frame.get());
|
||||
|
||||
bAutoPosition = !Frame_->fAutoPosition;
|
||||
bAutoSize = !Frame_->fAutoSize;
|
||||
bAutoPosition = Frame_->fAutoPosition;
|
||||
bAutoSize = Frame_->fAutoSize;
|
||||
}
|
||||
double x = x1 / 4000.;
|
||||
double y = y1 / 4000.;
|
||||
@ -98,9 +99,14 @@ int Pos::serialize(std::wostream & _stream)
|
||||
{
|
||||
CP_XML_NODE(L"c:manualLayout")
|
||||
{
|
||||
//if (m_iLinkObject == 1) x += 0.5 + (w > 0 ? w : 0);
|
||||
if (m_iLayoutTarget > 0)
|
||||
{
|
||||
CP_XML_NODE(L"c:layoutTarget"){CP_XML_ATTR(L"val", m_iLayoutTarget == 1 ? L"outer" : L"inner");}
|
||||
}
|
||||
//if (m_iLinkObject == 1 && mdTopLt == 2 && mdBotRt == 2 && x == 0)
|
||||
// x += 0.5 - (w > 0 ? w / 2 : 0);
|
||||
//if (m_iLinkObject == 2) x += 0.5 + (w > 0 ? w : 0);
|
||||
if (m_iLinkObject == 3) y += 0 + (h > 0 ? h : 0);
|
||||
//if (m_iLinkObject == 3) y += 0 + (h > 0 ? h : 0);
|
||||
|
||||
CP_XML_NODE(L"c:xMode") {CP_XML_ATTR(L"val", L"edge");}
|
||||
CP_XML_NODE(L"c:yMode") {CP_XML_ATTR(L"val", L"edge");}
|
||||
|
||||
@ -47,7 +47,6 @@ public:
|
||||
~Pos();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
@ -67,7 +66,9 @@ public:
|
||||
|
||||
//-----------------------------
|
||||
|
||||
int m_iLayoutTarget;
|
||||
short m_iLinkObject;
|
||||
|
||||
BaseObjectPtr m_Frame;
|
||||
|
||||
};
|
||||
|
||||
@ -219,7 +219,7 @@ int TxO::serialize_rPr (std::wostream & _stream, int iFmt, std::wstring namespac
|
||||
if (!pGlobalWorkbookInfoPtr->m_arFonts) return 0;
|
||||
|
||||
int sz = pGlobalWorkbookInfoPtr->m_arFonts->size();
|
||||
if (iFmt - 1 > sz || iFmt < 1) return 0;
|
||||
if (iFmt - 1 >= sz || iFmt < 1) return 0;
|
||||
|
||||
Font * font = dynamic_cast<Font*>(pGlobalWorkbookInfoPtr->m_arFonts->at(iFmt-1).get());
|
||||
|
||||
|
||||
@ -37,8 +37,7 @@ namespace XLS
|
||||
{
|
||||
|
||||
|
||||
DVParsedFormula::DVParsedFormula()
|
||||
: ParsedFormula(CellRef())
|
||||
DVParsedFormula::DVParsedFormula() : ParsedFormula(CellRef())
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -45,8 +45,6 @@ public:
|
||||
DVParsedFormula();
|
||||
BiffStructurePtr clone();
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user