Compare commits

...

23 Commits

Author SHA1 Message Date
a1846da0da Merge tag 'v4.2.7' into develop
v4.2.7 v4.2.7
2017-02-01 12:49:34 +03:00
0bd10c28ac Merge branch 'hotfix/v4.2.7' 2017-02-01 12:49:29 +03:00
2367cee329 PptxFormat - fix user file with wrong rels 2017-01-31 19:59:20 +03:00
288d89301a fix bug 33801 2017-01-31 17:16:28 +03:00
4d519e8f26 x2t - version up, .. 2017-01-31 15:02:34 +03:00
1bd2c0b852 Merge branch 'hotfix/v4.2.7' into develop
fix bug 33867
2017-01-31 13:57:55 +03:00
82b0f4bce8 DiagramDrawing losing images 2017-01-31 13:50:16 +03:00
5635239274 fix crash on windows 2017-01-31 13:12:43 +03:00
1f979fc4cc . 2017-01-31 12:05:32 +03:00
80c4a65147 PptxFormat- fix convert oox drawing to vml drawing
RtfFormatWriter - convert oox drawing, convert smart art objects
2017-01-31 11:58:09 +03:00
4fda6101eb OdfFormatWriter - convert smart art 2017-01-28 18:38:46 +03:00
99822fb597 x2t ... fix after testing 2017-01-27 19:12:35 +03:00
f1d9c12f07 change encoding to utf8 2017-01-27 18:31:50 +03:00
30ef5a9de4 fix build converter 2017-01-27 17:54:00 +03:00
765ca861fb fix bug 33842 (corrupted xlsx->csv convertion) 2017-01-27 15:22:14 +03:00
99570b3b86 . 2017-01-26 19:51:12 +03:00
d9c6759108 OdfFormatWriter - convert smart art in spreadsheets, ... 2017-01-26 19:40:42 +03:00
b82a8c6b9b developing... 2017-01-26 15:20:54 +03:00
d76b1897aa save conditionalFormating to xlsx 2017-01-25 20:27:25 +03:00
857b79ee23 x2t - fix smart art 2017-01-25 19:51:47 +03:00
ecba12b29f x2t - delete unused files 2017-01-25 15:43:27 +03:00
efc48ab44c . 2017-01-25 13:04:02 +03:00
5f0620ed90 x2t - delete unused files 2017-01-25 13:01:18 +03:00
274 changed files with 6164 additions and 17086 deletions

View File

@ -183,9 +183,7 @@ namespace DocFileFormat
void WordprocessingDocument::SaveDocument()
{
std::wstring pathWord = m_strOutputPath + FILE_SEPARATOR_STR + L"word" ;
//OOX::CPath pathWord = CString(m_strOutputPath) + FILE_SEPARATOR_STR + L"word" );
//FileSystem::Directory::CreateDirectory( pathWord.GetPath() );
NSDirectory::CreateDirectory( pathWord );
NSDirectory::CreateDirectory( pathWord );
WritePackage();
@ -204,9 +202,7 @@ namespace DocFileFormat
if (!ImagesList.empty())
{
std::wstring pathMedia = pathWord + FILE_SEPARATOR_STR + L"media";
//OOX::CPath pathMedia = pathWord + FILE_SEPARATOR_STR + L"media";
//FileSystem::Directory::CreateDirectory( pathMedia.GetPath() );
NSDirectory::CreateDirectory(pathMedia);
int i = 1;
@ -237,8 +233,6 @@ namespace DocFileFormat
if (!OleObjectsList.empty())
{
std::wstring pathObjects = pathWord + FILE_SEPARATOR_STR + L"embeddings" ;
//OOX::CPath pathObjects = pathWord + FILE_SEPARATOR_STR + L"embeddings" ;
//FileSystem::Directory::CreateDirectory( pathObjects.GetPath());
NSDirectory::CreateDirectory( pathObjects );
int i = 1;

View File

@ -23,9 +23,9 @@ DEFINES += UNICODE \
_UNICODE \
_USE_XMLLITE_READER_ \
USE_LITE_READER \
USE_ATL_CSTRING \
_USE_LIBXML2_READER_ \
LIBXML_READER_ENABLED
LIBXML_READER_ENABLED \
DONT_WRITE_EMBEDDED_FONTS \
INCLUDEPATH += \
../../../DesktopEditor/freetype-2.5.2/include \

View File

@ -44,7 +44,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"

File diff suppressed because it is too large Load Diff

View File

@ -1,137 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 "BlipFactory.h"
namespace GdiPlusHelper
{
inline static int CompareStrings (const wchar_t* str1, const wchar_t* str2)
{
CString cstr1; cstr1 = str1;
CString cstr2; cstr2 = str2;
if (cstr1 == cstr2)
return 0;
return 1;
}
//inline static void GetEncoderCLSID (const wchar_t* pFormat, CLSID* pClsid)
//{
// // variables
// UINT nEncoders = 0;
// UINT nSize = 0;
// Gdiplus::ImageCodecInfo* pImageCodecInfo = 0;
// // retrieve encoders info
// Gdiplus::GetImageEncodersSize(&nEncoders, &nSize);
// // check for valid encoders
// if (!nSize)
// throw 0;
// // create encoders info structure of necessary size
// pImageCodecInfo = (Gdiplus::ImageCodecInfo*)(malloc(nSize));
// // check for valid encoder
// if (!pImageCodecInfo)
// throw 0;
// // retrieve all encoders
// Gdiplus::GetImageEncoders(nEncoders, nSize, pImageCodecInfo);
// // locate necessary encoder
// for (UINT nEncoder = 0; nEncoder < nEncoders; ++nEncoder)
// {
// // compare MIME strings
// if (CompareStrings(pImageCodecInfo[nEncoder].MimeType, pFormat) == 0)
// {
// // save CLSID
// *pClsid = pImageCodecInfo[nEncoder].Clsid;
// // clear memory
// free(pImageCodecInfo);
// // all ok
// return;
// }
// }
// // clear memory
// free(pImageCodecInfo);
// // codec not found
// throw 0;
//}
}
namespace OfficeArt
{
OfficeArtBlip* BlipFactory::GetBlipWithPngTransform()
{
//CString strTempPath;
//if (::GetTempPath(_MAX_PATH, strTempPath.GetBuffer(_MAX_PATH)) != 0)
// strTempPath.ReleaseBuffer();
//else
// strTempPath = _T(".");
//CString strTempFile;
//if (::GetTempFileName(strTempPath, _T("file"), 0, strTempFile.GetBuffer(_MAX_PATH)) != 0)
//{
// CString tempFile; tempFile.Format (_T("%s%s"), strTempFile, _T(".png"));
// CGdiPlusInit m_oInitGdiplus;
// if (m_oInitGdiplus.Init())
// {
// Gdiplus::Bitmap oBitmap (m_sFile.c_str());
// if (Gdiplus::Ok == oBitmap.GetLastStatus())
// {
// CLSID guid;
// GdiPlusHelper::GetEncoderCLSID (L"image/png", &guid);
// if (Gdiplus::Ok == oBitmap.Save (tempFile, &guid))
// {
// if (Gdiplus::Ok == oBitmap.GetLastStatus())
// {
// m_sFile = std::wstring (tempFile);
// m_bDeleteFile = TRUE;
// return GetOfficeArtBlip();
// }
// }
// }
// }
//}
return NULL;
}
}

View File

@ -1,339 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#include <fstream>
#include <string>
#include "OfficeArtBlipJPEG.h"
#include "OfficeArtBlipPNG.h"
#include "OfficeArtBlipEMF.h"
#include "OfficeArtBlipWMF.h"
#include "OfficeArtBlipTIFF.h"
#include "OfficeArtFBSE.h"
#include "../../Common/MD4/md4.h"
#include "../../../ASCOfficeUtils/ASCOfficeUtilsLib/OfficeUtils.h"
namespace OfficeArt
{
class BlipFactory
{
public:
BlipFactory () : m_bDeleteFile (FALSE)
{
}
BlipFactory (std::wstring fileName) : m_bDeleteFile (FALSE)
{
m_sFile = std::wstring(fileName);
}
~BlipFactory ()
{
if (m_bDeleteFile)
{
::DeleteFile (m_sFile.c_str());
}
}
inline std::wstring GetFileNameExtension() const
{
std::wstring::size_type dotPosition = m_sFile.find_last_of( _T( '.' ) );
static const std::wstring::size_type npos = -1;
std::wstring extension;
if (dotPosition != npos)
extension = std::wstring( ( m_sFile.begin() + dotPosition + 1 ), m_sFile.end() );
return extension;
}
inline Enumerations::MSOBLIPTYPE GetBlipType() const
{
Enumerations::MSOBLIPTYPE blipType = Enumerations::msoblipUNKNOWN;
std::wstring extension = GetFileNameExtension();
if ( (extension == std::wstring(L"jpg")) || (extension == std::wstring(L"jpeg")) )
{
blipType = Enumerations::msoblipJPEG;
}
else if (extension == std::wstring(L"png") || extension == std::wstring(L"gif"))
{
blipType = Enumerations::msoblipPNG;
}
else if (extension == std::wstring(L"emf"))
{
blipType = Enumerations::msoblipEMF;
}
else if (extension == std::wstring(L"wmf"))
{
blipType = Enumerations::msoblipWMF;
}
else if (extension == std::wstring(L"tiff") || extension == std::wstring(L"tif"))
{
blipType = Enumerations::msoblipTIFF;
}
else if (extension == std::wstring(L"bmp"))
{
blipType = Enumerations::msoblipDIB;
}
return blipType;
}
inline OfficeArtBlip* GetOfficeArtBlip()
{
OfficeArtBlip* officeArtBlip = NULL;
if (!m_sFile.empty())
{
std::string xstr;
std::ifstream xfile(m_sFile.c_str(), std::ios::binary);
//узнаем размер файла, и выделяем память в строке
xfile.seekg( 0, std::ios_base::end );
xstr.resize( xfile.tellg() );
xfile.seekg( 0, std::ios_base::beg );
//копируем данные
xfile.read(const_cast<char*>( xstr.data() ), (std::streamsize)xstr.size());
if ( !xstr.empty() )
{
std::wstring extension = GetFileNameExtension();
if ( extension == std::wstring(L"gif")
|| extension == std::wstring(L"bmp")
|| extension == std::wstring(L"tiff")
|| extension == std::wstring(L"tif") )
{
// MS WORD конвертит исходник в PNG формат ( UUID берет их исходника GIF файла )
// MS WORD конвертит исходник в PNG формат ( UUID берет их исходника TIFF файла )
// MS WORD конвертит исходник в PNG формат ( UUID берет их исходника BMP файла )
m_sOriginalData = xstr;
officeArtBlip = GetBlipWithPngTransform();
}
else if ((extension == std::wstring(L"jpg")) || (extension == std::wstring(L"jpeg")))
{
MD4 md4Code((unsigned char*)xstr.data(), xstr.size());
officeArtBlip = new OfficeArtBlipJPEG((unsigned char*)xstr.data(), xstr.size(), md4Code.GetMD4Bytes());
}
else if (extension == std::wstring(L"png"))
{
if (m_sOriginalData.length())
{
MD4 md4Code((unsigned char*)m_sOriginalData.data(), m_sOriginalData.size());
officeArtBlip = new OfficeArtBlipPNG ((unsigned char*)m_sOriginalData.data(), m_sOriginalData.size(), md4Code.GetMD4Bytes());
}
else
{
MD4 md4Code((unsigned char*)xstr.data(), xstr.size());
officeArtBlip = new OfficeArtBlipPNG ((unsigned char*)xstr.data(), xstr.size(), md4Code.GetMD4Bytes());
}
}
else if (extension == std::wstring(L"emf"))
{
unsigned char* buffer = NULL;
unsigned long comprLen = CompressImage( &buffer, (unsigned char*)xstr.data(), xstr.size());
if ( ( buffer != NULL ) && ( comprLen != 0 ) )
{
MD4 md4Code((unsigned char*)xstr.data(), xstr.size());
//!!!TODO!!!
officeArtBlip = new OfficeArtBlipEMF( OfficeArtMetafileHeader( xstr.size(), RECT( 0, 0, 0, 0 ), POINT( 0, 0 ), comprLen, COMPRESSION_METHOD_DEFLATE ), buffer, md4Code.GetMD4Bytes() );
RELEASEARRAYOBJECTS (buffer);
}
}
else if (extension == std::wstring(L"wmf"))
{
unsigned long comprLen = 0;
unsigned char* buffer = NULL;
std::string metaPlaceableRecord;
std::string wmfData;
metaPlaceableRecord.push_back( (char)0xD7 );
metaPlaceableRecord.push_back( (char)0xCD );
metaPlaceableRecord.push_back( (char)0xC6 );
metaPlaceableRecord.push_back( (char)0x9A );
if ( equal( xstr.begin(), ( xstr.begin() + 4 ), metaPlaceableRecord.begin() ) )
{
wmfData.assign( ( xstr.begin() + 22 ), xstr.end() );
}
else
{
wmfData = xstr;
}
comprLen = CompressImage( &buffer, (unsigned char*)wmfData.data(), wmfData.size() );
if ( ( buffer != NULL ) && ( comprLen != 0 ) )
{
MD4 md4Code( (unsigned char*)wmfData.data(), wmfData.size() );
// TODO : need fix
officeArtBlip = new OfficeArtBlipWMF( OfficeArtMetafileHeader( wmfData.size(), RECT( 0, 0, 0, 0 ), POINT( 0, 0 ), comprLen, COMPRESSION_METHOD_DEFLATE ), buffer, md4Code.GetMD4Bytes() );
RELEASEARRAYOBJECTS (buffer);
}
}
}
}
return officeArtBlip;
}
inline std::vector<unsigned char> Get_rgbUid1 ()
{
if (!m_sFile.empty())
{
std::string xstr;
std::ifstream xfile(m_sFile.c_str(), std::ios::binary);
//узнаем размер файла, и выделяем память в строке
xfile.seekg( 0, std::ios_base::end );
xstr.resize( xfile.tellg() );
xfile.seekg( 0, std::ios_base::beg );
//копируем данные
xfile.read(const_cast<char*>(xstr.data()), (std::streamsize)xstr.size());
if ( !xstr.empty() )
{
std::wstring extension = GetFileNameExtension();
if ((extension == std::wstring(_T("jpg")))
|| (extension == std::wstring(_T("jpeg")))
|| (extension == std::wstring(_T("png")))
|| (extension == std::wstring(_T("gif")))
|| (extension == std::wstring(_T("tiff")))
|| (extension == std::wstring(L"tif"))
|| (extension == std::wstring(L"bmp")) )
{
MD4 MD4Code ((unsigned char*)xstr.data(), xstr.size());
return MD4Code.GetMD4Bytes();
}
else if (extension == std::wstring(_T("emf")))
{
unsigned char* buffer = NULL;
unsigned long comprLen = CompressImage (&buffer, (unsigned char*)xstr.data(), xstr.size());
if ( ( buffer != NULL ) && ( comprLen != 0 ) )
{
MD4 MD4Code ((unsigned char*)xstr.data(), xstr.size());
RELEASEARRAYOBJECTS (buffer);
return MD4Code.GetMD4Bytes();
}
}
else if (extension == std::wstring(_T("wmf")))
{
std::string metaPlaceableRecord;
std::string wmfData;
metaPlaceableRecord.push_back((char)0xD7);
metaPlaceableRecord.push_back((char)0xCD);
metaPlaceableRecord.push_back((char)0xC6);
metaPlaceableRecord.push_back((char)0x9A);
if ( equal( xstr.begin(), ( xstr.begin() + 4 ), metaPlaceableRecord.begin() ) )
{
wmfData.assign( ( xstr.begin() + 22 ), xstr.end() );
}
else
{
wmfData = xstr;
}
unsigned char* buffer = NULL;
unsigned long comprLen = CompressImage( &buffer, (unsigned char*)wmfData.data(), wmfData.size() );
if ( ( buffer != NULL ) && ( comprLen != 0 ) )
{
MD4 MD4Code ((unsigned char*)wmfData.data(), wmfData.size());
RELEASEARRAYOBJECTS (buffer);
return MD4Code.GetMD4Bytes();
}
}
}
}
return std::vector<unsigned char> ();
}
protected:
inline unsigned long CompressImage (unsigned char** buffer, unsigned char* imageData, unsigned int imageSize) const
{
unsigned long comprLen = 0;
if ( ( buffer != NULL ) && ( imageData != NULL ) && ( imageSize != 0 ) )
{
comprLen = imageSize;
*buffer = new unsigned char[comprLen];
HRESULT hr = S_OK;
COfficeUtils* pOfficeUtils = new COfficeUtils(NULL);
if (pOfficeUtils)
{
pOfficeUtils->Compress(*buffer, &comprLen, imageData, imageSize, -1);
delete pOfficeUtils;
pOfficeUtils = NULL;
}
}
return comprLen;
}
OfficeArtBlip* GetBlipWithPngTransform ();
private:
std::wstring m_sFile;
bool m_bDeleteFile;
std::string m_sOriginalData;
};
}

View File

@ -1,377 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 "ShapeBuilder.h"
namespace ASCDocFileFormat
{
bool COArtBuilder::BuildShapeRun (const OOX::Logic::Pict& oPicture, CShapeRun& oOdbflRun)
{
if (oPicture.rect.is_init())
{
oOdbflRun = BuildOdbflRun <OOX::Logic::Rect> (oPicture.rect, CMapShape(OfficeArt::Enumerations::msosptRectangle));
return TRUE;
}
if (oPicture.oval.is_init())
{
oOdbflRun = BuildOdbflRun <OOX::Logic::Oval> (oPicture.oval, CMapShape(OfficeArt::Enumerations::msosptEllipse));
return TRUE;
}
if (oPicture.roundrect.is_init())
{
oOdbflRun = BuildOdbflRun <OOX::Logic::Roundrect> (oPicture.roundrect, CMapShape(OfficeArt::Enumerations::msosptRoundRectangle));
return TRUE;
}
if (oPicture.line.is_init())
{
oOdbflRun = BuildOdbflRun <OOX::Logic::Line> (oPicture.line, CMapShape(OfficeArt::Enumerations::msosptLine));
return TRUE;
}
if (oPicture.shape.is_init())
{
if (oPicture.shape->imageData.is_init())
return FALSE;
oOdbflRun = BuildOdbflRun <OOX::Logic::Shape> (oPicture.shape, GetRefShape(oPicture));
return TRUE;
}
return FALSE;
}
bool COArtBuilder::BuildImageRun (const OOX::Logic::Shape& oXml, const std::wstring& strFileName, Run& oRun)
{
COArtStorage* pStorage = COArtStorage::Instance();
if (pStorage)
{
COArtImage* pImage = new COArtImage(strFileName, pStorage->GenID (m_nLocation));
if (pImage)
{
CShapeRun oShapeRun (pImage, pImage->GetID(), pStorage->GetOffSetSpa(m_nLocation)); // смещение берем от предыдущего элемента
oShapeRun.UpdateSizes (*oXml.style); // размеры
oShapeRun.SetWrap (oXml.Wrap); // обтекание
//oShapeRun.SetAnchor ((bool)(oXml.anchorlock.is_init()));
oShapeRun.SetUseBehind (*oXml.style);
pImage->SetupFromStyleXml(oXml.style);
pStorage->AddImage (pImage, oShapeRun.GetSpa(), m_nLocation);
oRun.AddRunItem (oShapeRun);
return TRUE;
}
}
return FALSE;
}
bool COArtBuilder::BuildImageRun (const OOX::Image& oXml, const OOX::Logic::Drawing& oXml2, Run& oRun)
{
COArtStorage* pStorage = COArtStorage::Instance();
if (pStorage)
{
//COArtImage* pImage = new COArtImage(std::wstring(oXml.filename().GetPath()), pStorage->GenID (m_nLocation));
COArtImage* pImage = new COArtImage(oXml.GetPath(), pStorage->GenID (m_nLocation));
if (pImage)
{
CShapeRun oShapeRun (pImage, pImage->GetID(), pStorage->GetOffSetSpa(m_nLocation)); // смещение берем от предыдущего элемента
((CImageSettings*)(pImage->GetSettings()))->SetWrapDist(oXml2.Inline);
pImage->SetRotationImage(oXml2);
pImage->SetInternalFlipImage(oXml2);
pImage->SetPositioningImage(oXml2);
oShapeRun.SetImageSize (oXml2);
oShapeRun.SetImageWrap (oXml2.Inline->Wrap);
oShapeRun.SetImageUseBehind (oXml2.Inline->BehindDoc);
oShapeRun.UpdateAnchorPositionImage(oXml2);
pStorage->AddImage (pImage, oShapeRun.GetSpa(), m_nLocation);
oRun.AddRunItem (oShapeRun);
return TRUE;
}
}
return FALSE;
}
CShapeRun COArtBuilder::BuildGroupRun (const OOX::Logic::Group& oXml, COArtGroup* pShape)
{
if (pShape)
{
COArtStorage* pStorage = COArtStorage::Instance();
CShapeRun oShapeRun (pShape, pShape->GetID(), pStorage->GetOffSetSpa(m_nLocation));
oShapeRun.UpdateSizes (*oXml.style);
//oShapeRun.SetWrap (oXmlShape.Wrap);
//oShapeRun.SetAnchor ((bool)(oXmlShape.anchorlock.is_init()));
//oShapeRun.SetUseBehind (*oXml.style);
if (FALSE == oShapeRun.IsInline())
pStorage->AddGroup (pShape, oShapeRun.GetSpa(), m_nLocation);
return oShapeRun;
}
return CShapeRun();
}
}
namespace ASCDocFileFormat
{
COArtShape* COArtBuilder::BuildOArtShape (const OOX::Logic::Shape& oXml, const OOX::Logic::Group& oXmlGroup)
{
COArtShape* pShape = InternalBuildOArtShape <OOX::Logic::Shape> (oXml,GetRefShape(oXml,oXmlGroup));
if (pShape)
{
const OOX::Logic::ShapeStyle& oStyle = (*oXml.style);
pShape->SetupFromStyleXml(oStyle);
Unit<int, Pt> nX (0);
Unit<int, Pt> nY (0);
if (oStyle.leftTop.is_init())
{
nX = *oStyle.leftTop->X;
nY = *oStyle.leftTop->Y;
}
Unit<int, Pt> nWidth (*oStyle.Size->Width);
Unit<int, Pt> nHeight (*oStyle.Size->Height);
pShape->SetChildeAnchorBounds (nX, nY, nWidth, nHeight, pShape->IsAngleBoundFlip());
if (pShape->IsTextureMode())
{
COArtStorage* storage = COArtStorage::Instance();
if (storage)
{
storage->SaveBlipImage(pShape);
}
}
}
return pShape;
}
COArtShape* COArtBuilder::BuildOArtImage (const OOX::Logic::Shape& oXml, const std::wstring& strFileName)
{
if (0 == strFileName.length())
return NULL;
COArtStorage* storage = COArtStorage::Instance();
if (storage)
{
COArtImage* pImage = new COArtImage(strFileName, storage->GenID (m_nLocation));
if (pImage)
{
const OOX::Logic::ShapeStyle& oStyle = (*oXml.style);
pImage->SetRotation(oStyle);
pImage->SetInternalFlip(oStyle);
pImage->SetHidden(oStyle);
Unit<int, Pt> nX (0);
Unit<int, Pt> nY (0);
if (oStyle.leftTop.is_init())
{
nX = *oStyle.leftTop->X;
nY = *oStyle.leftTop->Y;
}
Unit<int, Pt> nWidth (*oStyle.Size->Width);
Unit<int, Pt> nHeight (*oStyle.Size->Height);
pImage->SetChildeAnchorBounds (nX, nY, nWidth, nHeight, pImage->IsAngleBoundFlip());
storage->SaveBlipImage(pImage);
return pImage;
}
}
return NULL;
}
}
namespace ASCDocFileFormat
{
template<class T> CShapeRun COArtBuilder::BuildOdbflRun (const T& oXmlShape, CMapShape& oInnerRef)
{
COArtShape* pShape = InternalBuildOArtShape <T> (oXmlShape,oInnerRef);
if (pShape)
{
COArtStorage* pStorage = COArtStorage::Instance();
CShapeRun oShapeRun (pShape, pShape->GetID(), pStorage->GetOffSetSpa(m_nLocation)); // смещение берем от предыдущего элемента
oShapeRun.UpdateSizes (*oXmlShape.style); // размеры
oShapeRun.SetWrap (oXmlShape.Wrap); // обтекание
oShapeRun.SetAnchor ((bool)(oXmlShape.anchorlock.is_init()));
oShapeRun.SetUseBehind (*oXmlShape.style);
oShapeRun.UpdateAnchorPosition (*oXmlShape.style);
if (typeid(T) == typeid(OOX::Logic::Line)) // для DOC файла точки начала и конца линии устанавливаются в структуре SPA
{
OOX::Logic::Line* pLine = (OOX::Logic::Line*)(&oXmlShape);
if (pLine)
{
if (pLine->from.is_init() && pLine->to.is_init())
{
DOCX::CPointF oFrom(pLine->from);
DOCX::CPointF oTo(pLine->to);
Spa& oSpa = oShapeRun.GetSpa();
oSpa.m_rca.left = oFrom.GetTX();
oSpa.m_rca.top = oFrom.GetTY();
oSpa.m_rca.right = oTo.GetTX();
oSpa.m_rca.bottom = oTo.GetTY();
oSpa.Update();
}
}
}
if (oXmlShape.textbox.is_init()) // Привязка текста к автофигуры
{
m_pLastTbRef = pStorage->GenTbRef(m_nLocation);
if (m_pLastTbRef)
{
pShape->SetTbRef(m_pLastTbRef);
}
}
if (FALSE == oShapeRun.IsInline())
{
pStorage->Add (pShape, oShapeRun.GetSpa(), m_nLocation);
}
return oShapeRun;
}
return CShapeRun();
}
template<class T> COArtShape* COArtBuilder::InternalBuildOArtShape (const T& oXmlShape, CMapShape& oInnerRef)
{
COArtStorage* pStorage = COArtStorage::Instance();
if (pStorage)
{
COArtShape* pShape = new COArtShape(pStorage->GenID (m_nLocation));
if (pShape)
{
int nType = oInnerRef.m_nType;
if (nType == OfficeArt::Enumerations::msosptTextStop) // пока не понятно что делать с такими фигурами
nType = 0;
pShape->SetShapeType (nType);
if (pShape->GetSettings ())
{
// fill
if (oXmlShape.fillstyle.is_init())
pShape->GetSettings ()->GetFillStyle().Read (oXmlShape.fillstyle);
// line
if (oXmlShape.linestyle.is_init())
pShape->GetSettings ()->GetLineStyle().Read (oXmlShape.linestyle);
// shadow
if (oXmlShape.shadow.is_init())
pShape->GetSettings ()->GetShadowStyle().Read (oXmlShape.shadow);
pShape->SetupFromStyleXml(oXmlShape.style);
if (0 == nType)
{
if (oInnerRef.m_strPath.length())
pShape->GetSettings()->GetGeometryStyle().SetPath(oInnerRef.m_strPath, oInnerRef.m_strAdjustValues, oInnerRef.m_strFormulas);
if (oInnerRef.m_strCoordSize.length())
pShape->GetSettings()->GetGeometryStyle().SetRightBottom(oInnerRef.m_strCoordSize);
if (oInnerRef.m_strConnection.length())
pShape->GetSettings()->GetGeometryStyle().SetConnection(oInnerRef.m_strConnection);
if (oInnerRef.m_strSites.length())
pShape->GetSettings()->GetGeometryStyle().SetSites(oInnerRef.m_strSites);
if (oInnerRef.m_strSitesDir.length())
pShape->GetSettings()->GetGeometryStyle().SetSitesDir(oInnerRef.m_strSitesDir);
if (oInnerRef.m_textboxrect.length())
pShape->GetSettings()->GetGeometryStyle().SetInscribe(oInnerRef.m_textboxrect);
}
if (oInnerRef.m_strAdjustValues.length())
pShape->GetSettings()->GetGeometryStyle().SetAdjustValues(oInnerRef.m_strAdjustValues);
if (typeid(T) == typeid(OOX::Logic::Roundrect)) // для DOC файла велична арки пишется в adjust свойство
{
OOX::Logic::Roundrect* roundrect = (OOX::Logic::Roundrect*)(&oXmlShape);
if (roundrect)
{
if(roundrect->arcsize.is_init())
{
pShape->GetSettings()->GetGeometryStyle().SetAdjustValues(roundrect->arcsize, true);
}
}
}
pShape->GetSettings()->SetWrapDist (oXmlShape.style);
}
// имеет место быть заливка картинкой
if (m_strTextureFile.length())
{
pShape->SetTextureFill(TRUE, m_strTextureFile);
m_strTextureFile = L"";
}
return pShape;
}
}
return NULL;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,169 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 "ShapePath.h"
namespace ASCDocFileFormat
{
LONG CFormula::Calculate(CFormulasManager* pManager)
{
if ((0 > m_lIndex) || (m_lIndex >= pManager->m_arResults.size()))
return 0;
if (0xFFFFFFFF != pManager->m_arResults[m_lIndex])
{
return pManager->m_arResults[m_lIndex];
}
LONG lResult = 0;
LONG lGuidesCount = pManager->m_arFormulas.size();
LONG lAdjCount = pManager->m_pAdjustments->size();
LONG a1 = m_lParam1;
if (ptFormula == m_eType1)
{
a1 = (m_lParam1 >= lGuidesCount) ? 0 : pManager->m_arFormulas[m_lParam1].Calculate(pManager);
}
else if (ptAdjust == m_eType1)
{
a1 = (m_lParam1 >= lAdjCount) ? 0 : (*(pManager->m_pAdjustments))[m_lParam1];
}
LONG b1 = m_lParam2;
if (ptFormula == m_eType2)
{
b1 = (m_lParam2 >= lGuidesCount) ? 0 : pManager->m_arFormulas[m_lParam2].Calculate(pManager);
}
else if (ptAdjust == m_eType2)
{
b1 = (m_lParam2 >= lAdjCount) ? 0 : (*(pManager->m_pAdjustments))[m_lParam2];
}
LONG c1 = m_lParam3;
if (ptFormula == m_eType3)
{
c1 = (m_lParam3 >= lGuidesCount) ? 0 : pManager->m_arFormulas[m_lParam3].Calculate(pManager);
}
else if (ptAdjust == m_eType3)
{
c1 = (m_lParam3 >= lAdjCount) ? 0 : (*(pManager->m_pAdjustments))[m_lParam3];
}
double a = (double)a1;
double b = (double)b1;
double c = (double)c1;
double dRes = 0.0;
try
{
// теперь нужно просто посчитать
switch (m_eFormulaType)
{
case ftSum: { dRes = a + b - c; break; }
case ftProduct: {
if (0 == c)
c = 1;
dRes = a * b / c;
break;
}
case ftMid: { dRes = (a + b) / 2.0; break; }
case ftAbsolute: { dRes = abs(a); break; }
case ftMin: { dRes = min(a, b); break; }
case ftMax: { dRes = max(a, b); break; }
case ftIf: { dRes = (a > 0) ? b : c; break; }
case ftSqrt: { dRes = sqrt(a); break; }
case ftMod: { dRes = sqrt(a*a + b*b + c*c); break; }
case ftSin: {
//dRes = a * sin(b);
//dRes = a * sin(b / pow2_16);
dRes = a * sin(M_PI * b / (pow2_16 * 180));
break;
}
case ftCos: {
//dRes = a * cos(b);
//dRes = a * cos(b / pow2_16);
dRes = a * cos(M_PI * b / (pow2_16 * 180));
break;
}
case ftTan: {
//dRes = a * tan(b);
dRes = a * tan(M_PI * b / (pow2_16 * 180));
break;
}
case ftAtan2: {
dRes = 180 * pow2_16 * atan2(b,a) / M_PI;
break;
}
case ftSinatan2: { dRes = a * sin(atan2(c,b)); break; }
case ftCosatan2: { dRes = a * cos(atan2(c,b)); break; }
case ftSumangle: {
//dRes = a + b - c;
dRes = a + b * pow2_16 - c * pow2_16;
/*while (23592960 < dRes)
{
dRes -= 23592960;
}
while (-23592960 > dRes)
{
dRes += 23592960;
}*/
break;
}
case ftEllipse: {
if (0 == b)
b = 1;
dRes = c * sqrt(1-(a*a/(b*b)));
break;
}
case ftVal: { dRes = a; break; }
default: break;
};
}
catch (...)
{
dRes = 0;
}
lResult = (LONG)dRes;
pManager->m_arResults[m_lIndex] = lResult;
return lResult;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,44 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
// AVSOfficeDocxFile2.cpp : Implementation of DLL Exports.
#include "stdafx.h"
#include "resource.h"
#include "DocxFile2.h"
#include "XlsxFile2.h"
#include "PptxFile.h"
// The module attribute causes DllMain, DllRegisterServer and DllUnregisterServer to be automatically implemented for you
[ module(dll, uuid = "{A1EEE61A-FAA7-47af-B078-4E955623B9CA}",
name = "ASCOfficeDocxFile2",
helpstring = "ASCOfficeDocxFile2 1.0 Type Library",
resource_name = "IDR_ASCOFFICEDOCXFILE2") ];

View File

@ -1,142 +0,0 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define COMPONENT_NAME "OfficeDocxFile2"
#include "../Common/FileInfo.h"
#include "version.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Russian resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // Russian resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION INTVER
PRODUCTVERSION INTVER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION_ACTIVEX
VALUE "FileVersion", STRVER
VALUE "InternalName", COMPONENT_FILE_NAME_DLL
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "OriginalFilename", COMPONENT_FILE_NAME_DLL
VALUE "ProductName", FILE_DESCRIPTION_ACTIVEX
VALUE "ProductVersion", STRVER
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// REGISTRY
//
IDR_ASCOFFICEDOCXFILE2 REGISTRY "ASCOfficeDocxFile2.rgs"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_PROJNAME "ASCOfficeDocxFile2"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -1,11 +0,0 @@
HKCR
{
NoRemove AppID
{
'%APPID%' = s 'ASCOfficeDocxFile2'
'ASCOfficeDocxFile2.DLL'
{
val AppID = s '%APPID%'
}
}
}

View File

@ -1,77 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeDocxFile2", "ASCOfficeDocxFile2.vcxproj", "{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\Common\DocxFormat\Projects\DocxFormat2005.vcxproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcxproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcxproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeUtilsLib", "..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcxproj", "{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|x64.ActiveCfg = Debug|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|x64.Build.0 = Debug|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.Build.0 = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|x64.ActiveCfg = Release|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|x64.Build.0 = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.Build.0 = Debug|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.Build.0 = Release|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.Build.0 = Debug|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.Build.0 = Release|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|x64.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.Build.0 = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|x64.ActiveCfg = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|x64.Build.0 = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.ActiveCfg = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load Diff

View File

@ -1,681 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseASC|Win32">
<Configuration>ReleaseASC</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseASC|x64">
<Configuration>ReleaseASC</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseOpenSource|Win32">
<Configuration>ReleaseOpenSource</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseOpenSource|x64">
<Configuration>ReleaseOpenSource</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}</ProjectGuid>
<RootNamespace>ASCOfficeDocxFile2</RootNamespace>
<Keyword>AtlProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>false</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<UseOfAtl>false</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfAtl>false</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<UseOfAtl>false</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<PreBuildEventUseInBuild>false</PreBuildEventUseInBuild>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<PreBuildEventUseInBuild>false</PreBuildEventUseInBuild>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>Win32</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(SolutionDir)\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)ASCOfficeDocxFile2.dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/Debug;$(SolutionDir)/../SDK/lib/win_32/DEBUG;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>graphics.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>X64</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(SolutionDir)\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)ASCOfficeDocxFile2.dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBCMTD.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command>..\Redist\VersionControl.exe "$(ProjectDir)\version.h"</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>Win32</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(SolutionDir)\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;graphics.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/Release;$(SolutionDir)/../SDK/lib/win_32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"
copy "$(TargetPath)" "$(SolutionDir)..\Redist"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PreBuildEvent>
<Command>..\Redist\VersionControl.exe "$(ProjectDir)\version.h"</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>X64</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(SolutionDir)\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"
copy "$(TargetPath)" "$(SolutionDir)..\Redist\x64"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>Win32</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;ASCBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;DocxFormat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)ASCOfficeDocxFile2.dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Lib/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"
copy "$(TargetPath)" "$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>X64</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;ASCBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;DocxFormat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)ASCOfficeDocxFile2.dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Lib/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Message>Performing registration</Message>
<Command>regsvr32 /s /c "$(TargetPath)"
copy "$(TargetPath)" "$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>Win32</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include;$(SolutionDir);$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Message>copy to Redist</Message>
<Command>copy "$(TargetPath)" "$(SolutionDir)..\Redist"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<TargetEnvironment>X64</TargetEnvironment>
<GenerateStublessProxies>true</GenerateStublessProxies>
<TypeLibraryName>$(IntDir)ASCOfficeDocxFile2.tlb</TypeLibraryName>
<HeaderFileName>DocxFile2.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ASCOfficeDocxFile2_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ASCOfficeDocxFile2_p.c</ProxyFileName>
</Midl>
<ClCompile>
<AdditionalOptions>/Zm1000 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include;$(SolutionDir);$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0419</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>comsvcs.lib;comsuppw.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release;$(SolutionDir)/../Common/DocxFormat/Lib/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<MergedIDLBaseFileName>_ASCOfficeDocxFile2.idl</MergedIDLBaseFileName>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)ASCOfficeDocxFile2.lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Message>copy to Redist</Message>
<Command>copy "$(TargetPath)" "$(SolutionDir)..\Redist"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="ASCOfficeDocxFile2.rc" />
</ItemGroup>
<ItemGroup>
<None Include="ASCOfficeDocxFile2.rgs" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\XlsxSerializerCom\Common\Common.cpp" />
<ClCompile Include="..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Reader\CommonWriter.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Reader\CSVReader.cpp" />
<ClCompile Include="..\XlsxSerializerCom\Writer\CSVWriter.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="ASCOfficeDocxFile2.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</ObjectFileName>
</ClCompile>
<ClCompile Include="DocWrapper\DocxSerializer.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="DocWrapper\FontProcessor.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="DocWrapper\XlsxSerializer.cpp">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|Win32'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseASC|x64'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|Win32'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseOpenSource|x64'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</ObjectFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\XlsxSerializerCom\Common\BinReaderWriterDefines.h" />
<ClInclude Include="..\XlsxSerializerCom\Common\Common.h" />
<ClInclude Include="..\XlsxSerializerCom\Reader\BinaryWriter.h" />
<ClInclude Include="..\XlsxSerializerCom\Reader\ChartFromToBinary.h" />
<ClInclude Include="..\XlsxSerializerCom\Reader\CommonWriter.h" />
<ClInclude Include="..\XlsxSerializerCom\Reader\CSVReader.h" />
<ClInclude Include="..\XlsxSerializerCom\Writer\BinaryCommonReader.h" />
<ClInclude Include="..\XlsxSerializerCom\Writer\BinaryReader.h" />
<ClInclude Include="..\XlsxSerializerCom\Writer\CSVWriter.h" />
<ClInclude Include="BinReader\ChartWriter.h" />
<ClInclude Include="BinReader\CommentsWriter.h" />
<ClInclude Include="BinReader\ContentTypesWriter.h" />
<ClInclude Include="BinReader\DocumentRelsWriter.h" />
<ClInclude Include="BinReader\DocumentWriter.h" />
<ClInclude Include="BinReader\FileDownloader.h" />
<ClInclude Include="BinReader\FileWriter.h" />
<ClInclude Include="BinReader\fontTableWriter.h" />
<ClInclude Include="BinReader\HeaderFooterWriter.h" />
<ClInclude Include="BinReader\MediaWriter.h" />
<ClInclude Include="BinReader\NumberingWriter.h" />
<ClInclude Include="BinReader\ReaderClasses.h" />
<ClInclude Include="BinReader\Readers.h" />
<ClInclude Include="BinReader\SettingWriter.h" />
<ClInclude Include="BinReader\StylesWriter.h" />
<ClInclude Include="BinWriter\BinEquationWriter.h" />
<ClInclude Include="BinWriter\BinReaderWriterDefines.h" />
<ClInclude Include="BinWriter\BinWriters.h" />
<ClInclude Include="DocWrapper\DocxSerializer.h" />
<ClInclude Include="DocWrapper\FontProcessor.h" />
<ClInclude Include="DocWrapper\XlsxSerializer.h" />
<ClInclude Include="DocxFile2.h" />
<ClInclude Include="PptxFile.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="version.h" />
<ClInclude Include="XlsxFile2.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ASCHTMLRenderer\ASCHTMLRendererLib.vcxproj">
<Project>{dc24710e-8df2-4a7a-b7c3-2313e294143c}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj">
<Project>{36636678-ae25-4be6-9a34-2561d1bcf302}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcxproj">
<Project>{3f3cb5a1-bb01-49c1-9342-4a69e30f9ef6}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\Common\DocxFormat\Projects\DocxFormat2005.vcxproj">
<Project>{a100103a-353e-45e8-a9b8-90b87cc5c0b0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcxproj">
<Project>{21663823-de45-479b-91d0-b4fef4916ef0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,186 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="res">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
<Filter Include="_">
<UniqueIdentifier>{3710d9f5-676c-4632-a22d-632057708e84}</UniqueIdentifier>
</Filter>
<Filter Include="DocWrapper">
<UniqueIdentifier>{da428055-8b24-49ac-a8fd-fb7567370761}</UniqueIdentifier>
</Filter>
<Filter Include="XLSX">
<UniqueIdentifier>{2b0ee265-23a7-4758-b2e7-9f335c2932c6}</UniqueIdentifier>
</Filter>
<Filter Include="XLSX\Common">
<UniqueIdentifier>{d3849c02-1f95-40b4-9885-3850ac887162}</UniqueIdentifier>
</Filter>
<Filter Include="XLSX\Reader">
<UniqueIdentifier>{6e356698-1762-48ec-aabe-e67cd986841e}</UniqueIdentifier>
</Filter>
<Filter Include="XLSX\Writer">
<UniqueIdentifier>{a6d705d7-de56-4085-ad90-9a64fb2a6377}</UniqueIdentifier>
</Filter>
<Filter Include="DOCX">
<UniqueIdentifier>{819e4322-0635-4959-bee0-bd7258b92b82}</UniqueIdentifier>
</Filter>
<Filter Include="DOCX\Reader">
<UniqueIdentifier>{710f68a2-18f0-40c6-8e32-5474b8301127}</UniqueIdentifier>
</Filter>
<Filter Include="DOCX\Reader\OOXWriter">
<UniqueIdentifier>{fb8f2ef8-d3e2-4bae-a746-4dd375a45521}</UniqueIdentifier>
</Filter>
<Filter Include="DOCX\Common">
<UniqueIdentifier>{845568f5-8012-46bf-a6d7-63610040f153}</UniqueIdentifier>
</Filter>
<Filter Include="DOCX\Writer">
<UniqueIdentifier>{276e338e-bf55-47f1-8fd6-d73552eed0d4}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ASCOfficeDocxFile2.rc">
<Filter>res</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="ASCOfficeDocxFile2.rgs">
<Filter>res</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ASCOfficeDocxFile2.cpp">
<Filter>_</Filter>
</ClCompile>
<ClCompile Include="stdafx.cpp">
<Filter>_</Filter>
</ClCompile>
<ClCompile Include="DocWrapper\FontProcessor.cpp">
<Filter>DocWrapper</Filter>
</ClCompile>
<ClCompile Include="DocWrapper\XlsxSerializer.cpp">
<Filter>XLSX</Filter>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Common\Common.cpp">
<Filter>XLSX\Common</Filter>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Reader\CSVReader.cpp">
<Filter>XLSX\Reader</Filter>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp">
<Filter>XLSX\Writer</Filter>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Reader\CommonWriter.cpp">
<Filter>XLSX\Writer</Filter>
</ClCompile>
<ClCompile Include="..\XlsxSerializerCom\Writer\CSVWriter.cpp">
<Filter>XLSX\Writer</Filter>
</ClCompile>
<ClCompile Include="DocWrapper\DocxSerializer.cpp">
<Filter>DOCX</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Resource.h">
<Filter>_</Filter>
</ClInclude>
<ClInclude Include="version.h">
<Filter>_</Filter>
</ClInclude>
<ClInclude Include="DocWrapper\FontProcessor.h">
<Filter>DocWrapper</Filter>
</ClInclude>
<ClInclude Include="DocWrapper\XlsxSerializer.h">
<Filter>XLSX</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Common\BinReaderWriterDefines.h">
<Filter>XLSX\Common</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Common\Common.h">
<Filter>XLSX\Common</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Writer\BinaryCommonReader.h">
<Filter>XLSX\Reader</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Writer\BinaryReader.h">
<Filter>XLSX\Reader</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Reader\CSVReader.h">
<Filter>XLSX\Reader</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Reader\BinaryWriter.h">
<Filter>XLSX\Writer</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Reader\ChartFromToBinary.h">
<Filter>XLSX\Writer</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Reader\CommonWriter.h">
<Filter>XLSX\Writer</Filter>
</ClInclude>
<ClInclude Include="..\XlsxSerializerCom\Writer\CSVWriter.h">
<Filter>XLSX\Writer</Filter>
</ClInclude>
<ClInclude Include="DocWrapper\DocxSerializer.h">
<Filter>DOCX</Filter>
</ClInclude>
<ClInclude Include="BinReader\ReaderClasses.h">
<Filter>DOCX\Reader</Filter>
</ClInclude>
<ClInclude Include="BinReader\Readers.h">
<Filter>DOCX\Reader</Filter>
</ClInclude>
<ClInclude Include="BinReader\ChartWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\CommentsWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\ContentTypesWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\DocumentRelsWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\DocumentWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\FileWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\fontTableWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\HeaderFooterWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\MediaWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\NumberingWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\SettingWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\StylesWriter.h">
<Filter>DOCX\Reader\OOXWriter</Filter>
</ClInclude>
<ClInclude Include="BinReader\FileDownloader.h">
<Filter>DOCX\Common</Filter>
</ClInclude>
<ClInclude Include="BinWriter\BinEquationWriter.h">
<Filter>DOCX\Writer</Filter>
</ClInclude>
<ClInclude Include="BinWriter\BinReaderWriterDefines.h">
<Filter>DOCX\Writer</Filter>
</ClInclude>
<ClInclude Include="BinWriter\BinWriters.h">
<Filter>DOCX\Writer</Filter>
</ClInclude>
<ClInclude Include="DocxFile2.h" />
<ClInclude Include="PptxFile.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="XlsxFile2.h" />
</ItemGroup>
</Project>

View File

@ -1,84 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeDocxFile2", "ASCOfficeDocxFile2.vcxproj", "{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
ProjectSection(ProjectDependencies) = postProject
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6} = {3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\Common\DocxFormat\Projects\DocxFormat2005.vcxproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcxproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcxproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeUtilsLib", "..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcxproj", "{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|x64.ActiveCfg = Debug|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|x64.Build.0 = Debug|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.Build.0 = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|x64.ActiveCfg = Release|x64
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|x64.Build.0 = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.Build.0 = Debug|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.Build.0 = Release|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.Build.0 = Debug|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|x64
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.Build.0 = Release|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|x64.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.Build.0 = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|x64.ActiveCfg = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|x64.Build.0 = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.ActiveCfg = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal

View File

@ -57,7 +57,7 @@ namespace Writers
}
~ChartWriter()
{
for(int i = 0, length = m_aCharts.size(); i < length; ++i)
for(size_t i = 0, length = m_aCharts.size(); i < length; ++i)
{
delete m_aCharts[i];
}
@ -73,7 +73,7 @@ namespace Writers
OOX::CPath pathChartDir = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("charts");
NSDirectory::CreateDirectory(pathChartDir.GetPath());
for(int i = 0, length = m_aCharts.size(); i < length; ++i)
for(size_t i = 0, length = m_aCharts.size(); i < length; ++i)
{
ChartElem* elem = m_aCharts[i];

View File

@ -33,7 +33,7 @@
#define DOCUMENT_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
#include "../BinWriter/BinReaderWriterDefines.h";
#include "../BinWriter/BinReaderWriterDefines.h"
namespace Writers
{
@ -78,7 +78,7 @@ namespace Writers
if(BinDocxRW::g_nCurFormatVersion < 5)
{
bool bTitlePage = false;
for(int i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
for(size_t i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
{
HdrFtrItem* pHeader = m_oHeaderFooterWriter.m_aHeaders[i];
if(false == pHeader->rId.empty())
@ -98,7 +98,7 @@ namespace Writers
}
}
}
for(int i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
for(size_t i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
{
HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i];
if(false == pFooter->rId.empty())

View File

@ -84,21 +84,22 @@ namespace Writers
}
~HeaderFooterWriter()
{
for(int i = 0, length = m_aHeaders.size(); i < length; ++i)
for(size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
delete m_aHeaders[i];
m_aHeaders.clear();
for(int i = 0, length = m_aFooters.size(); i < length; ++i)
for(size_t i = 0, length = m_aFooters.size(); i < length; ++i)
delete m_aFooters[i];
m_aFooters.clear();
}
void Write()
{
for(int i = 0, length = m_aHeaders.size(); i < length; ++i)
for(size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
{
HdrFtrItem* pHeader = m_aHeaders[i];
WriteItem(_T("header"), pHeader->m_sFilename, pHeader->Header, true);
}
for(int i = 0, length = m_aFooters.size(); i < length; ++i)
for(size_t i = 0, length = m_aFooters.size(); i < length; ++i)
{
HdrFtrItem* pFooter = m_aFooters[i];
WriteItem(_T("footer"), pFooter->m_sFilename, pFooter->Header, false);

View File

@ -72,13 +72,13 @@ namespace Writers
if(BinDocxRW::g_nCurFormatVersion < 5)
{
bool bevenAndOddHeaders = false;
for(int i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
for(size_t i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
{
HdrFtrItem* pHeader = m_oHeaderFooterWriter.m_aHeaders[i];
if(SimpleTypes::hdrftrEven == pHeader->eType)
bevenAndOddHeaders = true;
}
for(int i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
for(size_t i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
{
HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i];
if(SimpleTypes::hdrftrEven == pFooter->eType)

View File

@ -117,11 +117,11 @@ namespace MathEquation
}
LONG GetSize()
{
return arrRun.size();
return (LONG)arrRun.size();
}
bool GetElem (LONG lPos, EquationRun &oRun)
{
if (lPos < arrRun.size() )
if (lPos < (LONG)arrRun.size() )
{
oRun = arrRun[lPos];
return true;

View File

@ -1119,7 +1119,7 @@ namespace BinDocxRW
{
int nCurPos = 0;
//Len
for(int i = 0, length = Tab.m_arrTabs.size(); i < length; ++i)
for(size_t i = 0, length = Tab.m_arrTabs.size(); i < length; ++i)
{
const ComplexTypes::Word::CTabStop& tabItem = *Tab.m_arrTabs[i];
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_pPrType::Tab_Item);
@ -1468,7 +1468,7 @@ namespace BinDocxRW
void WriteHeaderFooter(OOX::Logic::CSectionProperty* pSectPr, std::vector<ComplexTypes::Word::CHdrFtrRef*>& aRefs, bool bHdr)
{
int nCurPos = 0;
for(int i = 0, length = aRefs.size(); i < length; ++i)
for(size_t i = 0, length = aRefs.size(); i < length; ++i)
{
const ComplexTypes::Word::CHdrFtrRef& oRef = *aRefs[i];
if( oRef.m_oType.IsInit() && oRef.m_oId.IsInit())
@ -1548,7 +1548,7 @@ namespace BinDocxRW
m_oBcw.m_oStream.WriteLONG(columns.m_oSpace->ToTwips());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
for(int i = 0; i < columns.m_arrColumns.size(); ++i)
for(size_t i = 0; i < columns.m_arrColumns.size(); ++i)
{
nCurPos = m_oBcw.WriteItemStart(c_oSerProp_Columns::Column);
WriteColumn(*columns.m_arrColumns[i]);
@ -2398,7 +2398,7 @@ namespace BinDocxRW
void WriteStyles(std::vector<OOX::CStyle*>& styles)
{
int nCurPos = 0;
for(int i = 0, length = styles.size(); i < length; ++i)
for(size_t i = 0, length = styles.size(); i < length; ++i)
{
const OOX::CStyle& style = *styles[i];
if(false != style.m_sStyleId.IsInit())
@ -2541,7 +2541,7 @@ namespace BinDocxRW
void WriteTblStylePr(const std::vector<OOX::Logic::CTableStyleProperties*>& aProperties)
{
int nCurPos = 0;
for(int i = 0, length = aProperties.size(); i < length; ++i)
for(size_t i = 0, length = aProperties.size(); i < length; ++i)
{
nCurPos = m_oBcw.WriteItemStart(c_oSerProp_tblStylePrType::TblStylePr);
WriteTblStyleProperties(*aProperties[i]);
@ -2628,7 +2628,8 @@ namespace BinDocxRW
void WriteNums(const OOX::CNumbering& numbering)
{
int nCurPos = 0;
for(int i = 0, length = numbering.m_arrNum.size(); i < length; ++i)
for(size_t i = 0, length = numbering.m_arrNum.size(); i < length; ++i)
{
const OOX::Numbering::CNum& num = *numbering.m_arrNum[i];
//num
@ -2657,7 +2658,8 @@ namespace BinDocxRW
{
int nCurPos = 0;
int nRealCount = 0;
for(int i = 0, length = numbering.m_arrAbstractNum.size(); i < length; ++i)
for(size_t i = 0, length = numbering.m_arrAbstractNum.size(); i < length; ++i)
{
const OOX::Numbering::CAbstractNum& num = *numbering.m_arrAbstractNum[i];
if(false != num.m_oAbstractNumId.IsInit())
@ -2711,10 +2713,11 @@ namespace BinDocxRW
void WriteLevels(const std::vector<OOX::Numbering::CLvl*>& lvls, int nAId, const std::vector<OOX::Numbering::CNum*>& aNums)
{
int nCurPos = 0;
for(int i = 0, length = lvls.size(); i < length; ++i)
for(size_t i = 0, length = lvls.size(); i < length; ++i)
{
nCurPos = m_oBcw.WriteItemStart(c_oSerNumTypes::Lvl);
WriteLevel(*lvls[i], i, nAId, aNums);
WriteLevel(*lvls[i], (int)i, nAId, aNums);
m_oBcw.WriteItemEnd(nCurPos);
}
}
@ -2855,7 +2858,7 @@ namespace BinDocxRW
void WriteLevelText(const std::wstring& text)
{
int nCurPos = 0;
for(int i = 0, length = text.length(); i < length; ++i)
for(size_t i = 0, length = text.length(); i < length; ++i)
{
if('%' == text[i] && i + 1 < length && '0' <= text[i + 1] && text[i + 1] <= '9')
{
@ -2977,7 +2980,7 @@ namespace BinDocxRW
}
~BinaryDocumentTableWriter()
{
for(int i = 0, length = m_aFldChars.size(); i < length; ++i)
for(size_t i = 0, length = m_aFldChars.size(); i < length; ++i)
{
RELEASEOBJECT(m_aFldChars[i]);
}
@ -2985,7 +2988,8 @@ namespace BinDocxRW
void prepareOfficeDrawingConverter(NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter, std::wstring& sDocumentPath, std::vector<std::wstring>& aShapeTypes)
{
pOfficeDrawingConverter->SetRelsPath(sDocumentPath);
for(int i = 0, length = aShapeTypes.size(); i < length; ++i)
for(size_t i = 0, length = aShapeTypes.size(); i < length; ++i)
{
std::wstring& sShapeType = aShapeTypes[i];
pOfficeDrawingConverter->AddShapeType(sShapeType);
@ -3125,9 +3129,10 @@ namespace BinDocxRW
FldStruct* pRes = NULL;
int nIndex = 0;
if(-1 != (nIndex = sFldCopy.find(_T("TOC"))))
if(-1 != (nIndex = (int)sFldCopy.find(_T("TOC"))))
pRes = new FldStruct(sFldCopy, fieldstruct_toc);
else if(-1 != (nIndex = sFldCopy.find(_T("HYPERLINK"))))
else if(-1 != (nIndex = (int)sFldCopy.find(_T("HYPERLINK"))))
pRes = new FldStruct(sFldCopy, fieldstruct_hyperlink);
else
pRes = new FldStruct(sFldCopy, fieldstruct_none);
@ -3136,7 +3141,7 @@ namespace BinDocxRW
void WriteParagraphContent(const std::vector<OOX::WritingElement *>& Content, bool bHyperlink = false)
{
int nCurPos = 0;
for ( int i = 0, length = Content.size(); i < length; ++i )
for ( size_t i = 0, length = Content.size(); i < length; ++i )
{
OOX::WritingElement* item = Content[i];
switch (item->getType())
@ -3375,7 +3380,7 @@ namespace BinDocxRW
{
int nCurPos = 0;
int nIndexStart = 0;
int nLength = pRun->m_arrItems.size();
int nLength = (int)pRun->m_arrItems.size();
bool bWasText = false;
int nRecordType = 0;
@ -3415,7 +3420,7 @@ namespace BinDocxRW
}
void WriteMathArgNodes(const std::vector<OOX::WritingElement*>& m_arrItems)
{
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -3583,7 +3588,7 @@ namespace BinDocxRW
nCurPos = m_oBcw.WriteItemStart(c_oSer_OMathContentType::Matrix);
LONG lCol = 0;
for ( int j = 0; j < pMatrix->m_arrItems.size(); j++) //TODO убрать, тк при отсутствии m:mcs, к-во столбцов должно разруливаться динамически в скрипте
for ( size_t j = 0; j < pMatrix->m_arrItems.size(); j++) //TODO убрать, тк при отсутствии m:mcs, к-во столбцов должно разруливаться динамически в скрипте
{
OOX::WritingElement* item = pMatrix->m_arrItems[j];
if (item->getType() == OOX::et_m_mr)
@ -3800,7 +3805,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pAln.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pAln.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -3811,7 +3816,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pAlnScr.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pAlnScr.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4017,7 +4022,7 @@ namespace BinDocxRW
}
void WriteMathDelimiter(const std::vector<OOX::WritingElement*>& m_arrItems, LONG &lColumn)
{
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4073,7 +4078,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pDegHide.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pDegHide.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4090,7 +4095,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pDiff.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pDiff.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4134,7 +4139,7 @@ namespace BinDocxRW
}
void WriteMathEqArr(const std::vector<OOX::WritingElement*>& m_arrItems, LONG& lRow)
{
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4225,7 +4230,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pGrow.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pGrow.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4236,7 +4241,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pHideBot.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pHideBot.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4247,7 +4252,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pHideLeft.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pHideLeft.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4258,7 +4263,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pHideRight.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pHideRight.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4269,7 +4274,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pHideTop.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pHideTop.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4348,7 +4353,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pLit.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pLit.m_val->ToBool());
}
else
{
@ -4361,7 +4366,7 @@ namespace BinDocxRW
void WriteMathMatrix(const std::vector<OOX::WritingElement*>& m_arrItems, LONG &lRow, LONG &lCol)
{
bool bColumn = false;
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4419,7 +4424,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pMaxDist.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pMaxDist.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4458,7 +4463,7 @@ namespace BinDocxRW
{
int nCurPos = m_oBcw.WriteItemStart(c_oSer_OMathBottomNodesType::Mcs);
for(int i = 0; i< pMcs.m_arrItems.size(); ++i)
for(size_t i = 0; i< pMcs.m_arrItems.size(); ++i)
{
OOX::WritingElement* item = pMcs.m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4520,7 +4525,7 @@ namespace BinDocxRW
}
void WriteMathMr(const std::vector<OOX::WritingElement*>& m_arrItems)
{
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4562,7 +4567,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pNoBreak.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pNoBreak.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4572,7 +4577,7 @@ namespace BinDocxRW
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
if (pNor.m_val.IsInit())
m_oBcw.m_oStream.WriteBOOL(pNor.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pNor.m_val->ToBool());
else
m_oBcw.m_oStream.WriteBOOL(true);
m_oBcw.WriteItemEnd(nCurPos);
@ -4590,7 +4595,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pObjDist.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pObjDist.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4602,7 +4607,7 @@ namespace BinDocxRW
}
void WriteMathOMathPara(const std::vector<OOX::WritingElement*>& m_arrItems)
{
for(int i = 0; i< m_arrItems.size(); ++i)
for(size_t i = 0; i< m_arrItems.size(); ++i)
{
OOX::WritingElement* item = m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -4648,7 +4653,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pOpEmu.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pOpEmu.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4678,7 +4683,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pPlcHide.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pPlcHide.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4774,7 +4779,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pShow.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pShow.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4834,7 +4839,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pStrikeBLTR.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pStrikeBLTR.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4845,7 +4850,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pStrikeH.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pStrikeH.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4856,7 +4861,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pStrikeTLBR.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pStrikeTLBR.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4867,7 +4872,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pStrikeV.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pStrikeV.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4895,7 +4900,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pSubHide.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pSubHide.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4912,7 +4917,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pSupHide.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pSupHide.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4957,7 +4962,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pTransp.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pTransp.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -4990,7 +4995,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pZeroAsc.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pZeroAsc.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -5001,7 +5006,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pZeroDesc.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pZeroDesc.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -5012,7 +5017,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pZeroWid.m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pZeroWid.m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
}
@ -5029,17 +5034,19 @@ namespace BinDocxRW
if(false == bHyperlink)
{
//Случай если Hyperlink задан как field
for(int i = 0, length = m_aFldChars.size(); i < length; ++i)
for(size_t i = 0, length = m_aFldChars.size(); i < length; ++i)
{
if(fieldstruct_hyperlink == m_aFldChars[i]->GetType())
{
bHyperlink = true;
break;
}
}
}
if(bHyperlink)
{
bool bInTOC = false;
for(int i = 0, length = m_aFldChars.size(); i < length; ++i)
for(size_t i = 0, length = m_aFldChars.size(); i < length; ++i)
{
if(fieldstruct_toc == m_aFldChars[i]->GetType())
{
@ -5432,7 +5439,7 @@ namespace BinDocxRW
OOX::Drawing::CChart* pChart = NULL;
if(NULL != pGraphic)
{
for(int i = 0; i < pGraphic->m_arrItems.size(); i++)
for(size_t i = 0; i < pGraphic->m_arrItems.size(); i++)
{
OOX::WritingElement* we = pGraphic->m_arrItems[i];
if(OOX::et_c_chart == we->getType())
@ -6107,7 +6114,7 @@ namespace BinDocxRW
void WriteLineTo(const std::vector<ComplexTypes::Drawing::CPoint2D*>& aLineTo)
{
int nCurPos = 0;
for(int i = 0, length = aLineTo.size(); i < length; ++i)
for(size_t i = 0, length = aLineTo.size(); i < length; ++i)
{
m_oBcw.m_oStream.WriteBYTE(c_oSerWrapPolygon::LineTo);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
@ -6166,7 +6173,7 @@ namespace BinDocxRW
{
//Проверяем чтобы не все ячейки в ряду были вертикально замержены
bool bRes = true;
for(int i = 0, length = arrItems.size(); i < length; ++i)
for(size_t i = 0, length = arrItems.size(); i < length; ++i)
{
OOX::WritingElement* item = arrItems[i];
if(OOX::et_w_tc == item->getType())
@ -6212,7 +6219,7 @@ namespace BinDocxRW
}
void GetTableSize(std::vector<OOX::WritingElement *>& rows, int& nRows, int& nCols, OOX::Logic::CTableProperty** ppTblPr)
{
for(int i = rows.size() - 1; i >= 0; i--)
for(int i = (int)rows.size() - 1; i >= 0; i--)
{
OOX::WritingElement* item = rows[i];
if(OOX::et_w_tblPr == item->getType())
@ -6264,14 +6271,14 @@ namespace BinDocxRW
int GetColsCount(const std::vector<OOX::WritingElement *>& arrItems)
{
int nColCount = 0;
for(int i = 0, length = arrItems.size(); i < length; ++i)
for(size_t i = 0, length = arrItems.size(); i < length; ++i)
{
OOX::WritingElement* item = arrItems[i];
if(OOX::et_w_tc == item->getType())
{
nColCount++;
OOX::Logic::CTc* tc = static_cast<OOX::Logic::CTc*>(item);
for(int j = 0, length2 = tc->m_arrItems.size(); j < length2; ++j)
for(size_t j = 0, length2 = tc->m_arrItems.size(); j < length2; ++j)
{
OOX::WritingElement* item2 = tc->m_arrItems[j];
if(OOX::et_w_tcPr == item2->getType())
@ -6313,7 +6320,7 @@ namespace BinDocxRW
void WriteTblGrid(const OOX::Logic::CTblGrid& grid)
{
int nCurPos = 0;
for(int i = 0, length = grid.m_arrGridCol.size(); i < length; i++)
for(size_t i = 0, length = grid.m_arrGridCol.size(); i < length; i++)
{
const ComplexTypes::Word::CTblGridCol& item = *grid.m_arrGridCol[i];
if(item.m_oW.IsInit())
@ -6355,7 +6362,7 @@ namespace BinDocxRW
int nCurPos = 0;
int nCurRowIndex = 0;
for(int i = 0, length = Content.size(); i < length; ++i)
for(size_t i = 0, length = Content.size(); i < length; ++i)
{
OOX::WritingElement* item = Content[i];
if(OOX::et_w_tr == item->getType())
@ -6410,7 +6417,7 @@ namespace BinDocxRW
int nCurPos = 0;
int nCurColIndex = 0;
for(int i = 0, length = Content.size(); i < length; i++)
for(size_t i = 0, length = Content.size(); i < length; i++)
{
OOX::WritingElement* item = Content[i];
@ -6495,7 +6502,7 @@ namespace BinDocxRW
//map author -> userId
if(NULL != pPeople)
{
for(int i = 0, length = pPeople->m_arrPeoples.size(); i < length; i++)
for(size_t i = 0, length = pPeople->m_arrPeoples.size(); i < length; i++)
{
OOX::CPerson* pPerson = pPeople->m_arrPeoples[i];
if(NULL != pPerson && pPerson->m_oAuthor.IsInit() && pPerson->m_oPresenceInfo.IsInit() && pPerson->m_oPresenceInfo->m_oProviderId.IsInit() && _T("Teamlab") == pPerson->m_oPresenceInfo->m_oProviderId.get2() && pPerson->m_oPresenceInfo->m_oUserId.IsInit())
@ -6503,7 +6510,7 @@ namespace BinDocxRW
}
}
//map paraId -> CCommentWriteTemp
for(int i = 0, length = oComments.m_arrComments.size(); i < length; ++i)
for(size_t i = 0, length = oComments.m_arrComments.size(); i < length; ++i)
{
OOX::CComment* pComment = oComments.m_arrComments[i];
CCommentWriteTemp* pNewCommentWriteTemp = new CCommentWriteTemp();
@ -6514,7 +6521,7 @@ namespace BinDocxRW
if(mapAuthorToUserId.end() != pPair)
pNewCommentWriteTemp->sUserId = pPair->second;
}
for(int j = 0, length2 = pComment->m_arrItems.size(); j < length2; j++)
for(size_t j = 0, length2 = pComment->m_arrItems.size(); j < length2; j++)
{
OOX::WritingElement* pWe = pComment->m_arrItems[j];
if(OOX::et_w_p == pWe->getType())
@ -6529,7 +6536,7 @@ namespace BinDocxRW
//разбираемся с reply и done
if(NULL != pCommentsExt)
{
for(int i = 0, length = pCommentsExt->m_arrComments.size(); i < length; i++)
for(size_t i = 0, length = pCommentsExt->m_arrComments.size(); i < length; i++)
{
OOX::CCommentExt* pCommentExt = pCommentsExt->m_arrComments[i];
if(pCommentExt->m_oParaId.IsInit())
@ -6559,7 +6566,7 @@ namespace BinDocxRW
}
int nCurPos = 0;
for(int i = 0, length = aCommentsToWrite.size(); i < length; ++i)
for(size_t i = 0, length = aCommentsToWrite.size(); i < length; ++i)
{
CCommentWriteTemp* pCommentWriteTemp = aCommentsToWrite[i];
if(NULL != pCommentWriteTemp && NULL != pCommentWriteTemp->pComment && pCommentWriteTemp->pComment->m_oId.IsInit() && mapIgnoreComments.end() == mapIgnoreComments.find(pCommentWriteTemp->pComment->m_oId->GetValue()))
@ -6570,7 +6577,7 @@ namespace BinDocxRW
}
}
for(int i = 0, length = aCommentsToWrite.size(); i < length; ++i)
for(size_t i = 0, length = aCommentsToWrite.size(); i < length; ++i)
delete aCommentsToWrite[i];
};
void WriteComment(CCommentWriteTemp& oComment)
@ -6626,7 +6633,7 @@ namespace BinDocxRW
void WriteReplies(std::vector<CCommentWriteTemp*>& aCommentWriteTemp)
{
int nCurPos = 0;
for(int i = 0, length = aCommentWriteTemp.size(); i < length; i++)
for(size_t i = 0, length = aCommentWriteTemp.size(); i < length; i++)
{
nCurPos = m_oBcw.WriteItemStart(c_oSer_CommentsType::Comment);
WriteComment(*aCommentWriteTemp[i]);
@ -6692,7 +6699,7 @@ namespace BinDocxRW
};
void WriteMathPr(const OOX::Logic::CMathPr &pMathPr)
{
for(int i = 0; i< pMathPr.m_arrItems.size(); ++i)
for(size_t i = 0; i< pMathPr.m_arrItems.size(); ++i)
{
OOX::WritingElement* item = pMathPr.m_arrItems[i];
OOX::EElementType eType = item->getType();
@ -6745,7 +6752,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pDispDef->m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pDispDef->m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
break;
@ -6875,7 +6882,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pSmallFrac->m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pSmallFrac->m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
break;
@ -6901,7 +6908,7 @@ namespace BinDocxRW
{
m_oBcw.m_oStream.WriteBYTE(c_oSer_OMathBottomNodesValType::Val);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oBcw.m_oStream.WriteBOOL(pWrapRight->m_val->GetValue());
m_oBcw.m_oStream.WriteBOOL(pWrapRight->m_val->ToBool());
}
m_oBcw.WriteItemEnd(nCurPos);
break;
@ -7241,7 +7248,7 @@ namespace BinDocxRW
if(NULL != pParagraph)
{
OOX::Logic::CParagraphProperty* pPr = NULL;
for(int i = 0, length = pParagraph->m_arrItems.size(); i < length; ++i)
for(size_t i = 0, length = pParagraph->m_arrItems.size(); i < length; ++i)
{
OOX::WritingElement* we = pParagraph->m_arrItems[i];
if(OOX::et_w_pPr == we->getType())

View File

@ -176,8 +176,8 @@ namespace BinXlsxRW{
std::wstring sThemePath;
std::wstring sEmbedingPath;
int nIndex = sFilepath.rfind(FILE_SEPARATOR_CHAR);
nIndex = sFilepath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1);
int nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR);
nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1);
if(-1 != nIndex)
{
std::wstring sFilepathLeft = sFilepath.substr(0, nIndex + 1);

View File

@ -1,185 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#include "resource.h" // main symbols
#include "DocWrapper/DocxSerializer.h"
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
#endif
// IAVSOfficeDocxFile2
[ object, uuid("98B1ECA8-9575-4eec-B327-8F8BA3FA232C"), dual, pointer_default(unique) ]
__interface IAVSOfficeDocxFile2: IDispatch
{
[id(1)] HRESULT OpenFile([in] BSTR bsInputDir, [in] BSTR bsFileDst);
[id(2)] HRESULT GetJfdoc([in] BSTR bsInputDir, [out] BSTR* bsJfdoc);
[id(3)] HRESULT SetMediaDir([in] BSTR bsMediaDir);
[id(4)] HRESULT SetFontDir([in] BSTR bsFontDir);
[id(5)] HRESULT SetUseSystemFonts([in] BOOL useSystemFonts);
[id(6)] HRESULT GetBinaryContent([in] BSTR bsTxContent, [out, satype("BYTE")] SAFEARRAY** ppBinary);
[id(10)] HRESULT Write([in] BSTR bstrFileIn, [in] BSTR bstrFileOut);
[id(20)] HRESULT GetXmlContent([in, satype("BYTE")] SAFEARRAY* pBinaryObj, [in] LONG lStart, [in] LONG lLength, [out] BSTR* bsXml);
[id(2000 + 0)] HRESULT SetAdditionalParam([in] BSTR ParamName, [in] VARIANT ParamValue);
[id(2001 + 1)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out, retval] VARIANT* ParamValue);
};
// _IAVSOfficeDocxFile2Events
[uuid("C3CF75C3-28FE-4b2c-A770-5952ADF4EAC2"), dispinterface]
__interface _IAVSOfficeDocxFile2Events
{
};
// CAVSOfficeDocxFile2
[ coclass, default(IAVSOfficeDocxFile2), threading(apartment), event_source(com), vi_progid("DocxFile2"), progid("DocxFile2.Rend.1"), version(1.0), uuid("CD07583A-6362-454f-A14E-542AE706FFBC") ]
class ATL_NO_VTABLE CAVSOfficeDocxFile2 : public IAVSOfficeDocxFile2
{
public:
__event __interface _IAVSOfficeDocxFile2Events;
private:
BinDocxRW::CDocxSerializer m_oCDocxSerializer;
IUnknown* m_pThis;
public:
DECLARE_PROTECT_FINAL_CONSTRUCT()
CAVSOfficeDocxFile2()
{
m_pThis = NULL;
}
~CAVSOfficeDocxFile2()
{
RELEASEINTERFACE(m_pThis);
}
public:
STDMETHOD(OpenFile)(BSTR bsInputDir, BSTR bsFileDst)
{
bool bRes = m_oCDocxSerializer.saveToFile(CString(bsFileDst), CString(bsInputDir), CString(_T("")));
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(GetJfdoc)(BSTR bsInputDir, BSTR* bsJfdoc)
{
return S_OK;
}
STDMETHOD(SetMediaDir)(BSTR bsMediaDir)
{
return S_OK;
}
STDMETHOD(SetFontDir)(BSTR bsFontDir)
{
m_oCDocxSerializer.setFontDir(CString(bsFontDir));
return S_OK;
}
STDMETHOD(SetUseSystemFonts)(BOOL useSystemFonts)
{
//DocWrapper::FontProcessor::useSystemFonts = (useSystemFonts == TRUE);
return S_OK;
}
STDMETHOD(SetAdditionalParam)(BSTR ParamName, VARIANT ParamValue)
{
CString sParamName; sParamName = ParamName;
if (_T("EmbeddedFontsDirectory") == sParamName && ParamValue.vt == VT_BSTR)
{
m_oCDocxSerializer.setEmbeddedFontsDir(CString(ParamValue.bstrVal));
return S_OK;
}
else if (_T("FontDir") == sParamName && ParamValue.vt == VT_BSTR)
{
m_oCDocxSerializer.setFontDir(CString(ParamValue.bstrVal));
}
else if (_T("SaveChartAsImg") == sParamName && ParamValue.vt == VT_BOOL)
{
m_oCDocxSerializer.setSaveChartAsImg(VARIANT_FALSE != ParamValue.boolVal);
}
else if (_T("NoBase64Save") == sParamName && ParamValue.vt == VT_BOOL)
{
m_oCDocxSerializer.setIsNoBase64Save(VARIANT_FALSE != ParamValue.boolVal);
}
return S_OK;
}
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
{
return S_OK;
}
STDMETHOD(GetBinaryContent)(BSTR bsTxContent, SAFEARRAY** ppBinary)
{
unsigned char* pData = NULL;
long lDataSize = 0;
bool bRes = true;
//m_oCDocxSerializer.getBinaryContent(CString(bsTxContent), &pData, lDataSize);
if(NULL != pData && lDataSize > 0)
{
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = lDataSize;
LPSAFEARRAY pArray = SafeArrayCreate(VT_UI1, 1, rgsabound);
BYTE* pDataD = (BYTE*)pArray->pvData;
BYTE* pDataS = pData;
memcpy(pDataD, pDataS, lDataSize);
*ppBinary = pArray;
}
RELEASEARRAYOBJECTS(pData);
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(Write)(BSTR bstrFileIn, BSTR bstrDirectoryOut)
{
CString sDirectoryOut = bstrDirectoryOut;
CString sThemePath;
CString sMediaPath;
CString sEmbedPath;
if (!m_oCDocxSerializer.CreateDocxFolders(sDirectoryOut, sThemePath, sMediaPath, sEmbedPath))
return S_FALSE;
bool bRes = m_oCDocxSerializer.loadFromFile(CString(bstrFileIn), CString(bstrDirectoryOut), CString(_T("")), CString(sThemePath.GetString()), CString(sMediaPath.GetString()), sEmbedPath);
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(GetXmlContent)(SAFEARRAY* pBinaryObj, LONG lStart, LONG lLength, BSTR* bsXml)
{
CString sRes;
bool bRes = true;
//m_oCDocxSerializer.getXmlContent((BYTE*)pBinaryObj->pvData, pBinaryObj->rgsabound[0].cElements, lStart, lLength, sRes);
(*bsXml) = sRes.AllocSysString();
return bRes ? S_OK : S_FALSE;
}
private:
};

View File

@ -16,15 +16,15 @@ include($$PWD/../../Common/3dParty/boost/boost.pri)
DEFINES += UNICODE \
_UNICODE \
NODOCX \
_USE_XMLLITE_READER_ \
USE_LITE_READER \
USE_ATL_CSTRING \
USE_AVSOFFICESTUDIO_XMLUTILS \
SOLUTION_ASCOFFICEDOCXFILE2 \
#DISABLE_FILE_DOWNLOADER \
_USE_LIBXML2_READER_ \
LIBXML_READER_ENABLED
LIBXML_READER_ENABLED \
DONT_WRITE_EMBEDDED_FONTS
INCLUDEPATH += \
../../DesktopEditor/freetype-2.5.2/include \

View File

@ -1,219 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
// CAVSOfficePPTXFile.h : Declaration of the CAVSOfficePPTXFile
#pragma once
#include "stdafx.h"
#include "resource.h" // main symbols
#include "../Common/OfficeFileTemplate.h"
#include "../ASCOfficePPTXFile/ASCOfficePPTXFile.h"
#include "../Common/DocxFormat/Source/SystemUtility/File.h"
#include "../ASCOfficeUtils/ASCOfficeUtilsLib/OfficeUtils.h"
bool comExtractFile(void* pArg, CString& sFile, CString& sDir);
bool comCompressFile(void* pArg, CString& sDir, CString& sFile);
bool comProgress(void* pArg, long ID, long Percent);
// IAVSOfficePPTXFile
[object, uuid("096DBAB4-3E54-4e14-99F4-B57D97081C61"), dual, pointer_default(unique)]
__interface IAVSOfficePPTXFile : IAVSOfficeFileTemplate
{
// [id(3), helpstring("method SaveAsDrawingXML")] HRESULT SaveAsDrawingXML([in] BSTR sSrcFileName, [in] BSTR sDestPath, [in] BSTR sDestXMLFileName);
[propget, id(4), helpstring("property TempDirectory")] HRESULT TempDirectory([out, retval] BSTR* pVal);
[propput, id(4), helpstring("property TempDirectory")] HRESULT TempDirectory([in] BSTR newVal);
[id(5), helpstring("method GetDVDXml")] HRESULT GetDVDXml([out,retval] BSTR* pbstrPTTXml);
[id(6), helpstring("method GetBluRayXml")] HRESULT GetBluRayXml([out,retval] BSTR* pbstrDVDXml);
[propget, id(7), helpstring("property DrawingXml")] HRESULT DrawingXml([out, retval] BSTR* pVal);
[id(2000 + 0)] HRESULT SetAdditionalParam([in] BSTR ParamName, [in] VARIANT ParamValue);
[id(2001 + 1)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out, retval] VARIANT* ParamValue);
};
// IAVSOfficePPTXFile2
[object, uuid("68603ED6-0BB4-4330-9A80-D06B855D6DAA"), dual, pointer_default(unique)]
__interface IAVSOfficePPTXFile2 : IDispatch
{
[id(10000 + 0)] HRESULT OpenFileToPPTY([in] BSTR bsInputDir, [in] BSTR bsFileDst);
[id(10000 + 1)] HRESULT OpenDirectoryToPPTY([in] BSTR bsInputDir, [in] BSTR bsFileDst);
[id(10000 + 2)] HRESULT SetMediaDir([in] BSTR bsMediaDir);
[id(10000 + 3)] HRESULT SetFontDir([in] BSTR bsFontDir);
[id(10000 + 4)] HRESULT SetUseSystemFonts([in] VARIANT_BOOL useSystemFonts);
[id(10000 + 5)] HRESULT ConvertPPTYToPPTX([in] BSTR bsInputFile, [in] BSTR bsFileDst, [in] BSTR bsThemesFolder);
[id(10000 + 6)] HRESULT SetThemesDir([in] BSTR bsThemesPath);
};
// CAVSOfficePPTXFile
[coclass, uuid("A3B9F270-175E-4982-B302-55ED6DF6361E"), event_source(com), threading(apartment), vi_progid("AVSOfficePPTXFile.OfficePPTXFile"), progid("AVSOfficePPTXFile.OfficePPTXFile.1"), version(1.0), registration_script("control.rgs")]
class ATL_NO_VTABLE CAVSOfficePPTXFile
: public IAVSOfficePPTXFile
, public IAVSOfficePPTXFile2
{
private:
CPPTXFile m_oCPPTXFile;
public:
__event __interface _IAVSOfficeFileTemplateEvents2;
CAVSOfficePPTXFile() : m_oCPPTXFile(comExtractFile, comCompressFile, comProgress, this)
{
}
~CAVSOfficePPTXFile()
{
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
HRESULT LoadFromFile(BSTR sSrcFileName, BSTR sDstPath, BSTR sXMLOptions)
{
return m_oCPPTXFile.LoadFromFile(sSrcFileName, sDstPath, sXMLOptions);
}
public:
HRESULT SaveToFile(BSTR sDstFileName, BSTR sSrcPath, BSTR sXMLOptions)
{
return m_oCPPTXFile.SaveToFile(sDstFileName, sSrcPath, sXMLOptions);
}
public:
STDMETHOD(get_TempDirectory)(BSTR* pVal)
{
return m_oCPPTXFile.get_TempDirectory(pVal);
}
STDMETHOD(put_TempDirectory)(BSTR newVal)
{
return m_oCPPTXFile.put_TempDirectory(newVal);
}
public:
STDMETHOD(GetDVDXml)(BSTR* pbstrPTTXml)
{
return m_oCPPTXFile.GetDVDXml(pbstrPTTXml);
}
STDMETHOD(GetBluRayXml)(BSTR* pbstrDVDXml)
{
return m_oCPPTXFile.GetBluRayXml(pbstrDVDXml);
}
public:
STDMETHOD(get_DrawingXml)(BSTR* pVal)
{
return m_oCPPTXFile.get_DrawingXml(pVal);
}
STDMETHOD(SetAdditionalParam)(BSTR ParamName, VARIANT ParamValue)
{
return m_oCPPTXFile.SetAdditionalParam(ParamName, ParamValue);
}
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
{
return m_oCPPTXFile.GetAdditionalParam(ParamName, ParamValue);
}
// to PPTY
STDMETHOD(SetMediaDir)(BSTR bsMediaDir)
{
return m_oCPPTXFile.SetMediaDir(bsMediaDir);
}
STDMETHOD(SetFontDir)(BSTR bsFontDir)
{
return m_oCPPTXFile.SetFontDir(bsFontDir);
}
STDMETHOD(SetThemesDir)(BSTR bsDir)
{
return m_oCPPTXFile.SetThemesDir(bsDir);
}
STDMETHOD(SetUseSystemFonts)(VARIANT_BOOL useSystemFonts)
{
return m_oCPPTXFile.SetUseSystemFonts(useSystemFonts);
}
STDMETHOD(OpenFileToPPTY)(BSTR bsInput, BSTR bsOutput)
{
return m_oCPPTXFile.OpenFileToPPTY(bsInput, bsOutput);
}
STDMETHOD(OpenDirectoryToPPTY)(BSTR bsInput, BSTR bsOutput)
{
return m_oCPPTXFile.OpenDirectoryToPPTY(bsInput, bsOutput);
}
STDMETHOD(ConvertPPTYToPPTX)(BSTR bsInput, BSTR bsOutput, BSTR bsThemesFolder)
{
return m_oCPPTXFile.ConvertPPTYToPPTX(bsInput, bsOutput, bsThemesFolder);
}
//void LoadResourceFile(HINSTANCE hInst, LPCTSTR sResName, LPCTSTR sResType, const CString& strDstFile)
//{
// HRSRC hrRes = FindResource(hInst, sResName, sResType);
// if (!hrRes)
// return;
// HGLOBAL hGlobal = LoadResource(hInst, hrRes);
// DWORD sz = SizeofResource(hInst, hrRes);
// void* ptrRes = LockResource(hGlobal);
// CFile oFile;
// oFile.CreateFile(strDstFile);
// oFile.WriteFile(ptrRes, sz);
// UnlockResource(hGlobal);
// FreeResource(hGlobal);
//}
};
bool comExtractFile(void* pArg, CString& sFile, CString& sDir)
{
COfficeUtils oCOfficeUtils(NULL);
return S_OK == oCOfficeUtils.ExtractToDirectory(string2std_string(sFile), string2std_string(sDir), NULL, 0) ? true : false;
}
bool comCompressFile(void* pArg, CString& sDir, CString& sFile)
{
COfficeUtils oCOfficeUtils(NULL);
return S_OK == oCOfficeUtils.CompressFileOrDirectory(string2std_string(sDir), string2std_string(sFile), -1) ? true : false;
}
bool comProgress(void* pArg, long ID, long Percent)
{
CAVSOfficePPTXFile* pCAVSOfficePPTXFile = static_cast<CAVSOfficePPTXFile*>(pArg);
SHORT res = 0;
pCAVSOfficePPTXFile->OnProgressEx(ID, Percent, &res);
return (res != 0);
}

View File

@ -1,57 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by AVSOfficeDocxFile2.rc
//
#define IDS_PROJNAME 100
#define IDR_ASCOFFICEDOCXFILE2 101
#define IDB_DEFAULT_DOC_RELS 201
#define IDB_DEFAULT_DOC_APP 202
#define IDB_DEFAULT_DOC_CORE 203
#define IDB_DEFAULT_DOC_THEME 204
#define IDB_DEFAULT_DOC_WEBSETTINGS 205
#define IDB_DEFAULT_XLSX_THEME 206
#define IDB_XML_NOTESTHEME 207
#define IDB_XML_NOTESMASTER 208
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 401
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 201
#define _APS_NEXT_SYMED_VALUE 102
#endif
#endif

View File

@ -1,163 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#include "resource.h"
#include "../Common/OfficeFileTemplate.h"
#include "DocWrapper/XlsxSerializer.h"
#include "../XlsxSerializerCom/Common/Common.h"
#include "../XlsxSerializerCom/Common/BinReaderWriterDefines.h"
#include "../DesktopEditor/common/Directory.h"
[
object,
uuid("B7AD8AA6-A103-4260-82BE-338C32543B90"),
dual, helpstring("IAVSOfficeXlsxSerizer Interface"),
pointer_default(unique)
]
__interface IAVSOfficeXlsxSerizer : public IAVSOfficeFileTemplate
{
[id(20)] HRESULT SetFontDir([in] BSTR bsFontDir);
[id(30)] HRESULT LoadChart([in] BSTR bsFilename, [out, satype("BYTE")] SAFEARRAY** ppBinary);
[id(31)] HRESULT SaveChart([in, satype("BYTE")] SAFEARRAY* pBinaryObj, [in] LONG lStart, [in] LONG lLength, [in] BSTR bsFilename, [in] BSTR bsContentTypePath, [out] BSTR* bsContentTypeElement);
[id(32)] HRESULT SetDrawingConverter([in] IUnknown* pDocument);
[id(120)] HRESULT SetAdditionalParam([in] BSTR ParamName, [in] VARIANT ParamValue);
[id(130)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out, retval] VARIANT* ParamValue);
};
[
coclass,
default(IAVSOfficeXlsxSerizer),
event_receiver(native),
threading(apartment),
vi_progid("ASCOfficeXlsxSerizer.AVSDocume"),
progid("ASCOfficeXlsxSerizer.AVSDocu.1"),
version(1.0),
uuid("BDE1A2A6-2EE0-4507-BD2E-0C42DA4101C2"),
helpstring("ASCOfficeXlsxSerizer Class")
]
class ATL_NO_VTABLE CAVSOfficeXlsxSerizer : public IAVSOfficeXlsxSerizer
{
private:
BinXlsxRW::CXlsxSerializer m_oXlsxSerializer;
IUnknown* m_pThis;
public:
CAVSOfficeXlsxSerizer()
{
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
STDMETHOD(LoadFromFile)(BSTR sSrcFileName, BSTR bstrDstPath, BSTR bstrXMLOptions)
{
CString sDstPath = bstrDstPath;
CString sMediaPath;
CString sEmbedPath;
m_oXlsxSerializer.CreateXlsxFolders(CString(bstrXMLOptions), sDstPath, sMediaPath, sEmbedPath);
bool bRes = m_oXlsxSerializer.loadFromFile(CString(sSrcFileName), sDstPath, CString(bstrXMLOptions), sMediaPath, sEmbedPath);
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(SaveToFile)(BSTR sDstFileName, BSTR sSrcPath, BSTR sXMLOptions)
{
bool bRes = m_oXlsxSerializer.saveToFile(CString(sDstFileName), CString(sSrcPath), CString(sXMLOptions)) ? S_OK : S_FALSE;
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(LoadChart)(BSTR bsFilename, SAFEARRAY** ppBinary)
{
unsigned char* pData = NULL;
long lDataSize = 0;
bool bRes = true;
//m_oXlsxSerializer.loadChart(CString(bsFilename), &pData, lDataSize);
if(NULL != pData && lDataSize > 0)
{
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = lDataSize;
LPSAFEARRAY pArray = SafeArrayCreate(VT_UI1, 1, rgsabound);
BYTE* pDataD = (BYTE*)pArray->pvData;
BYTE* pDataS = pData;
memcpy(pDataD, pDataS, lDataSize);
*ppBinary = pArray;
}
RELEASEARRAYOBJECTS(pData);
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(SaveChart)(SAFEARRAY* pBinaryObj, LONG lStart, LONG lLength, BSTR bsFilename, BSTR bsContentTypePath, BSTR* bsContentTypeElement)
{
CString* sContentTypeElement = NULL;
bool bRes = true;
//m_oXlsxSerializer.saveChart(pBinaryObj, lStart, lLength, CString(bsFilename), CString(bsContentTypePath), &sContentTypeElement);
if(NULL != sContentTypeElement)
*bsContentTypeElement = sContentTypeElement->AllocSysString();
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(SetDrawingConverter)(IUnknown* pDocument)
{
//m_oXlsxSerializer.setDrawingConverter(pDocument);
return S_OK;
}
STDMETHOD(SetFontDir)(BSTR bsFontDir)
{
m_oXlsxSerializer.setFontDir(CString(bsFontDir));
return S_OK;
}
STDMETHOD(SetAdditionalParam)(BSTR ParamName, VARIANT ParamValue)
{
CString sParamName; sParamName = ParamName;
if (_T("EmbeddedFontsDirectory") == sParamName && ParamValue.vt == VT_BSTR)
{
m_oXlsxSerializer.setEmbeddedFontsDir(CString(ParamValue.bstrVal));
return S_OK;
}
return S_OK;
}
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
{
return S_OK;
}
private:
};

View File

@ -1,38 +0,0 @@
/*********************************************************
DllData file -- generated by MIDL compiler
DO NOT ALTER THIS FILE
This file is regenerated by MIDL on every IDL file compile.
To completely reconstruct this file, delete it and rerun MIDL
on all the IDL files in this DLL, specifying this file for the
/dlldata command line option
*********************************************************/
#define PROXY_DELEGATION
#include <rpcproxy.h>
#ifdef __cplusplus
extern "C" {
#endif
EXTERN_PROXY_FILE( _ASCOfficeDocxFile2 )
PROXYFILE_LIST_START
/* Start of list */
REFERENCE_PROXY_FILE( _ASCOfficeDocxFile2 ),
/* End of list */
PROXYFILE_LIST_END
DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
#ifdef __cplusplus
} /*extern "C" */
#endif
/* end of generated dlldata file */

View File

@ -1,36 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
// stdafx.cpp : source file that includes just the standard includes
// AVSOfficeDocxFile2.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

View File

@ -1,112 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#pragma once
#ifndef STRICT
#define STRICT
#endif
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0500 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0500 // Change this to the appropriate value to target Windows 2000 or later.
#endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
#endif
#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _CRT_SECURE_NO_DEPRECATE
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off ATL's hiding of some common and often safely ignored warning messages
#define _ATL_ALL_WARNINGS
#include <windows.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
using namespace ATL;
#include "../Common/ASCUtils.h"
#include <Gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
#ifdef BUILD_CONFIG_OPENSOURCE_VERSION
#import "../Redist/OfficeCore.dll" named_guids raw_interfaces_only rename_namespace("OfficeCore")
#ifndef _DEFINE_NAMESPACE_ASC_GRAPHICS_
#define _DEFINE_NAMESPACE_ASC_GRAPHICS_
namespace ASCGraphics
{
typedef OfficeCore::IWinFonts IASCFontManager;
const GUID CLSID_CASCFontManager = OfficeCore::CLSID_CWinFonts;
const GUID IID_IASCFontManager = OfficeCore::IID_IWinFonts;
}
#endif
#else
//#import "../Redist/ASCGraphics.dll" named_guids raw_interfaces_only rename_namespace("ASCGraphics")
#import "../Redist/ASCFontConverter.dll" named_guids raw_interfaces_only rename_namespace("Fonts")
#endif
//#import "../Redist/ASCOfficeUtils.dll" named_guids raw_interfaces_only rename_namespace("OfficeUtils")
//#import "../Redist/ASCOfficePPTXFile.dll" named_guids raw_interfaces_only rename_namespace("PPTXFile"), exclude("_IAVSOfficeFileTemplateEvents"), exclude("_IAVSOfficeFileTemplateEvents2"), exclude("IASCRenderer")
#include "../Common/DocxFormat/Source/DocxFormat/Docx.h"
#include "../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"

View File

@ -1,39 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#define WIN32_LEAN_AND_MEAN
#include "WritingElement.h"
#include "Docx.h"
#include "DocMeasurer/FontProcessor.h"
#include "Docx.h"

View File

@ -1,38 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
//2
//0
//2
//330
#define INTVER 2,0,2,330
#define STRVER "2,0,2,330\0"

View File

@ -465,7 +465,7 @@ public:
void serialize(CP_ATTR_NODE);
_CP_OPT(horizontal_pos) style_horizontal_pos_;
_CP_OPT(length) svg_x_;
_CP_OPT(length) svg_x_;
};
@ -477,10 +477,10 @@ public:
void apply_from(const common_draw_style_name_attlist & Other);
void serialize(CP_ATTR_NODE);
_CP_OPT(style_ref) draw_style_name_;
_CP_OPT(std::wstring) draw_class_names_;
_CP_OPT(style_ref) presentation_style_name_;
_CP_OPT(std::wstring) presentation_class_names_;
_CP_OPT(style_ref) draw_style_name_;
_CP_OPT(std::wstring) draw_class_names_;
_CP_OPT(style_ref) presentation_style_name_;
_CP_OPT(std::wstring) presentation_class_names_;
};
@ -606,8 +606,8 @@ public:
void apply_from(const common_draw_shape_with_text_and_styles_attlist & Other);
void serialize(CP_ATTR_NODE);
common_draw_shape_with_styles_attlist common_draw_shape_with_styles_attlist_;
common_draw_text_style_name_attlist common_draw_text_style_name_attlist_;
common_draw_shape_with_styles_attlist common_draw_shape_with_styles_attlist_;
common_draw_text_style_name_attlist common_draw_text_style_name_attlist_;
};
/// presentation-shape-attlist
@ -618,9 +618,9 @@ public:
void apply_from(const presentation_shape_attlist & Other);
void serialize(CP_ATTR_NODE);
_CP_OPT(std::wstring) presentation_class_;
_CP_OPT(Bool) presentation_placeholder_;
_CP_OPT(Bool) presentation_user_transformed_;
_CP_OPT(std::wstring) presentation_class_;
_CP_OPT(Bool) presentation_placeholder_;
_CP_OPT(Bool) presentation_user_transformed_;
};

View File

@ -43,11 +43,11 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_MSC_VER=1800"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;__WORDSIZE=32;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
@ -402,6 +402,58 @@
/>
</FileConfiguration>
</File>
<Filter
Name="oox"
>
<File
RelativePath="..\..\ASCOfficeDocxFile2\BinWriter\BinWriters.cpp"
>
</File>
<File
RelativePath="..\..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp"
>
</File>
<File
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\ChartWriter.cpp"
>
</File>
<File
RelativePath="..\..\XlsxSerializerCom\Common\Common.cpp"
>
</File>
<File
RelativePath="..\..\XlsxSerializerCom\Reader\CommonWriter.cpp"
>
</File>
<File
RelativePath="..\..\XlsxSerializerCom\Reader\CSVReader.cpp"
>
</File>
<File
RelativePath="..\..\XlsxSerializerCom\Writer\CSVWriter.cpp"
>
</File>
<File
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\DocxSerializer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\FontProcessor.cpp"
>
</File>
<File
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\XlsxSerializer.cpp"
>
</File>
</Filter>
</Filter>
</Files>
<Globals>

View File

@ -24,7 +24,8 @@ DEFINES += UNICODE \
_USE_LIBXML2_READER_ \
_USE_XMLLITE_READER_ \
USE_LITE_READER \
LIBXML_READER_ENABLED
LIBXML_READER_ENABLED \
DONT_WRITE_EMBEDDED_FONTS
INCLUDEPATH += ../../DesktopEditor/freetype-2.5.2/include
INCLUDEPATH += ../../ASCOfficeOdfFile/include

View File

@ -80,7 +80,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeChartX,
{ L"chevron" , 7}, // shapetypeChevron,
{ L"" , 7}, // shapetypeChord,
{ L"circular-arrow" , 7}, // shapetypeCircularArrow,
{ L"" , 7}, // shapetypeCircularArrow,
{ L"cloud" , 7}, // shapetypeCloud,
{ L"cloud-callout" , 7}, // shapetypeCloudCallout,
{ L"" , 7}, // shapetypeCorner,

View File

@ -29,6 +29,7 @@
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "../oox_shape_defines.h"
// shapetypeAccentBorderCallout1,
// shapetypeAccentBorderCallout2,
// shapetypeAccentBorderCallout3,

View File

@ -29,6 +29,333 @@
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
// shapetypeLeftCircularArrow,
#include "../oox_shape_defines.h"
// +shapetypeLeftCircularArrow,
// shapetypeLeftRightCircularArrow,
// shapetypeSwooshArrow,
// shapetypeSwooshArrow,
// +shapetypeCircularArrow
namespace cpdoccore
{
class oox_shape_LeftCircularArrow : public oox_shape
{
public:
oox_shape_LeftCircularArrow()
{
odf_type_name =L"ooxml-leftCircularArrow";
enhanced_path = L"M 529769 128373 L 570534 225808 A ?f91 ?f92 ?f93 ?f94 570534 225808 ?f88 ?f90 W ?f95 ?f96 ?f97 ?f98 570534 225808 ?f88 ?f90 L 246425 854941 139301 967187 5691 907641 74093 892667 A ?f138 ?f139 ?f140 ?f141 74093 892667 ?f135 ?f137 W ?f142 ?f143 ?f144 ?f145 74093 892667 ?f135 ?f137 Z N";
text_areas = L"?f48 ?f50 ?f49 ?f51";
glue_points = L"?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47";
view_box = L"0 0 1637004 1637004";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"5419351 / 1725033");
add(L"f9", L"180");
add(L"f10", L"?f7 / 1637004");
add(L"f11", L"?f6 / 1637004");
add(L"f12", L"139301 - 818502");
add(L"f13", L"967187 - 818502");
add(L"f14", L"sqrt(?f12 * ?f12 + ?f13 * ?f13 + 0 * 0)");
add(L"f15", L"atan2(?f12, ?f13)");
add(L"f16", L"?f15 + ?f1");
add(L"f17", L"?f16 * ?f9 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"529769 - 818502");
add(L"f20", L"128373 - 818502");
add(L"f21", L"sqrt(?f19 * ?f19 + ?f20 * ?f20 + 0 * 0)");
add(L"f22", L"atan2(?f19, ?f20)");
add(L"f23", L"?f22 + ?f1");
add(L"f24", L"?f23 * ?f9 / ?f0");
add(L"f25", L"0 - ?f24");
add(L"f26", L"74093 - 818502");
add(L"f27", L"892667 - 818502");
add(L"f28", L"sqrt(?f26 * ?f26 + ?f27 * ?f27 + 0 * 0)");
add(L"f29", L"atan2(?f26, ?f27)");
add(L"f30", L"?f29 + ?f1");
add(L"f31", L"?f30 * ?f9 / ?f0");
add(L"f32", L"0 - ?f31");
add(L"f33", L"246425 - 818502");
add(L"f34", L"854941 - 818502");
add(L"f35", L"sqrt(?f33 * ?f33 + ?f34 * ?f34 + 0 * 0)");
add(L"f36", L"atan2(?f33, ?f34)");
add(L"f37", L"?f36 + ?f1");
add(L"f38", L"?f37 * ?f9 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"550151 / ?f10");
add(L"f41", L"177091 / ?f11");
add(L"f42", L"5691 / ?f10");
add(L"f43", L"907641 / ?f11");
add(L"f44", L"139301 / ?f10");
add(L"f45", L"967187 / ?f11");
add(L"f46", L"246425 / ?f10");
add(L"f47", L"854941 / ?f11");
add(L"f48", L"289519 / ?f10");
add(L"f49", L"1347485 / ?f10");
add(L"f50", L"289519 / ?f11");
add(L"f51", L"1347485 / ?f11");
add(L"f52", L"21550000 - -4313128");
add(L"f53", L"if(?f52, -4313128, 21550000)");
add(L"f54", L"-21550000 - ?f53");
add(L"f55", L"if(?f54, -21550000, ?f53)");
add(L"f56", L"14837806 + ?f55");
add(L"f57", L"14837806 + ?f1");
add(L"f58", L"?f57 * ?f8 / ?f0");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * 642475");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * 642475");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"642475 * 642475 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"570534 - ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"225808 - ?f70");
add(L"f72", L"?f69 - 642475");
add(L"f73", L"?f71 - 642475");
add(L"f74", L"?f69 + 642475");
add(L"f75", L"?f71 + 642475");
add(L"f76", L"?f56 + ?f1");
add(L"f77", L"?f76 * ?f8 / ?f0");
add(L"f78", L"0 - ?f77");
add(L"f79", L"cos(?f78)");
add(L"f80", L"0 - ?f79");
add(L"f81", L"?f80 * 642475");
add(L"f82", L"sin(?f78)");
add(L"f83", L"0 - ?f82");
add(L"f84", L"?f83 * 642475");
add(L"f85", L"sqrt(?f81 * ?f81 + ?f84 * ?f84 + 0 * 0)");
add(L"f86", L"642475 * 642475 / ?f85");
add(L"f87", L"?f83 * ?f86");
add(L"f88", L"?f69 + ?f87");
add(L"f89", L"?f80 * ?f86");
add(L"f90", L"?f71 + ?f89");
add(L"f91", L"if(?f55, 570534, ?f72)");
add(L"f92", L"if(?f55, 225808, ?f73)");
add(L"f93", L"if(?f55, 570534, ?f74)");
add(L"f94", L"if(?f55, 225808, ?f75)");
add(L"f95", L"if(?f55, ?f72, ?f88)");
add(L"f96", L"if(?f55, ?f73, ?f90)");
add(L"f97", L"if(?f55, ?f74, ?f88)");
add(L"f98", L"if(?f55, ?f75, ?f90)");
add(L"f99", L"21550000 - 4379179");
add(L"f100", L"if(?f99, 4379179, 21550000)");
add(L"f101", L"-21550000 - ?f100");
add(L"f102", L"if(?f101, -21550000, ?f100)");
add(L"f103", L"10458627 + ?f102");
add(L"f104", L"10458627 + ?f1");
add(L"f105", L"?f104 * ?f8 / ?f0");
add(L"f106", L"0 - ?f105");
add(L"f107", L"cos(?f106)");
add(L"f108", L"0 - ?f107");
add(L"f109", L"?f108 * 748094");
add(L"f110", L"sin(?f106)");
add(L"f111", L"0 - ?f110");
add(L"f112", L"?f111 * 748094");
add(L"f113", L"sqrt(?f109 * ?f109 + ?f112 * ?f112 + 0 * 0)");
add(L"f114", L"748094 * 748094 / ?f113");
add(L"f115", L"?f111 * ?f114");
add(L"f116", L"74093 - ?f115");
add(L"f117", L"?f108 * ?f114");
add(L"f118", L"892667 - ?f117");
add(L"f119", L"?f116 - 748094");
add(L"f120", L"?f118 - 748094");
add(L"f121", L"?f116 + 748094");
add(L"f122", L"?f118 + 748094");
add(L"f123", L"?f103 + ?f1");
add(L"f124", L"?f123 * ?f8 / ?f0");
add(L"f125", L"0 - ?f124");
add(L"f126", L"cos(?f125)");
add(L"f127", L"0 - ?f126");
add(L"f128", L"?f127 * 748094");
add(L"f129", L"sin(?f125)");
add(L"f130", L"0 - ?f129");
add(L"f131", L"?f130 * 748094");
add(L"f132", L"sqrt(?f128 * ?f128 + ?f131 * ?f131 + 0 * 0)");
add(L"f133", L"748094 * 748094 / ?f132");
add(L"f134", L"?f130 * ?f133");
add(L"f135", L"?f116 + ?f134");
add(L"f136", L"?f127 * ?f133");
add(L"f137", L"?f118 + ?f136");
add(L"f138", L"if(?f102, 74093, ?f119)");
add(L"f139", L"if(?f102, 892667, ?f120)");
add(L"f140", L"if(?f102, 74093, ?f121)");
add(L"f141", L"if(?f102, 892667, ?f122)");
add(L"f142", L"if(?f102, ?f119, ?f135)");
add(L"f143", L"if(?f102, ?f120, ?f137)");
add(L"f144", L"if(?f102, ?f121, ?f135)");
add(L"f145", L"if(?f102, ?f122, ?f137)");
/////////////////////////////////////////////////////////
}
};
class oox_shape_CircularArrow : public oox_shape
{
public:
oox_shape_CircularArrow()
{
odf_type_name =L"ooxml-circularArrow";
enhanced_path = L"M 832838 101692 A ?f91 ?f92 ?f93 ?f94 832838 101692 ?f88 ?f90 W ?f95 ?f96 ?f97 ?f98 832838 101692 ?f88 ?f90 L 1755675 1929758 1616897 1879250 1618409 1725100 1657499 1783381 A ?f138 ?f139 ?f140 ?f141 1657499 1783381 ?f135 ?f137 W ?f142 ?f143 ?f144 ?f145 1657499 1783381 ?f135 ?f137 Z N";
text_areas = L"?f48 ?f50 ?f49 ?f51";
glue_points = L"?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47";
view_box = L"0 0 2165070 2165070";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"5419351 / 1725033");
add(L"f9", L"180");
add(L"f10", L"?f7 / 2165070");
add(L"f11", L"?f6 / 2165070");
add(L"f12", L"1616897 - 1082535");
add(L"f13", L"1879250 - 1082535");
add(L"f14", L"sqrt(?f12 * ?f12 + ?f13 * ?f13 + 0 * 0)");
add(L"f15", L"atan2(?f12, ?f13)");
add(L"f16", L"?f15 + ?f1");
add(L"f17", L"?f16 * ?f9 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"832838 - 1082535");
add(L"f20", L"101692 - 1082535");
add(L"f21", L"sqrt(?f19 * ?f19 + ?f20 * ?f20 + 0 * 0)");
add(L"f22", L"atan2(?f19, ?f20)");
add(L"f23", L"?f22 + ?f1");
add(L"f24", L"?f23 * ?f9 / ?f0");
add(L"f25", L"0 - ?f24");
add(L"f26", L"1716572 - 1082535");
add(L"f27", L"1871457 - 1082535");
add(L"f28", L"sqrt(?f26 * ?f26 + ?f27 * ?f27 + 0 * 0)");
add(L"f29", L"atan2(?f26, ?f27)");
add(L"f30", L"?f29 + ?f1");
add(L"f31", L"?f30 * ?f9 / ?f0");
add(L"f32", L"0 - ?f31");
add(L"f33", L"1618409 - 1082535");
add(L"f34", L"1725100 - 1082535");
add(L"f35", L"sqrt(?f33 * ?f33 + ?f34 * ?f34 + 0 * 0)");
add(L"f36", L"atan2(?f33, ?f34)");
add(L"f37", L"?f36 + ?f1");
add(L"f38", L"?f37 * ?f9 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"845866 / ?f10");
add(L"f41", L"152866 / ?f11");
add(L"f42", L"1755675 / ?f10");
add(L"f43", L"1929758 / ?f11");
add(L"f44", L"1616897 / ?f10");
add(L"f45", L"1879250 / ?f11");
add(L"f46", L"1618409 / ?f10");
add(L"f47", L"1725100 / ?f11");
add(L"f48", L"366853 / ?f10");
add(L"f49", L"1798217 / ?f10");
add(L"f50", L"366853 / ?f11");
add(L"f51", L"1798217 / ?f11");
add(L"f52", L"21550000 - 9329679");
add(L"f53", L"if(?f52, 9329679, 21550000)");
add(L"f54", L"-21550000 - ?f53");
add(L"f55", L"if(?f54, -21550000, ?f53)");
add(L"f56", L"15343043 + ?f55");
add(L"f57", L"15343043 + ?f1");
add(L"f58", L"?f57 * ?f8 / ?f0");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * 1012127");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * 1012127");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"1012127 * 1012127 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"832838 - ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"101692 - ?f70");
add(L"f72", L"?f69 - 1012127");
add(L"f73", L"?f71 - 1012127");
add(L"f74", L"?f69 + 1012127");
add(L"f75", L"?f71 + 1012127");
add(L"f76", L"?f56 + ?f1");
add(L"f77", L"?f76 * ?f8 / ?f0");
add(L"f78", L"0 - ?f77");
add(L"f79", L"cos(?f78)");
add(L"f80", L"0 - ?f79");
add(L"f81", L"?f80 * 1012127");
add(L"f82", L"sin(?f78)");
add(L"f83", L"0 - ?f82");
add(L"f84", L"?f83 * 1012127");
add(L"f85", L"sqrt(?f81 * ?f81 + ?f84 * ?f84 + 0 * 0)");
add(L"f86", L"1012127 * 1012127 / ?f85");
add(L"f87", L"?f83 * ?f86");
add(L"f88", L"?f69 + ?f87");
add(L"f89", L"?f80 * ?f86");
add(L"f90", L"?f71 + ?f89");
add(L"f91", L"if(?f55, 832838, ?f72)");
add(L"f92", L"if(?f55, 101692, ?f73)");
add(L"f93", L"if(?f55, 832838, ?f74)");
add(L"f94", L"if(?f55, 101692, ?f75)");
add(L"f95", L"if(?f55, ?f72, ?f88)");
add(L"f96", L"if(?f55, ?f73, ?f90)");
add(L"f97", L"if(?f55, ?f74, ?f88)");
add(L"f98", L"if(?f55, ?f75, ?f90)");
add(L"f99", L"21550000 - -9295060");
add(L"f100", L"if(?f99, -9295060, 21550000)");
add(L"f101", L"-21550000 - ?f100");
add(L"f102", L"if(?f101, -21550000, ?f100)");
add(L"f103", L"3038103 + ?f102");
add(L"f104", L"3038103 + ?f1");
add(L"f105", L"?f104 * ?f8 / ?f0");
add(L"f106", L"0 - ?f105");
add(L"f107", L"cos(?f106)");
add(L"f108", L"0 - ?f107");
add(L"f109", L"?f108 * 906515");
add(L"f110", L"sin(?f106)");
add(L"f111", L"0 - ?f110");
add(L"f112", L"?f111 * 906515");
add(L"f113", L"sqrt(?f109 * ?f109 + ?f112 * ?f112 + 0 * 0)");
add(L"f114", L"906515 * 906515 / ?f113");
add(L"f115", L"?f111 * ?f114");
add(L"f116", L"1657499 - ?f115");
add(L"f117", L"?f108 * ?f114");
add(L"f118", L"1783381 - ?f117");
add(L"f119", L"?f116 - 906515");
add(L"f120", L"?f118 - 906515");
add(L"f121", L"?f116 + 906515");
add(L"f122", L"?f118 + 906515");
add(L"f123", L"?f103 + ?f1");
add(L"f124", L"?f123 * ?f8 / ?f0");
add(L"f125", L"0 - ?f124");
add(L"f126", L"cos(?f125)");
add(L"f127", L"0 - ?f126");
add(L"f128", L"?f127 * 906515");
add(L"f129", L"sin(?f125)");
add(L"f130", L"0 - ?f129");
add(L"f131", L"?f130 * 906515");
add(L"f132", L"sqrt(?f128 * ?f128 + ?f131 * ?f131 + 0 * 0)");
add(L"f133", L"906515 * 906515 / ?f132");
add(L"f134", L"?f130 * ?f133");
add(L"f135", L"?f116 + ?f134");
add(L"f136", L"?f127 * ?f133");
add(L"f137", L"?f118 + ?f136");
add(L"f138", L"if(?f102, 1657499, ?f119)");
add(L"f139", L"if(?f102, 1783381, ?f120)");
add(L"f140", L"if(?f102, 1657499, ?f121)");
add(L"f141", L"if(?f102, 1783381, ?f122)");
add(L"f142", L"if(?f102, ?f119, ?f135)");
add(L"f143", L"if(?f102, ?f120, ?f137)");
add(L"f144", L"if(?f102, ?f121, ?f135)");
add(L"f145", L"if(?f102, ?f122, ?f137)");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -37,9 +37,9 @@
// shapetypeDiagStripe,
// shapetypeDodecagon,
//+ shapetypeDoubleWave,
// shapetypeFunnel,
// shapetypeGear6,
// shapetypeGear9,
//+ shapetypeFunnel,
//+ shapetypeGear6,
//+ shapetypeGear9,
// shapetypeHalfFrame,
// shapetypeHeptagon,
// shapetypeNonIsoscelesTrapezoid,
@ -323,4 +323,439 @@ public:
/////////////////////////////////////////////////////////
}
};
class oox_shape_Gear6 : public oox_shape
{
public:
oox_shape_Gear6()
{
odf_type_name =L"ooxml-gear6";
enhanced_path = L"M 541172 212681 L 631103 156982 683808 209688 628111 299619 C 649564 336513 660802 378456 660671 421135 L 753871 471167 734580 543164 628849 539893 C 607623 576919 576919 607624 539893 628849 L 543164 734581 471167 753872 421134 660670 C 378456 660802 336513 649563 299618 628110 L 209688 683809 156983 631103 212680 541172 C 191227 504278 179989 462335 180120 419656 L 86920 369624 106211 297627 211942 300898 C 233168 263872 263872 233167 300898 211942 L 297627 106210 369624 86919 419657 180121 C 462335 179989 504278 191228 541173 212681 L 541172 212681 Z N";
text_areas = L"?f68 ?f70 ?f69 ?f71";
glue_points = L"?f38 ?f39 ?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f44 ?f46 ?f42 ?f47 ?f40 ?f48 ?f38 ?f49 ?f50 ?f51 ?f52 ?f53 ?f54 ?f53 ?f55 ?f51 ?f56 ?f49 ?f57 ?f48 ?f58 ?f47 ?f59 ?f60 ?f59 ?f61 ?f58 ?f43 ?f57 ?f41 ?f62 ?f39 ?f63 ?f64 ?f54 ?f65 ?f52 ?f65 ?f66 ?f64 ?f67 ?f39 ?f38 ?f39";
view_box = L"0 0 840791 840791";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 840791");
add(L"f7", L"?f4 / 840791");
add(L"f8", L"629119 * ?f5 / 840791");
add(L"f9", L"212951 * ?f4 / 840791");
add(L"f10", L"753164 * ?f5 / 840791");
add(L"f11", L"175566 * ?f4 / 840791");
add(L"f12", L"798808 * ?f5 / 840791");
add(L"f13", L"254624 * ?f4 / 840791");
add(L"f14", L"704410 * ?f5 / 840791");
add(L"f15", L"343358 * ?f4 / 840791");
add(L"f16", L"497434 * ?f4 / 840791");
add(L"f17", L"586167 * ?f4 / 840791");
add(L"f18", L"665225 * ?f4 / 840791");
add(L"f19", L"627840 * ?f4 / 840791");
add(L"f20", L"495685 * ?f5 / 840791");
add(L"f21", L"704878 * ?f4 / 840791");
add(L"f22", L"466040 * ?f5 / 840791");
add(L"f23", L"830997 * ?f4 / 840791");
add(L"f24", L"374751 * ?f5 / 840791");
add(L"f25", L"345105 * ?f5 / 840791");
add(L"f26", L"211671 * ?f5 / 840791");
add(L"f27", L"87627 * ?f5 / 840791");
add(L"f28", L"41983 * ?f5 / 840791");
add(L"f29", L"136381 * ?f5 / 840791");
add(L"f30", L"497433 * ?f4 / 840791");
add(L"f31", L"343357 * ?f4 / 840791");
add(L"f32", L"211672 * ?f5 / 840791");
add(L"f33", L"345106 * ?f5 / 840791");
add(L"f34", L"135913 * ?f4 / 840791");
add(L"f35", L"9794 * ?f4 / 840791");
add(L"f36", L"495686 * ?f5 / 840791");
add(L"f37", L"629120 * ?f5 / 840791");
add(L"f38", L"?f8 / ?f6");
add(L"f39", L"?f9 / ?f7");
add(L"f40", L"?f10 / ?f6");
add(L"f41", L"?f11 / ?f7");
add(L"f42", L"?f12 / ?f6");
add(L"f43", L"?f13 / ?f7");
add(L"f44", L"?f14 / ?f6");
add(L"f45", L"?f15 / ?f7");
add(L"f46", L"?f16 / ?f7");
add(L"f47", L"?f17 / ?f7");
add(L"f48", L"?f18 / ?f7");
add(L"f49", L"?f19 / ?f7");
add(L"f50", L"?f20 / ?f6");
add(L"f51", L"?f21 / ?f7");
add(L"f52", L"?f22 / ?f6");
add(L"f53", L"?f23 / ?f7");
add(L"f54", L"?f24 / ?f6");
add(L"f55", L"?f25 / ?f6");
add(L"f56", L"?f26 / ?f6");
add(L"f57", L"?f27 / ?f6");
add(L"f58", L"?f28 / ?f6");
add(L"f59", L"?f29 / ?f6");
add(L"f60", L"?f30 / ?f7");
add(L"f61", L"?f31 / ?f7");
add(L"f62", L"?f32 / ?f6");
add(L"f63", L"?f33 / ?f6");
add(L"f64", L"?f34 / ?f7");
add(L"f65", L"?f35 / ?f7");
add(L"f66", L"?f36 / ?f6");
add(L"f67", L"?f37 / ?f6");
add(L"f68", L"?f0 / ?f6");
add(L"f69", L"?f1 / ?f6");
add(L"f70", L"?f2 / ?f7");
add(L"f71", L"?f3 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Gear9 : public oox_shape
{
public:
oox_shape_Gear9()
{
odf_type_name =L"ooxml-gear9";
enhanced_path = L"M 837517 188126 L 929297 111109 1002618 172633 942709 276392 C 985308 324313 1017696 380410 1037897 441262 L 1157709 441259 1174330 535519 1061742 576495 C 1063572 640586 1052324 704378 1028684 763978 L 1120467 840989 1072610 923880 960025 882899 C 920230 933172 870608 974809 814189 1005270 L 834997 1123262 745055 1155998 685151 1052236 C 622351 1065167 557575 1065167 494775 1052236 L 434872 1155998 344930 1123262 365739 1005270 C 309319 974809 259698 933172 219903 882899 L 107317 923880 59460 840989 151243 763978 C 127603 704378 116355 640586 118185 576495 L 5597 535519 22218 441259 142030 441262 C 162231 380410 194619 324312 237218 276392 L 177309 172633 250630 111109 342410 188126 C 397000 154496 457869 132341 521305 123014 L 542106 5021 637821 5021 658623 123013 C 722058 132340 782928 154495 837518 188125 L 837517 188126 Z N";
text_areas = L"?f122 ?f124 ?f123 ?f125";
glue_points = L"?f65 ?f66 ?f67 ?f68 ?f69 ?f70 ?f71 ?f72 ?f73 ?f74 ?f75 ?f76 ?f77 ?f78 ?f79 ?f80 ?f81 ?f82 ?f83 ?f84 ?f85 ?f86 ?f87 ?f88 ?f89 ?f90 ?f91 ?f92 ?f93 ?f94 ?f95 ?f96 ?f97 ?f96 ?f98 ?f94 ?f99 ?f92 ?f100 ?f90 ?f101 ?f88 ?f102 ?f86 ?f103 ?f84 ?f104 ?f82 ?f105 ?f80 ?f106 ?f78 ?f107 ?f76 ?f108 ?f74 ?f109 ?f72 ?f110 ?f70 ?f111 ?f68 ?f112 ?f66 ?f113 ?f114 ?f115 ?f116 ?f117 ?f116 ?f118 ?f119 ?f120 ?f121 ?f65 ?f66";
view_box = L"0 0 1179927 1179927";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 1179927");
add(L"f7", L"?f4 / 1179927");
add(L"f8", L"837517 * ?f5 / 1179927");
add(L"f9", L"188126 * ?f4 / 1179927");
add(L"f10", L"929297 * ?f5 / 1179927");
add(L"f11", L"111109 * ?f4 / 1179927");
add(L"f12", L"1002618 * ?f5 / 1179927");
add(L"f13", L"172633 * ?f4 / 1179927");
add(L"f14", L"942709 * ?f5 / 1179927");
add(L"f15", L"276392 * ?f4 / 1179927");
add(L"f16", L"1037897 * ?f5 / 1179927");
add(L"f17", L"441262 * ?f4 / 1179927");
add(L"f18", L"1157709 * ?f5 / 1179927");
add(L"f19", L"441259 * ?f4 / 1179927");
add(L"f20", L"1174330 * ?f5 / 1179927");
add(L"f21", L"535519 * ?f4 / 1179927");
add(L"f22", L"1061742 * ?f5 / 1179927");
add(L"f23", L"576495 * ?f4 / 1179927");
add(L"f24", L"1028684 * ?f5 / 1179927");
add(L"f25", L"763978 * ?f4 / 1179927");
add(L"f26", L"1120467 * ?f5 / 1179927");
add(L"f27", L"840989 * ?f4 / 1179927");
add(L"f28", L"1072610 * ?f5 / 1179927");
add(L"f29", L"923880 * ?f4 / 1179927");
add(L"f30", L"960025 * ?f5 / 1179927");
add(L"f31", L"882899 * ?f4 / 1179927");
add(L"f32", L"814189 * ?f5 / 1179927");
add(L"f33", L"1005270 * ?f4 / 1179927");
add(L"f34", L"834997 * ?f5 / 1179927");
add(L"f35", L"1123262 * ?f4 / 1179927");
add(L"f36", L"745055 * ?f5 / 1179927");
add(L"f37", L"1155998 * ?f4 / 1179927");
add(L"f38", L"685151 * ?f5 / 1179927");
add(L"f39", L"1052236 * ?f4 / 1179927");
add(L"f40", L"494775 * ?f5 / 1179927");
add(L"f41", L"434872 * ?f5 / 1179927");
add(L"f42", L"344930 * ?f5 / 1179927");
add(L"f43", L"365739 * ?f5 / 1179927");
add(L"f44", L"219903 * ?f5 / 1179927");
add(L"f45", L"107317 * ?f5 / 1179927");
add(L"f46", L"59460 * ?f5 / 1179927");
add(L"f47", L"151243 * ?f5 / 1179927");
add(L"f48", L"118185 * ?f5 / 1179927");
add(L"f49", L"5597 * ?f5 / 1179927");
add(L"f50", L"22218 * ?f5 / 1179927");
add(L"f51", L"142030 * ?f5 / 1179927");
add(L"f52", L"237218 * ?f5 / 1179927");
add(L"f53", L"177309 * ?f5 / 1179927");
add(L"f54", L"250630 * ?f5 / 1179927");
add(L"f55", L"342410 * ?f5 / 1179927");
add(L"f56", L"521305 * ?f5 / 1179927");
add(L"f57", L"123014 * ?f4 / 1179927");
add(L"f58", L"542106 * ?f5 / 1179927");
add(L"f59", L"5021 * ?f4 / 1179927");
add(L"f60", L"637821 * ?f5 / 1179927");
add(L"f61", L"658623 * ?f5 / 1179927");
add(L"f62", L"123013 * ?f4 / 1179927");
add(L"f63", L"837518 * ?f5 / 1179927");
add(L"f64", L"188125 * ?f4 / 1179927");
add(L"f65", L"?f8 / ?f6");
add(L"f66", L"?f9 / ?f7");
add(L"f67", L"?f10 / ?f6");
add(L"f68", L"?f11 / ?f7");
add(L"f69", L"?f12 / ?f6");
add(L"f70", L"?f13 / ?f7");
add(L"f71", L"?f14 / ?f6");
add(L"f72", L"?f15 / ?f7");
add(L"f73", L"?f16 / ?f6");
add(L"f74", L"?f17 / ?f7");
add(L"f75", L"?f18 / ?f6");
add(L"f76", L"?f19 / ?f7");
add(L"f77", L"?f20 / ?f6");
add(L"f78", L"?f21 / ?f7");
add(L"f79", L"?f22 / ?f6");
add(L"f80", L"?f23 / ?f7");
add(L"f81", L"?f24 / ?f6");
add(L"f82", L"?f25 / ?f7");
add(L"f83", L"?f26 / ?f6");
add(L"f84", L"?f27 / ?f7");
add(L"f85", L"?f28 / ?f6");
add(L"f86", L"?f29 / ?f7");
add(L"f87", L"?f30 / ?f6");
add(L"f88", L"?f31 / ?f7");
add(L"f89", L"?f32 / ?f6");
add(L"f90", L"?f33 / ?f7");
add(L"f91", L"?f34 / ?f6");
add(L"f92", L"?f35 / ?f7");
add(L"f93", L"?f36 / ?f6");
add(L"f94", L"?f37 / ?f7");
add(L"f95", L"?f38 / ?f6");
add(L"f96", L"?f39 / ?f7");
add(L"f97", L"?f40 / ?f6");
add(L"f98", L"?f41 / ?f6");
add(L"f99", L"?f42 / ?f6");
add(L"f100", L"?f43 / ?f6");
add(L"f101", L"?f44 / ?f6");
add(L"f102", L"?f45 / ?f6");
add(L"f103", L"?f46 / ?f6");
add(L"f104", L"?f47 / ?f6");
add(L"f105", L"?f48 / ?f6");
add(L"f106", L"?f49 / ?f6");
add(L"f107", L"?f50 / ?f6");
add(L"f108", L"?f51 / ?f6");
add(L"f109", L"?f52 / ?f6");
add(L"f110", L"?f53 / ?f6");
add(L"f111", L"?f54 / ?f6");
add(L"f112", L"?f55 / ?f6");
add(L"f113", L"?f56 / ?f6");
add(L"f114", L"?f57 / ?f7");
add(L"f115", L"?f58 / ?f6");
add(L"f116", L"?f59 / ?f7");
add(L"f117", L"?f60 / ?f6");
add(L"f118", L"?f61 / ?f6");
add(L"f119", L"?f62 / ?f7");
add(L"f120", L"?f63 / ?f6");
add(L"f121", L"?f64 / ?f7");
add(L"f122", L"?f0 / ?f6");
add(L"f123", L"?f1 / ?f6");
add(L"f124", L"?f2 / ?f7");
add(L"f125", L"?f3 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Funnel : public oox_shape
{
public:
oox_shape_Funnel()
{
odf_type_name =L"ooxml-funnel";
enhanced_path = L"M ?f50 ?f51 A ?f99 ?f100 ?f101 ?f102 ?f50 ?f51 ?f96 ?f98 W ?f103 ?f104 ?f105 ?f106 ?f50 ?f51 ?f96 ?f98 L ?f65 ?f67 A ?f137 ?f138 ?f139 ?f140 ?f65 ?f67 ?f134 ?f136 W ?f141 ?f142 ?f143 ?f144 ?f65 ?f67 ?f134 ?f136 Z M ?f68 ?f7 A ?f184 ?f185 ?f186 ?f187 ?f68 ?f7 ?f181 ?f183 W ?f188 ?f189 ?f190 ?f191 ?f68 ?f7 ?f181 ?f183 Z N";
text_areas = L"?f2 ?f4 ?f3 ?f5";
view_box = L"0 0 21600 21600";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 4");
add(L"f8", L"?f3 - ?f2");
add(L"f9", L"?f8 / 2");
add(L"f10", L"?f2 + ?f9");
add(L"f11", L"min(?f8, ?f6)");
add(L"f12", L"5419351 / 1725033");
add(L"f13", L"?f11 / 20");
add(L"f14", L"?f9 - ?f13");
add(L"f15", L"?f7 - ?f13");
add(L"f16", L"480000 + ?f1");
add(L"f17", L"?f16 * ?f12 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"sin(?f18)");
add(L"f20", L"0 - ?f19");
add(L"f21", L"?f20 * ?f9");
add(L"f22", L"cos(?f18)");
add(L"f23", L"0 - ?f22");
add(L"f24", L"?f23 * ?f7");
add(L"f25", L"0 - ?f21");
add(L"f26", L"0 - ?f24");
add(L"f27", L"atan2(?f25, ?f26)");
add(L"f28", L"0 - ?f27");
add(L"f29", L"?f28 * ?f0 / ?f12");
add(L"f30", L"?f29 - ?f1");
add(L"f31", L"?f30 * 2");
add(L"f32", L"?f0 - ?f30");
add(L"f33", L"?f0 + ?f31");
add(L"f34", L"?f0 - ?f31");
add(L"f35", L"?f9 / 4");
add(L"f36", L"?f7 / 4");
add(L"f37", L"?f32 + ?f1");
add(L"f38", L"?f37 * ?f12 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"sin(?f39)");
add(L"f41", L"0 - ?f40");
add(L"f42", L"?f41 * ?f7");
add(L"f43", L"cos(?f39)");
add(L"f44", L"0 - ?f43");
add(L"f45", L"?f44 * ?f9");
add(L"f46", L"sqrt(?f42 * ?f42 + ?f45 * ?f45 + 0 * 0)");
add(L"f47", L"?f9 * ?f7 / ?f46");
add(L"f48", L"?f41 * ?f47");
add(L"f49", L"?f44 * ?f47");
add(L"f50", L"?f10 + ?f48");
add(L"f51", L"?f7 + ?f49");
add(L"f52", L"?f30 + ?f1");
add(L"f53", L"?f52 * ?f12 / ?f0");
add(L"f54", L"0 - ?f53");
add(L"f55", L"sin(?f54)");
add(L"f56", L"0 - ?f55");
add(L"f57", L"?f56 * ?f36");
add(L"f58", L"cos(?f54)");
add(L"f59", L"0 - ?f58");
add(L"f60", L"?f59 * ?f35");
add(L"f61", L"sqrt(?f57 * ?f57 + ?f60 * ?f60 + 0 * 0)");
add(L"f62", L"?f35 * ?f36 / ?f61");
add(L"f63", L"?f56 * ?f62");
add(L"f64", L"?f59 * ?f62");
add(L"f65", L"?f10 + ?f63");
add(L"f66", L"?f5 - ?f36");
add(L"f67", L"?f66 + ?f64");
add(L"f68", L"?f9 - ?f14");
add(L"f69", L"21550000 - ?f33");
add(L"f70", L"if(?f69, ?f33, 21550000)");
add(L"f71", L"-21550000 - ?f70");
add(L"f72", L"if(?f71, -21550000, ?f70)");
add(L"f73", L"?f32 + ?f72");
add(L"f74", L"sqrt(?f45 * ?f45 + ?f42 * ?f42 + 0 * 0)");
add(L"f75", L"?f9 * ?f7 / ?f74");
add(L"f76", L"?f41 * ?f75");
add(L"f77", L"?f50 - ?f76");
add(L"f78", L"?f44 * ?f75");
add(L"f79", L"?f51 - ?f78");
add(L"f80", L"?f77 - ?f9");
add(L"f81", L"?f79 - ?f7");
add(L"f82", L"?f77 + ?f9");
add(L"f83", L"?f79 + ?f7");
add(L"f84", L"?f73 + ?f1");
add(L"f85", L"?f84 * ?f12 / ?f0");
add(L"f86", L"0 - ?f85");
add(L"f87", L"cos(?f86)");
add(L"f88", L"0 - ?f87");
add(L"f89", L"?f88 * ?f9");
add(L"f90", L"sin(?f86)");
add(L"f91", L"0 - ?f90");
add(L"f92", L"?f91 * ?f7");
add(L"f93", L"sqrt(?f89 * ?f89 + ?f92 * ?f92 + 0 * 0)");
add(L"f94", L"?f9 * ?f7 / ?f93");
add(L"f95", L"?f91 * ?f94");
add(L"f96", L"?f77 + ?f95");
add(L"f97", L"?f88 * ?f94");
add(L"f98", L"?f79 + ?f97");
add(L"f99", L"if(?f72, ?f50, ?f80)");
add(L"f100", L"if(?f72, ?f51, ?f81)");
add(L"f101", L"if(?f72, ?f50, ?f82)");
add(L"f102", L"if(?f72, ?f51, ?f83)");
add(L"f103", L"if(?f72, ?f80, ?f96)");
add(L"f104", L"if(?f72, ?f81, ?f98)");
add(L"f105", L"if(?f72, ?f82, ?f96)");
add(L"f106", L"if(?f72, ?f83, ?f98)");
add(L"f107", L"21550000 - ?f34");
add(L"f108", L"if(?f107, ?f34, 21550000)");
add(L"f109", L"-21550000 - ?f108");
add(L"f110", L"if(?f109, -21550000, ?f108)");
add(L"f111", L"?f30 + ?f110");
add(L"f112", L"sqrt(?f60 * ?f60 + ?f57 * ?f57 + 0 * 0)");
add(L"f113", L"?f35 * ?f36 / ?f112");
add(L"f114", L"?f56 * ?f113");
add(L"f115", L"?f65 - ?f114");
add(L"f116", L"?f59 * ?f113");
add(L"f117", L"?f67 - ?f116");
add(L"f118", L"?f115 - ?f35");
add(L"f119", L"?f117 - ?f36");
add(L"f120", L"?f115 + ?f35");
add(L"f121", L"?f117 + ?f36");
add(L"f122", L"?f111 + ?f1");
add(L"f123", L"?f122 * ?f12 / ?f0");
add(L"f124", L"0 - ?f123");
add(L"f125", L"cos(?f124)");
add(L"f126", L"0 - ?f125");
add(L"f127", L"?f126 * ?f35");
add(L"f128", L"sin(?f124)");
add(L"f129", L"0 - ?f128");
add(L"f130", L"?f129 * ?f36");
add(L"f131", L"sqrt(?f127 * ?f127 + ?f130 * ?f130 + 0 * 0)");
add(L"f132", L"?f35 * ?f36 / ?f131");
add(L"f133", L"?f129 * ?f132");
add(L"f134", L"?f115 + ?f133");
add(L"f135", L"?f126 * ?f132");
add(L"f136", L"?f117 + ?f135");
add(L"f137", L"if(?f110, ?f65, ?f118)");
add(L"f138", L"if(?f110, ?f67, ?f119)");
add(L"f139", L"if(?f110, ?f65, ?f120)");
add(L"f140", L"if(?f110, ?f67, ?f121)");
add(L"f141", L"if(?f110, ?f118, ?f134)");
add(L"f142", L"if(?f110, ?f119, ?f136)");
add(L"f143", L"if(?f110, ?f120, ?f134)");
add(L"f144", L"if(?f110, ?f121, ?f136)");
add(L"f145", L"21550000 - -21600000");
add(L"f146", L"if(?f145, -21600000, 21550000)");
add(L"f147", L"-21550000 - ?f146");
add(L"f148", L"if(?f147, -21550000, ?f146)");
add(L"f149", L"?f0 + ?f148");
add(L"f150", L"?f0 + ?f1");
add(L"f151", L"?f150 * ?f12 / ?f0");
add(L"f152", L"0 - ?f151");
add(L"f153", L"cos(?f152)");
add(L"f154", L"0 - ?f153");
add(L"f155", L"?f154 * ?f14");
add(L"f156", L"sin(?f152)");
add(L"f157", L"0 - ?f156");
add(L"f158", L"?f157 * ?f15");
add(L"f159", L"sqrt(?f155 * ?f155 + ?f158 * ?f158 + 0 * 0)");
add(L"f160", L"?f14 * ?f15 / ?f159");
add(L"f161", L"?f157 * ?f160");
add(L"f162", L"?f68 - ?f161");
add(L"f163", L"?f154 * ?f160");
add(L"f164", L"?f7 - ?f163");
add(L"f165", L"?f162 - ?f14");
add(L"f166", L"?f164 - ?f15");
add(L"f167", L"?f162 + ?f14");
add(L"f168", L"?f164 + ?f15");
add(L"f169", L"?f149 + ?f1");
add(L"f170", L"?f169 * ?f12 / ?f0");
add(L"f171", L"0 - ?f170");
add(L"f172", L"cos(?f171)");
add(L"f173", L"0 - ?f172");
add(L"f174", L"?f173 * ?f14");
add(L"f175", L"sin(?f171)");
add(L"f176", L"0 - ?f175");
add(L"f177", L"?f176 * ?f15");
add(L"f178", L"sqrt(?f174 * ?f174 + ?f177 * ?f177 + 0 * 0)");
add(L"f179", L"?f14 * ?f15 / ?f178");
add(L"f180", L"?f176 * ?f179");
add(L"f181", L"?f162 + ?f180");
add(L"f182", L"?f173 * ?f179");
add(L"f183", L"?f164 + ?f182");
add(L"f184", L"if(?f148, ?f68, ?f165)");
add(L"f185", L"if(?f148, ?f7, ?f166)");
add(L"f186", L"if(?f148, ?f68, ?f167)");
add(L"f187", L"if(?f148, ?f7, ?f168)");
add(L"f188", L"if(?f148, ?f165, ?f181)");
add(L"f189", L"if(?f148, ?f166, ?f183)");
add(L"f190", L"if(?f148, ?f167, ?f181)");
add(L"f191", L"if(?f148, ?f168, ?f183)");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -344,7 +344,7 @@ void odf_chart_context::start_chart(office_element_ptr & root)
std::wstring style_name;
odf_element_state state={chart_elm, style_name, style_elm, level};
odf_chart_level_state level_state = {NULL,NULL,NULL,NULL,chart_elm};
odf_chart_level_state level_state = {NULL, NULL, NULL, NULL, chart_elm};
style* style_ = dynamic_cast<style*>(style_elm.get());
if (style_)
@ -366,18 +366,18 @@ void odf_chart_context::start_chart(office_element_ptr & root)
impl_->current_chart_state_.elements_.push_back(state);
}
void odf_chart_context::set_chart_size(double width_pt, double height_pt)
void odf_chart_context::set_chart_size(_CP_OPT(double) width_pt, _CP_OPT(double) height_pt)
{
if (width_pt <0.01 || height_pt < 0.01)return;
if (!width_pt && !height_pt) return;
impl_->current_chart_state_.chart_height_pt = height_pt;
impl_->current_chart_state_.chart_width_pt = width_pt;
impl_->current_chart_state_.chart_height_pt = *height_pt;
impl_->current_chart_state_.chart_width_pt = *width_pt;
chart_chart *chart = impl_->get_current_chart();
if (!chart)return;
chart->chart_chart_attlist_.common_draw_size_attlist_.svg_width_ = length(length(width_pt,length::pt).get_value_unit(length::cm),length::cm);
chart->chart_chart_attlist_.common_draw_size_attlist_.svg_height_ = length(length(height_pt,length::pt).get_value_unit(length::cm),length::cm);
chart->chart_chart_attlist_.common_draw_size_attlist_.svg_width_ = length(length(*width_pt,length::pt).get_value_unit(length::cm), length::cm);
chart->chart_chart_attlist_.common_draw_size_attlist_.svg_height_ = length(length(*height_pt,length::pt).get_value_unit(length::cm), length::cm);
}
void odf_chart_context::set_chart_type(std::wstring type)
{

View File

@ -58,19 +58,19 @@ public:
odf_drawing_context *drawing_context();
odf_text_context *text_context();
void start_chart(office_element_ptr & root);
void set_chart_type(std::wstring type);
void set_chart_3D(bool Val);
void set_chart_size(double width_pt, double height_pt);
void set_chart_colored(bool val);
void set_chart_grouping(int type);
void set_chart_scatter_type(int type);
void set_chart_bar_grouping(int type);
void start_chart (office_element_ptr & root);
void set_chart_type (std::wstring type);
void set_chart_3D (bool Val);
void set_chart_size (_CP_OPT(double) width_pt, _CP_OPT(double) height_pt);
void set_chart_colored (bool val);
void set_chart_grouping (int type);
void set_chart_scatter_type (int type);
void set_chart_bar_grouping (int type);
void set_chart_bar_direction(int type);
void set_chart_bar_type(int type);
void set_chart_bar_type (int type);
void set_chart_bar_gap_width(std::wstring val);
void set_chart_bar_overlap(std::wstring val);
void set_chart_radar_type(int type);
void set_chart_bar_overlap (std::wstring val);
void set_chart_radar_type (int type);
void set_chart_stock_candle_stick(bool val);
void set_marker_size(int size);
@ -81,26 +81,26 @@ public:
void start_group_series();
void add_axis_group_series(unsigned int id);
void start_series(std::wstring type);
void set_series_value_formula(std::wstring oox_formula);
void set_series_label_formula(std::wstring oox_formula);
void set_category_axis_formula(std::wstring oox_formula,int type);
void start_data_point_series(int count);
void start_series (std::wstring type);
void set_series_value_formula (std::wstring oox_formula);
void set_series_label_formula (std::wstring oox_formula);
void set_category_axis_formula (std::wstring oox_formula,int type);
void start_data_point_series (int count);
long get_count_data_points_series();
void set_series_pie_explosion(int val);
void end_series();
void end_group_series();
void set_label_name(std::wstring name);
void set_label_delete(bool val);
void set_label_show_bubble_size(bool val);
void set_label_show_cat_name(bool val);
void set_label_show_leader_line(bool val);
void set_label_show_legend_key(bool val);
void set_label_show_percent(bool val);
void set_label_show_ser_name(bool val);
void set_label_show_values(bool val);
void set_label_name (std::wstring name);
void set_label_delete (bool val);
void set_label_show_bubble_size (bool val);
void set_label_show_cat_name (bool val);
void set_label_show_leader_line (bool val);
void set_label_show_legend_key (bool val);
void set_label_show_percent (bool val);
void set_label_show_ser_name( bool val);
void set_label_show_values (bool val);
void start_axis();
void set_axis_id(unsigned int id);

View File

@ -177,6 +177,8 @@ struct odf_drawing_state
svg_width_ = boost::none;
name_ = L"";
description_ = L"";
hidden_ = false;
z_order_ = -1;
rotateAngle = boost::none;
@ -201,9 +203,10 @@ struct odf_drawing_state
_CP_OPT(length) svg_height_;
_CP_OPT(length) svg_width_;
std::wstring name_;
int z_order_;
std::wstring name_;
std::wstring description_;
int z_order_;
bool hidden_;
_CP_OPT(double) rotateAngle;
@ -342,10 +345,12 @@ void odf_drawing_context::start_group()
if (group== NULL)return;
//если группа топовая - то данные если не записать - сотруться
if (impl_->current_drawing_state_.name_.length() > 0)
if (!impl_->current_drawing_state_.name_.empty())
group->common_draw_attlists_.shape_with_text_and_styles_.common_draw_shape_with_styles_attlist_.common_draw_name_attlist_.draw_name_ = impl_->current_drawing_state_.name_;
if (impl_->current_drawing_state_.z_order_ >= 0)
group->common_draw_attlists_.shape_with_text_and_styles_.common_draw_shape_with_styles_attlist_.common_draw_z_index_attlist_.draw_z_index_ = impl_->current_drawing_state_.z_order_;
if (!impl_->current_drawing_state_.name_.empty())
group->common_draw_attlists_.shape_with_text_and_styles_.common_draw_shape_with_styles_attlist_.common_draw_name_attlist_.draw_name_ = impl_->current_drawing_state_.name_;
impl_->current_drawing_state_.name_ = L"";
impl_->current_drawing_state_.z_order_ = -1;
@ -956,9 +961,9 @@ void odf_drawing_context::end_frame()
/////////////////////
void odf_drawing_context::start_element(office_element_ptr & elm, office_element_ptr style_elm)
{
int level = impl_->current_level_.size();
int level = (int)impl_->current_level_.size();
if (impl_->current_level_.size()>0)
if (impl_->current_level_.size() > 0)
impl_->current_level_.back()->add_child_element(elm);
std::wstring style_name;
@ -968,13 +973,13 @@ void odf_drawing_context::start_element(office_element_ptr & elm, office_element
style_name = style_->style_name_;
impl_->current_graphic_properties = style_->style_content_.get_style_graphic_properties();
if (impl_->current_drawing_state_.name_.length() < 1)
if (impl_->current_drawing_state_.name_.empty())
{
impl_->current_drawing_state_.name_ = std::wstring(L"Object_") + style_name;
}
}
odf_element_state state={elm, style_name, style_elm, level};
odf_element_state state = {elm, style_name, style_elm, level};
impl_->current_drawing_state_.elements_.push_back(state);
impl_->current_level_.push_back(elm);
@ -1009,10 +1014,18 @@ void odf_drawing_context::end_line_properties()
// impl_->current_drawing_part_ = Unknown;
//}
////////////////////////////////////////////////////////////////////
void odf_drawing_context::set_name(std::wstring name)
void odf_drawing_context::set_name(const std::wstring & name)
{
impl_->current_drawing_state_.name_ = name;
}
void odf_drawing_context::set_description (const std::wstring & description)
{
impl_->current_drawing_state_.description_ = description;
}
void odf_drawing_context::set_hidden (bool bVal)
{
impl_->current_drawing_state_.hidden_ = bVal;
}
void odf_drawing_context::set_opacity(double percent_)
{
if (!impl_->current_graphic_properties)return;
@ -1125,7 +1138,7 @@ void odf_drawing_context::set_path(std::wstring path_string)
//boost::replace_all(path_string, L",", L"0"); // нужен разбор
//impl_->current_drawing_state_.path_ = path_string;
}
void odf_drawing_context::add_path_element(std::wstring command, std::wstring & strE)
void odf_drawing_context::add_path_element(std::wstring command, const std::wstring & strE)
{
if (command != impl_->current_drawing_state_.path_last_command_)
{
@ -1500,7 +1513,19 @@ void odf_drawing_context::set_position_line(_CP_OPT(double) & x_pt, _CP_OPT(doub
if (y2_pt && !line->draw_line_attlist_.svg_y2_) line->draw_line_attlist_.svg_y2_ = length(length(*y2_pt,length::pt).get_value_unit(length::cm),length::cm);
}
void odf_drawing_context::get_position(_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt)
{
if (impl_->current_drawing_state_.svg_x_ && impl_->current_drawing_state_.svg_y_)
{
x_pt = impl_->current_drawing_state_.svg_x_->get_value_unit(length::pt);
y_pt = impl_->current_drawing_state_.svg_y_->get_value_unit(length::pt);
}
else if (impl_->anchor_settings_.svg_x_ && impl_->anchor_settings_.svg_y_)
{
x_pt = impl_->anchor_settings_.svg_x_->get_value_unit(length::pt);
y_pt = impl_->anchor_settings_.svg_y_->get_value_unit(length::pt);
}
}
void odf_drawing_context::set_position(_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt)
{
if (x_pt)
@ -1516,7 +1541,7 @@ void odf_drawing_context::set_position(_CP_OPT(double) & x_pt, _CP_OPT(double) &
}
if (!impl_->current_drawing_state_.svg_x_ || impl_->current_drawing_state_.in_group)
{
impl_->current_drawing_state_.svg_x_ = length(length(x , length::pt).get_value_unit(length::cm),length::cm);
impl_->current_drawing_state_.svg_x_ = length(length(x , length::pt).get_value_unit(length::cm), length::cm);
}
}
@ -1538,7 +1563,7 @@ void odf_drawing_context::set_position(_CP_OPT(double) & x_pt, _CP_OPT(double) &
}
}
}
void odf_drawing_context::get_size( double & width_pt, double & height_pt)
void odf_drawing_context::get_size( _CP_OPT(double) & width_pt, _CP_OPT(double) & height_pt)
{
if (impl_->current_drawing_state_.svg_width_ && impl_->current_drawing_state_.svg_height_)
{
@ -1550,7 +1575,6 @@ void odf_drawing_context::get_size( double & width_pt, double & height_pt)
width_pt = impl_->anchor_settings_.svg_width_->get_value_unit(length::pt);
height_pt = impl_->anchor_settings_.svg_height_->get_value_unit(length::pt);
}
}
void odf_drawing_context::set_size( _CP_OPT(double) & width_pt, _CP_OPT(double) & height_pt)
{
@ -1840,14 +1864,14 @@ void odf_drawing_context::set_textarea_writing_mode(int mode)
}
void odf_drawing_context::set_textarea_padding(double left,double top, double right,double bottom)//in cm
void odf_drawing_context::set_textarea_padding(_CP_OPT(double) & left, _CP_OPT(double) & top, _CP_OPT(double) & right, _CP_OPT(double) & bottom)//in cm
{
if (!impl_->current_graphic_properties)return;
impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_left_ = length(left, length::cm);
impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_top_ = length(top, length::cm);
impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_right_ = length(right, length::cm);
impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_bottom_ = length(bottom,length::cm);
if (left) impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_left_ = length(*left, length::cm);
if (top) impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_top_ = length(*top, length::cm);
if (right) impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_right_ = length(*right,length::cm);
if (bottom) impl_->current_graphic_properties->content().common_padding_attlist_.fo_padding_bottom_ = length(*bottom,length::cm);
}

View File

@ -142,7 +142,7 @@ public:
bool is_exist_content();
//////////////////////////////////////////////////////////////////////////////////////
void set_path (std::wstring path_string);
void add_path_element (std::wstring command, std::wstring & elm);
void add_path_element (std::wstring command, const std::wstring & elm);
void add_modifier (std::wstring modifier);
void set_viewBox (double W, double H);
@ -151,14 +151,17 @@ public:
///////////////////////////////////////////////////////////////////////////////////////
void set_size ( _CP_OPT(double) & width_pt, _CP_OPT(double) & height_pt);
void get_position (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt);
void set_position (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt);
void set_position_line (_CP_OPT(double) & x_pt, _CP_OPT(double) & y_pt, _CP_OPT(double) & x1_pt, _CP_OPT(double) & y1_pt);
void get_size ( double & width_pt, double & height_pt);
void get_size ( _CP_OPT(double) & width_pt, _CP_OPT(double) & height_pt);
void set_size ( _CP_OPT(double) & width_pt, _CP_OPT(double) & height_pt);
void set_name (std::wstring name);
void set_name (const std::wstring & name);
void set_description (const std::wstring & descr);
void set_hidden (bool bVal);
void set_z_order (int id);
void set_flip_H (bool bVal);
@ -191,7 +194,7 @@ public:
void set_text (odf_text_context* text_context);
void set_textarea_vertical_align(int align);
void set_textarea_padding (double left,double top,double right,double bottom);//in cm
void set_textarea_padding (_CP_OPT(double) & left, _CP_OPT(double) & top, _CP_OPT(double) & right, _CP_OPT(double) & bottom);//in cm
void set_textarea_writing_mode (int mode);
void set_textarea_wrap (bool val);
void set_textarea_fontcolor (std::wstring hexColor);

View File

@ -147,7 +147,7 @@ void ods_conversion_context::set_sheet_dimension(const std::wstring & ref)
boost::algorithm::split(ref_cells, ref, boost::algorithm::is_any_of(L":"), boost::algorithm::token_compress_on);
int max_col = 0, max_row = 0;
for (long i = 0; i < ref_cells.size(); i++)
for (size_t i = 0; i < ref_cells.size(); i++)
{
int col = -1, row = -1;
utils::parsing_ref (ref_cells[i], col, row);

View File

@ -94,7 +94,7 @@ namespace utils {
bool f = true;
int res = 0;
for (int i = a.length() - 1; i >= 0; i--)
for (int i = (int)a.length() - 1; i >= 0; i--)
{
size_t v = a[i] - L'A';
if (f)
@ -108,10 +108,9 @@ namespace utils {
}
static int getRowAdderssInv(const std::wstring & a_)
{
int sz = a_.length();
if (a_.length()>0)
if (!a_.empty())
{
return boost::lexical_cast<int>(a_)-1;
return boost::lexical_cast<int>(a_.length())-1;
}
else
return 0;
@ -124,7 +123,7 @@ namespace utils {
XmlUtils::replace_all( a, L"$", L"");
XmlUtils::GetUpper(a);
for (int i = 0; i < a.length(); i++)
for (size_t i = 0; i < a.length(); i++)
{
if (a[i] >= L'0' && a[i] <= L'9')
row += a[i];
@ -136,12 +135,12 @@ namespace utils {
}
static void parsing_ref (std::wstring ref, int & col,int & row)
{
int pos = ref.rfind(L"!");//oox table name
int pos = (int)ref.rfind(L"!");//oox table name
if (pos >= 0)
ref = ref.substr(pos + 1);
else
{
pos = ref.rfind(L".");//odf table name
pos = (int)ref.rfind(L".");//odf table name
if (pos >= 0)
ref = ref.substr(pos + 1);
}
@ -241,7 +240,7 @@ public:
void start_group(office_element_ptr & elm);
void end_group();
int current_level() {return current_level_.size()-1;}
int current_level() {return (int)current_level_.size()-1;}
void start_headers(office_element_ptr & elm);
void end_headers();

View File

@ -448,7 +448,7 @@ void odt_conversion_context::set_master_page_name(std::wstring master_name)
int odt_conversion_context::get_current_section_columns()
{
if (sections_.size() > 0)
sections_.back().count_columns;
return sections_.back().count_columns;
else return 1;
}
void odt_conversion_context::add_section(bool continuous)

View File

@ -54,26 +54,31 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
{
switch (ooxPrstGeomType)
{
case SimpleTypes::shapetypeMathMultiply: return boost::make_shared<oox_shape_mathMultiply>();
case SimpleTypes::shapetypeSun: return boost::make_shared<oox_shape_sun>();
case SimpleTypes::shapetypeRound1Rect: return boost::make_shared<oox_shape_round1Rect>();
case SimpleTypes::shapetypeRound2DiagRect: return boost::make_shared<oox_shape_round2DiagRect>();
case SimpleTypes::shapetypeRound2SameRect: return boost::make_shared<oox_shape_round2SameRect>();
case SimpleTypes::shapetypeSnip1Rect: return boost::make_shared<oox_shape_snip1Rect>();
case SimpleTypes::shapetypeSnip2DiagRect: return boost::make_shared<oox_shape_snip2DiagRect>();
case SimpleTypes::shapetypeSnip2SameRect: return boost::make_shared<oox_shape_snip2SameRect>();
case SimpleTypes::shapetypeSnipRoundRect: return boost::make_shared<oox_shape_snipRoundRect>();
case SimpleTypes::shapetypeStar6: return boost::make_shared<oox_shape_star6>();
case SimpleTypes::shapetypeStar7: return boost::make_shared<oox_shape_star7>();
case SimpleTypes::shapetypeStar10: return boost::make_shared<oox_shape_star10>();
case SimpleTypes::shapetypeStar12: return boost::make_shared<oox_shape_star12>();
case SimpleTypes::shapetypeStar16: return boost::make_shared<oox_shape_star16>();
case SimpleTypes::shapetypeStar32: return boost::make_shared<oox_shape_star32>();
case SimpleTypes::shapetypeCurvedLeftArrow: return boost::make_shared<oox_shape_curvedLeftArrow>();
case SimpleTypes::shapetypeCurvedDownArrow: return boost::make_shared<oox_shape_curvedDownArrow>();
case SimpleTypes::shapetypeMathMultiply: return boost::make_shared<oox_shape_mathMultiply>();
case SimpleTypes::shapetypeSun: return boost::make_shared<oox_shape_sun>();
case SimpleTypes::shapetypeRound1Rect: return boost::make_shared<oox_shape_round1Rect>();
case SimpleTypes::shapetypeRound2DiagRect: return boost::make_shared<oox_shape_round2DiagRect>();
case SimpleTypes::shapetypeRound2SameRect: return boost::make_shared<oox_shape_round2SameRect>();
case SimpleTypes::shapetypeSnip1Rect: return boost::make_shared<oox_shape_snip1Rect>();
case SimpleTypes::shapetypeSnip2DiagRect: return boost::make_shared<oox_shape_snip2DiagRect>();
case SimpleTypes::shapetypeSnip2SameRect: return boost::make_shared<oox_shape_snip2SameRect>();
case SimpleTypes::shapetypeSnipRoundRect: return boost::make_shared<oox_shape_snipRoundRect>();
case SimpleTypes::shapetypeStar6: return boost::make_shared<oox_shape_star6>();
case SimpleTypes::shapetypeStar7: return boost::make_shared<oox_shape_star7>();
case SimpleTypes::shapetypeStar10: return boost::make_shared<oox_shape_star10>();
case SimpleTypes::shapetypeStar12: return boost::make_shared<oox_shape_star12>();
case SimpleTypes::shapetypeStar16: return boost::make_shared<oox_shape_star16>();
case SimpleTypes::shapetypeStar32: return boost::make_shared<oox_shape_star32>();
case SimpleTypes::shapetypeFunnel: return boost::make_shared<oox_shape_Funnel>();
case SimpleTypes::shapetypeGear6: return boost::make_shared<oox_shape_Gear6>();
case SimpleTypes::shapetypeGear9: return boost::make_shared<oox_shape_Gear9>();
case SimpleTypes::shapetypeCircularArrow: return boost::make_shared<oox_shape_CircularArrow>();
case SimpleTypes::shapetypeCurvedLeftArrow: return boost::make_shared<oox_shape_curvedLeftArrow>();
case SimpleTypes::shapetypeCurvedDownArrow: return boost::make_shared<oox_shape_curvedDownArrow>();
case SimpleTypes::shapetypeLeftCircularArrow: return boost::make_shared<oox_shape_LeftCircularArrow>();
case SimpleTypes::shapetypePlaque: return boost::make_shared<oox_shape_Plaque>();
case SimpleTypes::shapetypeDoubleWave: return boost::make_shared<oox_shape_DoubleWave>();
case SimpleTypes::shapetypePlaque: return boost::make_shared<oox_shape_Plaque>();
case SimpleTypes::shapetypeDoubleWave: return boost::make_shared<oox_shape_DoubleWave>();
//case (2001 + SimpleTypes::textshapetypeTextArchDown):

View File

@ -36,10 +36,19 @@
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
#include "../OdfFormat/odf_conversion_context.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
#include "../OdfFormat/odf_conversion_context.h"
#include "../OdfFormat/odf_text_context.h"
#include "../OdfFormat/odf_drawing_context.h"
#include "../OdfFormat/style_text_properties.h"
#include "../OdfFormat/style_paragraph_properties.h"
#define ARGB(a, r, g, b) ((unsigned int)( ( (unsigned char)(a) )| ( ( (unsigned char)(r) ) << 8 ) | ( ( (unsigned char)(g) ) << 16 ) | ( (unsigned char)(b) << 24 ) ) )
using namespace cpdoccore;
@ -53,16 +62,10 @@ void OoxConverter::convert(PPTX::Logic::SpTree *oox_shape_tree)
{
if (oox_shape_tree == NULL) return;
odf_context()->drawing_context()->start_group();
cpdoccore::_CP_OPT(double) x, y , ch_x , ch_y ;
odf_context()->drawing_context()->set_group_position(x, y, ch_x, ch_y);
for (long i=0 ;i < oox_shape_tree->SpTreeElems.size(); i++)
for (size_t i = 0; i < oox_shape_tree->SpTreeElems.size(); i++)
{
convert(oox_shape_tree->SpTreeElems[i].GetElem().operator->());
}
odf_context()->drawing_context()->end_group();
}
void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
@ -103,7 +106,7 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
{
odf_context()->start_text_context();
for (long i=0 ; i < oox_shape->txBody->Paragrs.size();i++)
for (size_t i = 0; i < oox_shape->txBody->Paragrs.size();i++)
{
convert(&oox_shape->txBody->Paragrs[i]);
}
@ -129,7 +132,6 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
{
if (oox_spPr == NULL) return;
bool use_fill_from_style = false;
bool use_line_from_style = false;
if (oox_spPr->xfrm.IsInit()) //CTransform2D
@ -162,23 +164,7 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
odf_context()->drawing_context()->start_area_properties();
{
PPTX::Logic::NoFill* noFill = &oox_spPr->Fill.as<PPTX::Logic::NoFill>();
PPTX::Logic::BlipFill* blipFill = &oox_spPr->Fill.as<PPTX::Logic::BlipFill>();
PPTX::Logic::GradFill* gradFill = &oox_spPr->Fill.as<PPTX::Logic::GradFill>();
PPTX::Logic::SolidFill* solidFill = &oox_spPr->Fill.as<PPTX::Logic::SolidFill>();
PPTX::Logic::PattFill* pattFill = &oox_spPr->Fill.as<PPTX::Logic::PattFill>();
if (solidFill) convert(solidFill);
else if (blipFill) convert(blipFill);
else if (gradFill) convert(gradFill);
else if (pattFill) convert(pattFill);
else if (noFill) odf_context()->drawing_context()->set_no_fill();
else use_fill_from_style = true;
if ( use_fill_from_style && oox_sp_style )
{
convert(&oox_sp_style->fillRef);
}
convert(&oox_spPr->Fill, oox_sp_style);
}
odf_context()->drawing_context()->end_area_properties();
@ -207,6 +193,32 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
//nullable<OOX::Drawing::CShape3D> Sp3D;
//-----------------------------------------------------------------------------------------------------------------------------
}
void OoxConverter::convert(PPTX::Logic::UniFill *oox_fill, PPTX::Logic::ShapeStyle* oox_sp_style)
{
if (oox_fill == NULL) return;
bool use_fill_from_style = false;
PPTX::Logic::NoFill* noFill = &oox_fill->as<PPTX::Logic::NoFill>();
PPTX::Logic::BlipFill* blipFill = &oox_fill->as<PPTX::Logic::BlipFill>();
PPTX::Logic::GradFill* gradFill = &oox_fill->as<PPTX::Logic::GradFill>();
PPTX::Logic::SolidFill* solidFill = &oox_fill->as<PPTX::Logic::SolidFill>();
PPTX::Logic::PattFill* pattFill = &oox_fill->as<PPTX::Logic::PattFill>();
if (solidFill) convert(solidFill);
else if (blipFill) convert(blipFill);
else if (gradFill) convert(gradFill);
else if (pattFill) convert(pattFill);
else if (noFill) odf_context()->drawing_context()->set_no_fill();
else use_fill_from_style = true;
if ( use_fill_from_style && oox_sp_style )
{
convert(&oox_sp_style->fillRef);
}
}
int OoxConverter::convert(PPTX::Logic::PrstTxWarp *oox_text_preset)
{
if (oox_text_preset == NULL) return -1;
@ -214,4 +226,619 @@ int OoxConverter::convert(PPTX::Logic::PrstTxWarp *oox_text_preset)
return 2001 + oox_text_preset->prst.GetBYTECode();
}
void OoxConverter::convert(PPTX::Logic::PrstGeom *oox_geom)
{
if (!oox_geom) return;
for (size_t i = 0; i < oox_geom->avLst.size(); i++)
{
if (oox_geom->avLst[i].fmla.IsInit())
odf_context()->drawing_context()->add_modifier(oox_geom->avLst[i].fmla.get());
}
}
void OoxConverter::convert(PPTX::Logic::CustGeom *oox_cust_geom)
{
if (!oox_cust_geom) return;
for (size_t i = 0; i < oox_cust_geom->pathLst.size(); i++)
{
convert(&oox_cust_geom->pathLst[i]);
}
}
void OoxConverter::convert(PPTX::Logic::Path2D *oox_geom_path)
{
if (!oox_geom_path) return;
odf_context()->drawing_context()->set_viewBox(oox_geom_path->w.get_value_or(0), oox_geom_path->h.get_value_or(0));
for (size_t i = 0 ; i < oox_geom_path->Paths.size(); i++)
{
PPTX::Logic::PathBase* pathBase = &oox_geom_path->Paths[i].Path2D.as<PPTX::Logic::PathBase>();
convert(pathBase);
}
odf_context()->drawing_context()->add_path_element(std::wstring(L"N"), L"");
}
void OoxConverter::convert(PPTX::Logic::PathBase *oox_path)
{
if (!oox_path) return;
PPTX::Logic::MoveTo* moveTo = static_cast<PPTX::Logic::MoveTo*> (oox_path);
PPTX::Logic::LineTo* lineTo = static_cast<PPTX::Logic::LineTo*> (oox_path);
PPTX::Logic::CubicBezTo* cubicBezTo = static_cast<PPTX::Logic::CubicBezTo*> (oox_path);
PPTX::Logic::Close* close = static_cast<PPTX::Logic::Close*> (oox_path);
PPTX::Logic::ArcTo* arcTo = static_cast<PPTX::Logic::ArcTo*> (oox_path);
PPTX::Logic::QuadBezTo* quadBezTo = static_cast<PPTX::Logic::QuadBezTo*> (oox_path);
if (moveTo)
{
std::wstring path_elm = moveTo->x + L" " + moveTo->y;
odf_context()->drawing_context()->add_path_element(std::wstring(L"M"), path_elm);
}
if (lineTo)
{
std::wstring path_elm = lineTo->x + L" " + lineTo->y;
odf_context()->drawing_context()->add_path_element(std::wstring(L"L"), path_elm);
}
if (cubicBezTo)
{
std::wstring path_elm = cubicBezTo->x1 + L" " + cubicBezTo->y1 + L" " +
cubicBezTo->x2 + L" " + cubicBezTo->y2 + L" " +
cubicBezTo->x3 + L" " + cubicBezTo->y3;
odf_context()->drawing_context()->add_path_element(std::wstring(L"C"), path_elm);
}
if (quadBezTo)
{
std::wstring path_elm = quadBezTo->x1 + L" " + quadBezTo->y1 + L" " +
quadBezTo->x2 + L" " + quadBezTo->y2;
odf_context()->drawing_context()->add_path_element(std::wstring(L"S"), path_elm);
}
if (arcTo)
{
}
if (close)
{
std::wstring path_elm ;
odf_context()->drawing_context()->add_path_element(std::wstring(L"Z"), path_elm);
}
}
void OoxConverter::convert(PPTX::Logic::BlipFill *oox_fill)
{
if (!oox_fill) return;
}
void OoxConverter::convert(PPTX::Logic::GradFill *oox_grad_fill)
{
if (!oox_grad_fill) return;
odf_context()->drawing_context()->start_gradient_style();
{
odf_types::gradient_style::type grad_style = odf_types::gradient_style::linear;
if ( (oox_grad_fill->lin.IsInit()) && (oox_grad_fill->lin->ang.IsInit()))
{
odf_context()->drawing_context()->set_gradient_angle(oox_grad_fill->lin->ang.get()/60000.);
}
if ( (oox_grad_fill->path.IsInit()) && (oox_grad_fill->path->path.IsInit()))
{
grad_style = odf_types::gradient_style::linear;
switch(oox_grad_fill->path->path->GetBYTECode())
{
case SimpleTypes::pathshadetypeCircle: grad_style = odf_types::gradient_style::radial; break;
case SimpleTypes::pathshadetypeRect: grad_style = odf_types::gradient_style::rectangular; break;
case SimpleTypes::pathshadetypeShape: grad_style = odf_types::gradient_style::square; break;
}
if (oox_grad_fill->path->rect.IsInit())
{
odf_context()->drawing_context()->set_gradient_rect( XmlUtils::GetInteger(oox_grad_fill->path->rect->l.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->t.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->r.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->b.get_value_or(L"")));
}
}
odf_context()->drawing_context()->set_gradient_type(grad_style);
if (oox_grad_fill->GsLst.size() > 1)
{
std::wstring hexColorStart, hexColorEnd;
_CP_OPT(double) opacityStart, opacityEnd;
convert(&oox_grad_fill->GsLst[0].color,hexColorEnd, opacityEnd);
convert(&oox_grad_fill->GsLst[oox_grad_fill->GsLst.size()-1].color,hexColorStart, opacityStart);
odf_context()->drawing_context()->set_gradient_start(hexColorStart, opacityStart);
odf_context()->drawing_context()->set_gradient_end (hexColorEnd, opacityEnd);
if (opacityStart || opacityEnd)
{
if (!opacityStart) opacityStart = 100;
if (!opacityEnd) opacityEnd = 100;
if (*opacityStart == *opacityEnd)
{
odf_context()->drawing_context()->set_opacity(*opacityStart);
}
else
{
odf_context()->drawing_context()->start_opacity_style();
odf_context()->drawing_context()->set_opacity_type (grad_style);
odf_context()->drawing_context()->set_opacity_start (*opacityStart);
odf_context()->drawing_context()->set_opacity_end (*opacityEnd);
if (grad_style == odf_types::gradient_style::linear)
{
odf_context()->drawing_context()->set_opacity_angle(oox_grad_fill->lin->ang.get()/60000.);
}
else
{
odf_context()->drawing_context()->set_opacity_rect ( XmlUtils::GetInteger(oox_grad_fill->path->rect->l.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->t.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->r.get_value_or(L"")),
XmlUtils::GetInteger(oox_grad_fill->path->rect->b.get_value_or(L"")));
}
odf_context()->drawing_context()->end_opacity_style();
}
}
}
}
odf_context()->drawing_context()->end_gradient_style();
}
void OoxConverter::convert(PPTX::Logic::UniColor * color, std::wstring & hexString, _CP_OPT(double) & opacity)
{
if (!color) return;
PPTX::Logic::SrgbClr *rgb = &color->as<PPTX::Logic::SrgbClr>();
PPTX::Logic::SchemeClr *scheme = &color->as<PPTX::Logic::SchemeClr>();
if (scheme)
{
int theme_ind = scheme->val.GetBYTECode();
BYTE ucA = 0, ucG = 0, ucB = 0, ucR = 0;
bool result = convert(theme_ind, ucA, ucG, ucB, ucR);
if (result == true)
{
scheme->SetRGB(ucR, ucG, ucB);
DWORD dwColor = scheme->ApplyModifiers(PPTX::Logic::ColorBase::ctARGB);
hexString = XmlUtils::IntToString(dwColor & 0x00FFFFFF, L"#%06X");
if ((dwColor >> 24) != 0xff)
{
opacity = ((dwColor >> 24) /255.) * 100.;
}
}
}
if (rgb)
{
}
}
void OoxConverter::convert(PPTX::Logic::SolidFill *oox_fill)
{
if (!oox_fill) return;
std::wstring hexString;
_CP_OPT(double) opacity;
convert(&oox_fill->Color, hexString, opacity);
odf_context()->drawing_context()->set_solid_fill(hexString);
if (opacity)
{
odf_context()->drawing_context()->set_opacity(*opacity);
}
}
void OoxConverter::convert(PPTX::Logic::PattFill *oox_fill)
{
if (!oox_fill) return;
}
void OoxConverter::convert(PPTX::Logic::EffectLst *oox_effect_lst)
{
if (!oox_effect_lst) return;
}
void OoxConverter::convert(PPTX::Logic::Ln *oox_line_prop)
{
if (!oox_line_prop) return;
convert (&oox_line_prop->Fill);
if (oox_line_prop->w.IsInit())
{
odf_context()->drawing_context()->set_line_width(oox_line_prop->w.get() / 12700.); //pt
}
if (oox_line_prop->headEnd.IsInit())
{
if (oox_line_prop->headEnd->len.IsInit() || oox_line_prop->headEnd->type.IsInit() || oox_line_prop->headEnd->w.IsInit())
{
int type = 0, w=1, len =1;//medium arrow
if (oox_line_prop->headEnd->len.IsInit()) len = oox_line_prop->headEnd->len->GetBYTECode();
if (oox_line_prop->headEnd->type.IsInit()) type = oox_line_prop->headEnd->type->GetBYTECode();
if (oox_line_prop->headEnd->w.IsInit()) w = oox_line_prop->headEnd->w->GetBYTECode();
odf_context()->drawing_context()->set_line_head(type, len, w);
}
}
if (oox_line_prop->tailEnd.IsInit())
{
if (oox_line_prop->tailEnd->len.IsInit() || oox_line_prop->tailEnd->type.IsInit() || oox_line_prop->tailEnd->w.IsInit())
{
int type =0, w=1, len =1;//medium arrow
if (oox_line_prop->tailEnd->len.IsInit()) len = oox_line_prop->tailEnd->len->GetBYTECode();
if (oox_line_prop->tailEnd->type.IsInit()) type = oox_line_prop->tailEnd->type->GetBYTECode();
if (oox_line_prop->tailEnd->w.IsInit()) w = oox_line_prop->tailEnd->w->GetBYTECode();
odf_context()->drawing_context()->set_line_tail(type, len, w);
}
}
//if (oox_line_prop->custDash.IsInit())
//{
// //через задание стиля и описание геометрии
//}
if (oox_line_prop->prstDash.IsInit() && oox_line_prop->prstDash->val.IsInit())
{
odf_context()->drawing_context()->set_line_dash_preset(oox_line_prop->prstDash->val->GetBYTECode());
}
//nullable<SimpleTypes::CPenAlignment<>> m_oAlgn;
//nullable<SimpleTypes::CLineCap<>> m_oCap;
//nullable<SimpleTypes::CCompoundLine<>> m_oCmpd;
//ELineJoinType m_eJoinType; // Тип соединения линий
//nullable<OOX::Drawing::CLineJoinBevel> m_oBevel;
//nullable<OOX::Drawing::CLineJoinMiterProperties> m_oMiter;
//nullable<OOX::Drawing::CLineJoinRound> m_oRound;
}
void OoxConverter::convert(PPTX::Logic::BodyPr *oox_bodyPr)
{
if (!oox_bodyPr) return;
if (oox_bodyPr->vert.IsInit())
{
odf_context()->drawing_context()->set_textarea_writing_mode (oox_bodyPr->vert->GetBYTECode());
}
if (oox_bodyPr->anchor.IsInit())
{
odf_context()->drawing_context()->set_textarea_vertical_align (oox_bodyPr->anchor->GetBYTECode());
}
_CP_OPT(double) lIns, tIns, rIns, bIns;
if (oox_bodyPr->lIns.IsInit()) lIns = oox_bodyPr->lIns.get() / 12700. / 28.34467120181406; //cm
if (oox_bodyPr->tIns.IsInit()) tIns = oox_bodyPr->tIns.get() / 12700. / 28.34467120181406;
if (oox_bodyPr->rIns.IsInit()) rIns = oox_bodyPr->rIns.get() / 12700. / 28.34467120181406;
if (oox_bodyPr->bIns.IsInit()) bIns = oox_bodyPr->bIns.get() / 12700. / 28.34467120181406;
odf_context()->drawing_context()->set_textarea_padding (lIns, tIns, rIns, bIns);
if (oox_bodyPr->wrap.IsInit())
odf_context()->drawing_context()->set_textarea_wrap(oox_bodyPr->wrap->GetBYTECode());
if ((oox_bodyPr->numCol.IsInit()) && (oox_bodyPr->numCol.get() > 1))
{
//+ style section
//+element text:section в котором параграфы
}
//if (oox_bodyPr->spAutoFit.IsInit())
//{
// //изменяемы размеры
// odf_context()->drawing_context()->set_text_box_min_size(true);//уже выставленые в min
//}
if (oox_bodyPr->fromWordArt.IsInit() && oox_bodyPr->prstTxWarp.IsInit())
{
for (size_t i = 0; i < oox_bodyPr->prstTxWarp->avLst.size(); i++)
{
if (oox_bodyPr->prstTxWarp->avLst[i].fmla.IsInit())
{
odf_context()->drawing_context()->add_modifier(oox_bodyPr->prstTxWarp->avLst[i].fmla.get());
}
}
}
}
void OoxConverter::convert(PPTX::Logic::NvSpPr *oox_nvSpPr)
{
if (!oox_nvSpPr) return;
convert (&oox_nvSpPr->cNvPr);
convert (&oox_nvSpPr->cNvSpPr);
convert (&oox_nvSpPr->nvPr);
}
void OoxConverter::convert(PPTX::Logic::CNvPr *oox_cnvPr)
{
if (!oox_cnvPr) return;
odf_context()->drawing_context()->set_name(oox_cnvPr->name);
if (oox_cnvPr->descr.IsInit())
{
odf_context()->drawing_context()->set_description(oox_cnvPr->descr.get());
}
if (oox_cnvPr->hidden.IsInit())
{
odf_context()->drawing_context()->set_hidden(oox_cnvPr->hidden.get());
}
if (oox_cnvPr->hlinkClick.IsInit())
{
}
//nullable_string title;
//nullable<Hyperlink> hlinkHover;
}
void OoxConverter::convert(PPTX::Logic::CNvSpPr *oox_cnvSpPr)
{
if (!oox_cnvSpPr) return;
}
void OoxConverter::convert(PPTX::Logic::NvPr *oox_nvPr)
{
if (!oox_nvPr) return;
}
void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph)
{
if (!oox_paragraph)return;
bool styled = false;
if (oox_paragraph->pPr.IsInit())
{
odf_writer::style_paragraph_properties * paragraph_properties = odf_context()->text_context()->get_paragraph_properties();
//свойства могут быть приписаны не только к параграфу, но и к самому объекту
if (!paragraph_properties)
{
odf_context()->styles_context()->create_style(L"",odf_types::style_family::Paragraph, true, false, -1);
paragraph_properties = odf_context()->styles_context()->last_state()->get_paragraph_properties();
styled = true;
}
convert(oox_paragraph->pPr.GetPointer(), paragraph_properties);
}
odf_context()->text_context()->start_paragraph(styled);
for (size_t i=0; i< oox_paragraph->RunElems.size();i++)
{
convert(&oox_paragraph->RunElems[i].as<OOX::WritingElement>());
}
odf_context()->text_context()->end_paragraph();
}
void OoxConverter::convert(PPTX::Logic::TextParagraphPr *oox_paragraph_pr, odf_writer::style_paragraph_properties * paragraph_properties)
{
if (!oox_paragraph_pr) return;
if (!paragraph_properties) return;
if (oox_paragraph_pr->lnSpc.IsInit())
{
odf_types::length_or_percent length;
convert(oox_paragraph_pr->lnSpc.GetPointer(), length);
paragraph_properties->content().fo_line_height_ = odf_types::line_width(length);
}
if (oox_paragraph_pr->spcAft.IsInit())
{
odf_types::length_or_percent length;
convert(oox_paragraph_pr->spcAft.GetPointer(), length);
paragraph_properties->content().fo_margin_bottom_ = length;
}
if (oox_paragraph_pr->spcBef.IsInit())
{
odf_types::length_or_percent length;
convert(oox_paragraph_pr->spcBef.GetPointer(), length);
paragraph_properties->content().fo_margin_top_ = length;
}
if (oox_paragraph_pr->algn.IsInit())
{
switch(oox_paragraph_pr->algn->GetBYTECode())
{
case 0 : paragraph_properties->content().fo_text_align_ = odf_types::text_align(odf_types::text_align::Center); break;
case 1 :
case 2 :
case 3 : paragraph_properties->content().fo_text_align_ = odf_types::text_align(odf_types::text_align::Justify); break;
case 5 : paragraph_properties->content().fo_text_align_ = odf_types::text_align(odf_types::text_align::Right); break;
case 4 :
default:
paragraph_properties->content().fo_text_align_ = odf_types::text_align(odf_types::text_align::Left); break;
}
}
if (oox_paragraph_pr->marL.IsInit())
{
paragraph_properties->content().fo_margin_left_ = odf_types::length_or_percent(odf_types::length(oox_paragraph_pr->marL.get() / 12700., odf_types::length::pt));
}
if (oox_paragraph_pr->marR.IsInit())
{
paragraph_properties->content().fo_margin_right_ = odf_types::length_or_percent(odf_types::length(oox_paragraph_pr->marR.get() / 12700., odf_types::length::pt));
}
if (oox_paragraph_pr->indent.IsInit())
{
paragraph_properties->content().fo_text_indent_ = odf_types::length_or_percent(odf_types::length(oox_paragraph_pr->indent.get() / 12700., odf_types::length::pt));
}
if (oox_paragraph_pr->rtl.IsInit())
{
}
//nullable<SimpleTypes::CDecimalNumber<> > m_oLvl;
//nullable<SimpleTypes::CCoordinate32<> > m_oDefTabSz;
//nullable<SimpleTypes::CTextFontAlignType<>> m_oFontAlgn;
if (oox_paragraph_pr->defRPr.IsInit())//может быть пустым !!!
{
odf_writer::style_text_properties * text_properties = odf_context()->text_context()->get_text_properties();
if (text_properties)
convert(oox_paragraph_pr->defRPr.GetPointer(), text_properties);
//надо подумать как брать последний по family !!!
//convert(oox_paragraph_pr->m_oDefRunProperty.GetPointer());
//odf_context()->text_context()->set_parent_span_style(odf_context()->styles_context()->last_state().get_name());
}
}
void OoxConverter::convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent)
{
if (!oox_spacing) return;
if ( oox_spacing->spcPct.IsInit() )
{
odf_types::percent percent = odf_types::percent(oox_spacing->GetVal());
length_or_percent = odf_types::length_or_percent(percent);
}
if ( oox_spacing->spcPts.IsInit() )
{
odf_types::length length = odf_types::length(oox_spacing->GetVal() / 12700., odf_types::length::pt);
length_or_percent = odf_types::length_or_percent(length);
}}
void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::style_text_properties * text_properties)
{
if (!oox_run_pr) return;
if (!text_properties) return;
if (oox_run_pr->b.IsInit())
{
if (oox_run_pr->b.get() == true)
text_properties->content().fo_font_weight_ = odf_types::font_weight(odf_types::font_weight::WBold);
else
text_properties->content().fo_font_weight_ = odf_types::font_weight(odf_types::font_weight::WNormal);
}
PPTX::Logic::SolidFill* solidFill = &oox_run_pr->Fill.as<PPTX::Logic::SolidFill>();
if (solidFill)
{
std::wstring hexColor;
_CP_OPT(double) opacity;
convert(&solidFill->Color, hexColor, opacity);
text_properties->content().fo_color_ = odf_types::color(std::wstring(L"#") + hexColor);
}
if (oox_run_pr->i.IsInit())
{
if (oox_run_pr->i.get() ==true)
text_properties->content().fo_font_style_ = odf_types::font_style(odf_types::font_style::Italic);
else
text_properties->content().fo_font_style_ = odf_types::font_style(odf_types::font_style::Normal);
}
if (oox_run_pr->sz.IsInit())
{
convert(oox_run_pr->sz.get()/100., text_properties->content().fo_font_size_);
convert(oox_run_pr->sz.get()/100., text_properties->content().style_font_size_asian_);
convert(oox_run_pr->sz.get()/100., text_properties->content().style_font_size_complex_);
}
if (oox_run_pr->latin.IsInit())
{
if (!oox_run_pr->latin->typeface.empty())
text_properties->content().fo_font_family_ = oox_run_pr->latin->typeface;
else
{
text_properties->content().fo_font_family_ = L"Calibri";//default_font; ????
}
}
if (oox_run_pr->ea.IsInit())
{
if (!oox_run_pr->ea->typeface.empty())
text_properties->content().style_font_family_asian_ = oox_run_pr->ea->typeface;
else
{
}
}
if (oox_run_pr->cs.IsInit())
{
if (!oox_run_pr->cs->typeface.empty())
text_properties->content().style_font_family_complex_ = oox_run_pr->cs->typeface;
else
{
}
}
if (oox_run_pr->lang.IsInit())
{
std::wstring oox_language = oox_run_pr->lang.get(), oox_country;
int res = oox_language.find(L"-");
if (res >= 0)
{
oox_country = oox_language.substr(res);
oox_language = oox_language.substr(0, res);
}
text_properties->content().fo_language_ = oox_language;
if (oox_country.length() > 0)
text_properties->content().fo_country_ = oox_country;
}
if (oox_run_pr->spc.IsInit())
{
text_properties->content().fo_letter_spacing_ = odf_types::letter_spacing(odf_types::length(oox_run_pr->spc.get()/100., odf_types::length::pt));
}
if (oox_run_pr->u.IsInit())
{
text_properties->content().style_text_underline_style_ = odf_types::line_style (odf_types::line_style::Solid);
text_properties->content().style_text_underline_type_ = odf_types::line_type (odf_types::line_type::Single);
switch(oox_run_pr->u->GetBYTECode())
{
case SimpleTypes::underlineNone :
text_properties->content().style_text_underline_type_= odf_types::line_type(odf_types::line_type::None);break;
case SimpleTypes::underlineDash :
case SimpleTypes::underlineDashedHeavy:
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::Dash);break;
case SimpleTypes::underlineDotDash :
case SimpleTypes::underlineDashDotHeavy:
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::DotDash);break;
case SimpleTypes::underlineDashLong:
case SimpleTypes::underlineDashLongHeavy:
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::LongDash);break;
case SimpleTypes::underlineDotDotDash:
case SimpleTypes::underlineDashDotDotHeavy :
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::DotDotDash);break;
case SimpleTypes::underlineDotted:
case SimpleTypes::underlineDottedHeavy:
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::Dotted);break;
case SimpleTypes::underlineWave :
case SimpleTypes::underlineWavyHeavy :
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::Wave);break;
case SimpleTypes::underlineDouble :
case SimpleTypes::underlineThick :
text_properties->content().style_text_underline_type_= odf_types::line_type(odf_types::line_type::Double);break;
case SimpleTypes::underlineWavyDouble :
text_properties->content().style_text_underline_type_= odf_types::line_type(odf_types::line_type::Double);
text_properties->content().style_text_underline_style_ = odf_types::line_style(odf_types::line_style::Wave);break;
}
}
}
void OoxConverter::convert(PPTX::Logic::Run *oox_run)
{
if (!oox_run) return;
bool styled = false;
if (oox_run->rPr.IsInit())
{
odf_writer::style_text_properties * text_properties = odf_context()->text_context()->get_text_properties();
if (!text_properties)
{
odf_context()->styles_context()->create_style(L"", odf_types::style_family::Text, true, false, -1);
text_properties = odf_context()->styles_context()->last_state()->get_text_properties();
styled = true;
}
convert(oox_run->rPr.GetPointer(), text_properties);
}
odf_context()->text_context()->start_span(styled);
odf_context()->text_context()->add_text_content( oox_run->GetText());
odf_context()->text_context()->end_span();
}
void OoxConverter::convert(PPTX::Logic::Fld *oox_fld)
{
if (!oox_fld) return;
}
void OoxConverter::convert(PPTX::Logic::Br *oox_br)
{
if (!oox_br) return;
}
void OoxConverter::convert(PPTX::Logic::MathParaWrapper *oox_math)
{
if (!oox_math) return;
}
}

View File

@ -643,10 +643,14 @@ void OoxConverter::convert(OOX::Vml::CTextbox *vml_textbox)
if (vml_textbox->m_oInsetMode.GetValue() == SimpleTypes::insetmodeCustom)
{
odf_context()->drawing_context()->set_textarea_padding(odf_types::length(vml_textbox->m_oInset.GetLeft(0), odf_types::length::pt).get_value_unit(odf_types::length::cm),
odf_types::length(vml_textbox->m_oInset.GetTop(0), odf_types::length::pt).get_value_unit(odf_types::length::cm),
odf_types::length(vml_textbox->m_oInset.GetRight(0), odf_types::length::pt).get_value_unit(odf_types::length::cm),
odf_types::length(vml_textbox->m_oInset.GetBottom(0), odf_types::length::pt).get_value_unit(odf_types::length::cm));
_CP_OPT(double) lIns, tIns, rIns, bIns;
lIns = odf_types::length(vml_textbox->m_oInset.GetLeft(0),odf_types::length::pt).get_value_unit(odf_types::length::cm);
tIns = odf_types::length(vml_textbox->m_oInset.GetTop(0), odf_types::length::pt).get_value_unit(odf_types::length::cm);
rIns = odf_types::length(vml_textbox->m_oInset.GetRight(0), odf_types::length::pt).get_value_unit(odf_types::length::cm);
bIns = odf_types::length(vml_textbox->m_oInset.GetBottom(0), odf_types::length::pt).get_value_unit(odf_types::length::cm);
odf_context()->drawing_context()->set_textarea_padding (lIns, tIns, rIns, bIns);
}
odf_context()->drawing_context()->set_textarea_wrap(true);

View File

@ -52,6 +52,11 @@
#include "../../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Docx.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramData.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
#define PROGRESSEVENT_ID 0
namespace Oox2Odf
@ -132,6 +137,11 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
switch(oox_unknown->getType())
{
case OOX::et_dgm_DiagrammParts:
{
OOX::Drawing::CDiagrammParts* pDiagrammParts = static_cast<OOX::Drawing::CDiagrammParts*>(oox_unknown);
convert(pDiagrammParts);
}break;
case OOX::et_a_Shape:
{
OOX::Drawing::CShape* pShape = static_cast<OOX::Drawing::CShape*>(oox_unknown);
@ -252,7 +262,37 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
{
//бяка
}break;
case OOX::et_p_ShapeTree:
{
PPTX::Logic::SpTree *spTree = static_cast<PPTX::Logic::SpTree *>(oox_unknown);
convert(spTree);
}break;
case OOX::et_p_Shape:
{
PPTX::Logic::Shape *shape = static_cast<PPTX::Logic::Shape *>(oox_unknown);
convert(shape);
}break;
case OOX::et_p_r:
{
PPTX::Logic::Run* pRun= static_cast<PPTX::Logic::Run*>(oox_unknown);
convert(pRun);
}break;
case OOX::et_p_fld:
{
PPTX::Logic::Fld* pFld= static_cast<PPTX::Logic::Fld*>(oox_unknown);
convert(pFld);
}break;
case OOX::et_p_br:
{
PPTX::Logic::Br* pBr= static_cast<PPTX::Logic::Br*>(oox_unknown);
convert(pBr);
}break;
case OOX::et_p_MathPara:
{
PPTX::Logic::MathParaWrapper* pMathPara= static_cast<PPTX::Logic::MathParaWrapper*>(oox_unknown);
convert(pMathPara);
}break;
default:
{
_CP_LOG << L"[warning] : no convert element(" << oox_unknown->getType() << L")\n";
@ -311,7 +351,7 @@ void OoxConverter::convert(OOX::Drawing::CShape *oox_shape)
odf_context()->start_text_context();
convert(oox_shape->m_oTxSp->m_oTxBody->m_oBodyPr.GetPointer());
for (unsigned int i=0 ; i < oox_shape->m_oTxSp->m_oTxBody->m_arrItems.size();i++)
for (size_t i=0 ; i < oox_shape->m_oTxSp->m_oTxBody->m_arrItems.size();i++)
{
convert(oox_shape->m_oTxSp->m_oTxBody->m_arrItems[i]);
}
@ -324,6 +364,58 @@ void OoxConverter::convert(OOX::Drawing::CShape *oox_shape)
odf_context()->drawing_context()->end_drawing();
}
void OoxConverter::convert(OOX::Drawing::CDiagrammParts *oox_diagramm)
{
if (oox_diagramm == NULL)return;
if (oox_diagramm->m_oRId_Data.IsInit() == false) return;
smart_ptr<OOX::File> oFile = find_file_by_id(oox_diagramm->m_oRId_Data->GetValue());
NSCommon::nullable<std::wstring> id_drawing;
if (oFile.IsInit())
{
OOX::CDiagramData* pDiagData = dynamic_cast<OOX::CDiagramData*>(oFile.operator->());
if ((pDiagData) && (pDiagData->m_oExtLst.IsInit()))
{
for (size_t i = 0 ; i < pDiagData->m_oExtLst->m_arrExt.size(); i++)
{
if ( pDiagData->m_oExtLst->m_arrExt[i]->m_oDataModelExt.IsInit())
{
id_drawing = pDiagData->m_oExtLst->m_arrExt[i]->m_oDataModelExt->m_oRelId;
break;
}
}
}
}
if (id_drawing.is_init() == false) return;
oFile = find_file_by_id( *id_drawing );
if (oFile.is_init() && OOX::FileTypes::DiagDrawing == oFile->type())
{
_CP_OPT(double) x, y, width, height, cx = 0, cy = 0;
odf_context()->drawing_context()->get_size (width, height);
odf_context()->drawing_context()->get_position (x, y);
OOX::CDiagramDrawing * diag_drawing = dynamic_cast<OOX::CDiagramDrawing*>(oFile.operator->());
oox_current_child_document = diag_drawing;
odf_context()->drawing_context()->start_group();
odf_context()->drawing_context()->set_group_size (width, height, width, height);
odf_context()->drawing_context()->set_group_position (x, y, cx, cy);
convert(diag_drawing->m_oShapeTree.GetPointer());
odf_context()->drawing_context()->end_group();
oox_current_child_document = NULL;
}
}
void OoxConverter::convert(OOX::Drawing::CLockedCanvas *oox_canvas)
{
if (oox_canvas == NULL)return;
@ -339,7 +431,7 @@ void OoxConverter::convert(OOX::Drawing::CLockedCanvas *oox_canvas)
convert(oox_canvas->m_oGroupSpPr.GetPointer());
convert(oox_canvas->m_oSpPr.GetPointer());
for (unsigned int i=0; i < oox_canvas->m_arrItems.size(); i++)
for (size_t i = 0; i < oox_canvas->m_arrItems.size(); i++)
{
convert(oox_canvas->m_arrItems[i]);
}
@ -386,7 +478,6 @@ void OoxConverter::convert(OOX::Drawing::CGroupShapeProperties * oox_group_spP
if (oox_group_spPr->m_oXfrm->m_oRot.GetValue() > 0)
odf_context()->drawing_context()->set_group_rotate(oox_group_spPr->m_oXfrm->m_oRot.GetValue());
}
}
void OoxConverter::convert(OOX::Drawing::CFontReference *style_font_ref)
{
@ -535,13 +626,13 @@ void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr, OOX::Dra
}
switch(oox_spPr->m_eGeomType)
{
case OOX::Drawing::geomtypeCustom :
case OOX::Drawing::geomtypeCustom :
if(oox_spPr->m_oCustGeom.IsInit())convert(oox_spPr->m_oCustGeom.GetPointer());break;
case OOX::Drawing::geomtypePreset:
case OOX::Drawing::geomtypePreset:
if(oox_spPr->m_oPrstGeom.IsInit())convert(oox_spPr->m_oPrstGeom.GetPointer());break;
case OOX::Drawing::geomtypeUnknown:
default:
break;
case OOX::Drawing::geomtypeUnknown:
default:
break;
}
odf_context()->drawing_context()->start_area_properties();
{
@ -599,16 +690,16 @@ void OoxConverter::convert(OOX::Drawing::CNonVisualDrawingProps * oox_cnvPr)
odf_context()->drawing_context()->set_name(name);
}
//nullable<std::wstring> m_sDescr;
//nullable<SimpleTypes::COnOff<>> m_oHidden;
//nullable<std::wstring> m_sTitle;
//nullable<std::wstring> m_sDescr;
//nullable<SimpleTypes::COnOff<>> m_oHidden;
//nullable<std::wstring> m_sTitle;
}
void OoxConverter::convert(OOX::Drawing::CCustomGeometry2D *oox_cust_geom)
{
if (!oox_cust_geom)return;
for (unsigned int i=0; i< oox_cust_geom->m_oPthLst.m_arrPath.size();i++)
for (size_t i = 0; i < oox_cust_geom->m_oPthLst.m_arrPath.size(); i++)
{
convert(oox_cust_geom->m_oPthLst.m_arrPath[i]);
}
@ -635,9 +726,9 @@ void OoxConverter::convert(OOX::Drawing::CLineProperties *oox_line_prop, std::ws
if (oox_line_prop->m_oHeadEnd->m_oLen.IsInit() || oox_line_prop->m_oHeadEnd->m_oType.IsInit() || oox_line_prop->m_oHeadEnd->m_oW.IsInit())
{
int type = 0, w=1, len =1;//medium arrow
if (oox_line_prop->m_oHeadEnd->m_oLen.IsInit()) len = oox_line_prop->m_oHeadEnd->m_oLen->GetValue();
if (oox_line_prop->m_oHeadEnd->m_oType.IsInit()) type = oox_line_prop->m_oHeadEnd->m_oType->GetValue();
if (oox_line_prop->m_oHeadEnd->m_oW.IsInit()) w=oox_line_prop->m_oHeadEnd->m_oW->GetValue();
if (oox_line_prop->m_oHeadEnd->m_oLen.IsInit()) len = oox_line_prop->m_oHeadEnd->m_oLen->GetValue();
if (oox_line_prop->m_oHeadEnd->m_oType.IsInit()) type = oox_line_prop->m_oHeadEnd->m_oType->GetValue();
if (oox_line_prop->m_oHeadEnd->m_oW.IsInit()) w = oox_line_prop->m_oHeadEnd->m_oW->GetValue();
odf_context()->drawing_context()->set_line_head(type, len, w);
}
@ -647,9 +738,9 @@ void OoxConverter::convert(OOX::Drawing::CLineProperties *oox_line_prop, std::ws
if (oox_line_prop->m_oTailEnd->m_oLen.IsInit() || oox_line_prop->m_oTailEnd->m_oType.IsInit() || oox_line_prop->m_oTailEnd->m_oW.IsInit())
{
int type =0, w=1, len =1;//medium arrow
if (oox_line_prop->m_oTailEnd->m_oLen.IsInit()) len = oox_line_prop->m_oTailEnd->m_oLen->GetValue();
if (oox_line_prop->m_oTailEnd->m_oType.IsInit()) type = oox_line_prop->m_oTailEnd->m_oType->GetValue();
if (oox_line_prop->m_oTailEnd->m_oW.IsInit()) w = oox_line_prop->m_oTailEnd->m_oW->GetValue();
if (oox_line_prop->m_oTailEnd->m_oLen.IsInit()) len = oox_line_prop->m_oTailEnd->m_oLen->GetValue();
if (oox_line_prop->m_oTailEnd->m_oType.IsInit()) type = oox_line_prop->m_oTailEnd->m_oType->GetValue();
if (oox_line_prop->m_oTailEnd->m_oW.IsInit()) w = oox_line_prop->m_oTailEnd->m_oW->GetValue();
odf_context()->drawing_context()->set_line_tail(type, len, w);
}
@ -681,7 +772,7 @@ void OoxConverter::convert(OOX::Drawing::CPresetGeometry2D *oox_prst_geom)
if (oox_prst_geom->m_oAvLst.IsInit())
{
for (unsigned int i=0; i<oox_prst_geom->m_oAvLst->m_arrGd.size(); i++)
for (size_t i = 0; i < oox_prst_geom->m_oAvLst->m_arrGd.size(); i++)
{
if (oox_prst_geom->m_oAvLst->m_arrGd[i] == NULL) continue;
odf_context()->drawing_context()->add_modifier(oox_prst_geom->m_oAvLst->m_arrGd[i]->m_oFmla.GetValue());
@ -694,13 +785,12 @@ void OoxConverter::convert(OOX::Drawing::CPath2D *oox_geom_path)
odf_context()->drawing_context()->set_viewBox(oox_geom_path->m_oW.GetValue(), oox_geom_path->m_oH.GetValue());
for (unsigned int i =0 ; i< oox_geom_path->m_arrItems.size(); i++)
for (size_t i = 0 ; i < oox_geom_path->m_arrItems.size(); i++)
{
convert(oox_geom_path->m_arrItems[i]);
}
std::wstring path_elm ;
odf_context()->drawing_context()->add_path_element(std::wstring(L"N"), path_elm);
odf_context()->drawing_context()->add_path_element(std::wstring(L"N"), L"");
}
//-----------------------------------------------------------------------------------------------------------------
@ -708,7 +798,7 @@ void OoxConverter::convert(OOX::Drawing::CEffectList *oox_effect_list, std::wstr
{
if (oox_effect_list == NULL) return;
for (unsigned int i=0;i< oox_effect_list->m_arrEffects.size(); i++)
for (size_t i = 0; i < oox_effect_list->m_arrEffects.size(); i++)
{
switch(oox_effect_list->m_arrEffects[i]->getType())
{
@ -806,7 +896,7 @@ void OoxConverter::convert(OOX::Drawing::CBlipFillProperties *oox_bitmap_fill, s
sID = oox_bitmap_fill->m_oBlip->m_oLink.GetValue();
//...
}
for (unsigned int i=0 ; i < oox_bitmap_fill->m_oBlip->m_arrEffects.size(); i++)
for (size_t i = 0 ; i < oox_bitmap_fill->m_oBlip->m_arrEffects.size(); i++)
convert(oox_bitmap_fill->m_oBlip->m_arrEffects[i]);
}
if (oox_bitmap_fill->m_oSrcRect.IsInit() && Width >0 && Height >0)//часть изображения
@ -968,7 +1058,7 @@ void OoxConverter::convert(OOX::Drawing::CPatternFillProperties *oox_pattern_fil
odf_context()->drawing_context()->end_hatch_style();
}
void OoxConverter::convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fill,std::wstring & hexColor , _CP_OPT(double) &opacity)
void OoxConverter::convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fill, std::wstring & hexColor , _CP_OPT(double) &opacity)
{
switch( oox_solid_fill->m_eType )
{
@ -980,7 +1070,7 @@ void OoxConverter::convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fi
case OOX::Drawing::colorSys: convert(&oox_solid_fill->m_oSysClr, hexColor, opacity); break;
}
}
void OoxConverter::convert(OOX::Drawing::CColor *oox_color,std::wstring & hexColor , _CP_OPT(double) &opacity)
void OoxConverter::convert(OOX::Drawing::CColor *oox_color, std::wstring & hexColor , _CP_OPT(double) &opacity)
{
switch( oox_color->m_eType )
{
@ -1012,7 +1102,7 @@ void OoxConverter::convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fi
}
}
void OoxConverter::convert(OOX::Drawing::Colors::CColorTransform *oox_Clr, std::wstring & hexString, _CP_OPT(double) &opacity)
void OoxConverter::convert(OOX::Drawing::Colors::CColorTransform *oox_Clr, std::wstring & hexString, _CP_OPT(double) &opacity)
{
if (!oox_Clr)return;
BYTE ucA=0, ucG=0, ucB=0, ucR =0;
@ -1026,18 +1116,15 @@ void OoxConverter::convert(OOX::Drawing::Colors::CColorTransform *oox_Clr, s
}
if (ucA !=255)opacity = (ucA/255.)* 100.;
}
void OoxConverter::convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::wstring & hexString, _CP_OPT(double) &opacity)
bool OoxConverter::convert(int indexSchemeColor, BYTE& ucA, BYTE& ucG, BYTE& ucB, BYTE& ucR)
{
OOX::CTheme * theme= oox_theme();
if (!oox_ShemeClr || !theme)return;
int theme_ind = oox_ShemeClr->m_oVal.GetValue();
BYTE ucA=0, ucG=0, ucB=0, ucR =0;
if (!theme)return false;
bool result = false;
switch(theme_ind)
switch(indexSchemeColor)
{
case SimpleTypes::shemecolorvalLt1:
case SimpleTypes::shemecolorvalBg1:
@ -1068,6 +1155,17 @@ void OoxConverter::convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::ws
case SimpleTypes::shemecolorvalHlink:
result = theme->m_oThemeElements.m_oClrScheme.m_oHlink.tryGetRgb(ucR, ucG, ucB, ucA); break;
}
return result;
}
void OoxConverter::convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::wstring & hexString, _CP_OPT(double) &opacity)
{
if (!oox_ShemeClr)return;
int theme_ind = oox_ShemeClr->m_oVal.GetValue();
BYTE ucA = 0, ucG = 0, ucB = 0, ucR = 0;
bool result = convert(theme_ind, ucA, ucG, ucB, ucR);
if (result == true)
{
oox_ShemeClr->SetRGBA(ucR,ucG,ucB,ucA);
@ -1079,7 +1177,7 @@ void OoxConverter::convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::ws
hexString = oRgbColor->ToString().substr(2);//.Right(6);
delete oRgbColor;
}
if (ucA !=255)opacity = (ucA/255.)* 100.;
if ( ucA != 0xff )opacity = (ucA / 255.) * 100.;
}
}
void OoxConverter::convert(OOX::Drawing::CPath2DLineTo *oox_geom_path)
@ -1104,8 +1202,8 @@ void OoxConverter::convert(OOX::Drawing::CPath2DArcTo *oox_geom_path)
{
if (!oox_geom_path) return;
//std::wstring path_elm = std::to_wstring ((int)pt2emu(oox_geom_path->m_oPt.m_oX.GetValue())) +
// std::wstring(L" ")+ std::to_wstring ((int)pt2emu(oox_geom_path->m_oPt.m_oY.GetValue()));
//std::wstring path_elm = std::to_wstring ((int)pt2emu(oox_geom_path->m_oPt.m_oX.GetValue())) +
// std::wstring(L" ")+ std::to_wstring ((int)pt2emu(oox_geom_path->m_oPt.m_oY.GetValue()));
//
//odf_context()->drawing_context()->add_path_element(std::wstring(L"A"), path_elm);
}
@ -1148,10 +1246,15 @@ void OoxConverter::convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr)
odf_context()->drawing_context()->set_textarea_writing_mode (oox_bodyPr->m_oVert.GetValue());
odf_context()->drawing_context()->set_textarea_vertical_align (oox_bodyPr->m_oAnchor.GetValue());
odf_context()->drawing_context()->set_textarea_padding (oox_bodyPr->m_oLIns.ToCm(),
oox_bodyPr->m_oTIns.ToCm(),
oox_bodyPr->m_oRIns.ToCm(),
oox_bodyPr->m_oBIns.ToCm());
_CP_OPT(double) lIns, tIns, rIns, bIns;
lIns = oox_bodyPr->m_oLIns.ToCm();
tIns = oox_bodyPr->m_oTIns.ToCm();
rIns = oox_bodyPr->m_oRIns.ToCm();
bIns = oox_bodyPr->m_oBIns.ToCm();
odf_context()->drawing_context()->set_textarea_padding (lIns, tIns, rIns, bIns);
odf_context()->drawing_context()->set_textarea_wrap(oox_bodyPr->m_oWrap.GetValue());
if (oox_bodyPr->m_oNumCol.GetValue() > 1)
@ -1167,7 +1270,7 @@ void OoxConverter::convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr)
}
if (oox_bodyPr->m_oFromWordArt.ToBool() && oox_bodyPr->m_oPrstTxWrap.IsInit())
{
for (unsigned int i=0; i< oox_bodyPr->m_oPrstTxWrap->m_oAvLst->m_arrGd.size(); i++)
for (size_t i = 0; i < oox_bodyPr->m_oPrstTxWrap->m_oAvLst->m_arrGd.size(); i++)
{
if (oox_bodyPr->m_oPrstTxWrap->m_oAvLst->m_arrGd[i] == NULL) continue;
odf_context()->drawing_context()->add_modifier(oox_bodyPr->m_oPrstTxWrap->m_oAvLst->m_arrGd[i]->m_oFmla.GetValue());
@ -1298,7 +1401,7 @@ void OoxConverter::convert(OOX::Drawing::CRunProperty * oox_run_pr, odf_writer::
}
}
}
void OoxConverter::convert(OOX::Drawing::CRun *oox_run)
void OoxConverter::convert(OOX::Drawing::CRun *oox_run)
{
if (!oox_run)return;
@ -1428,7 +1531,7 @@ void OoxConverter::convert(OOX::Drawing::CParagraph *oox_paragraph)
odf_context()->text_context()->start_paragraph(styled);
for (unsigned int i=0; i< oox_paragraph->m_arrItems.size();i++)
for (size_t i=0; i< oox_paragraph->m_arrItems.size();i++)
{
convert(oox_paragraph->m_arrItems[i]);
}

View File

@ -32,6 +32,7 @@
#pragma once
#include <cpdoccore/CPOptional.h>
#include "../../../Common/DocxFormat/Source/Base/SmartPtr.h"
#include "../progressCallback.h"
@ -70,6 +71,7 @@ namespace OOX
class WritingElement;
class CTheme;
class IFileContainer;
class File;
namespace Drawing
{
@ -271,11 +273,6 @@ namespace OOX
class CRichText;
class CTextProperties;
}
//namespace Diagram
//{
// class CShape;
// class CShapeTree;
//}
namespace Vml
{
class CShapeType;
@ -320,6 +317,32 @@ namespace PPTX
class SpPr;
class ShapeStyle;
class PrstTxWarp;
class PrstGeom;
class CustGeom;
class BlipFill;
class GradFill;
class SolidFill;
class PattFill;
class EffectLst;
class Ln;
class Path2D;
class PathBase;
class TxBody;
class BodyPr;
class UniFill;
class UniColor;
class NvSpPr;
class CNvPr;
class CNvSpPr;
class NvPr;
class Paragraph;
class TextParagraphPr;
class TextSpacing;
class RunProperties;
class Run;
class Fld;
class Br;
class MathParaWrapper;
}
}
@ -352,18 +375,21 @@ public:
virtual cpdoccore::odf_writer::odf_conversion_context *odf_context() = 0;
virtual OOX::CTheme *oox_theme() = 0;
virtual std::wstring find_link_by_id(std::wstring sId, int t) = 0;
virtual NSCommon::smart_ptr<OOX::File> find_file_by_id(std::wstring sId) = 0;
OOX::Spreadsheet::IFileContainer *oox_current_child_document_spreadsheet;
OOX::IFileContainer *oox_current_child_document;
void convert (double oox_font_size, cpdoccore::_CP_OPT(cpdoccore::odf_types::font_size) & odf_font_size);
bool convert (int indexSchemeColor, BYTE& ucA, BYTE& ucG, BYTE& ucB, BYTE& ucR);
//.......................................................................................................................
void convert(OOX::WritingElement *oox_unknown);
void convert(double oox_font_size, cpdoccore::_CP_OPT(cpdoccore::odf_types::font_size) & odf_font_size);
//.drawing......................................................................................................................
void convert(OOX::Drawing::CDiagrammParts *oox_diagramm);
void convert(OOX::Drawing::CLockedCanvas *oox_canvas);
void convert(OOX::Drawing::CShape *oox_shape);
void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr);
void convert(OOX::Drawing::CShapeProperties *oox_spPr, OOX::Drawing::CShapeStyle* oox_sp_style = NULL);
void convert(OOX::Drawing::CShapeProperties *oox_spPr, OOX::Drawing::CShapeStyle* oox_sp_style = NULL);
void convert(OOX::Drawing::CGroupShapeProperties *oox_groupSpPr);
void convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr);
@ -402,11 +428,36 @@ public:
void convert(OOX::Drawing::CRun *oox_run);
void convert(OOX::Drawing::CRunProperty *oox_run_pr, cpdoccore::odf_writer::style_text_properties * text_properties);
void convert(OOX::Drawing::CLineSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
//.diagram(pptx)................................................................................................................................
//.diagram & pptx................................................................................................................................
void convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
void convert(PPTX::Logic::SpTree *oox_shape_tree);
void convert(PPTX::Logic::Shape *oox_shape);
void convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle* oox_sp_style = NULL);
int convert(PPTX::Logic::PrstTxWarp *oox_text_preset);
void convert(PPTX::Logic::PrstGeom *oox_geom);
void convert(PPTX::Logic::CustGeom *oox_geom);
void convert(PPTX::Logic::BlipFill *oox_fill);
void convert(PPTX::Logic::GradFill *oox_fill);
void convert(PPTX::Logic::SolidFill *oox_fill);
void convert(PPTX::Logic::PattFill *oox_fill);
void convert(PPTX::Logic::EffectLst *oox_effect_lst);
void convert(PPTX::Logic::Ln *oox_line);
void convert(PPTX::Logic::Path2D *oox_path2D);
void convert(PPTX::Logic::PathBase *oox_path);
void convert(PPTX::Logic::BodyPr *oox_bodyPr);
void convert(PPTX::Logic::UniFill *oox_fill, PPTX::Logic::ShapeStyle* oox_sp_style = NULL);
void convert(PPTX::Logic::UniColor *color, std::wstring & hexString, cpdoccore::_CP_OPT(double) & opacity);
void convert(PPTX::Logic::NvSpPr *oox_nvSpPr);
void convert(PPTX::Logic::CNvPr *oox_cnvPr);
void convert(PPTX::Logic::CNvSpPr *oox_cnvSpPr);
void convert(PPTX::Logic::NvPr *oox_nvPr);
void convert(PPTX::Logic::Paragraph *oox_para);
void convert(PPTX::Logic::TextParagraphPr *oox_para_props, cpdoccore::odf_writer::style_paragraph_properties * paragraph_properties);
void convert(PPTX::Logic::RunProperties *oox_run_props, cpdoccore::odf_writer::style_text_properties * text_properties);
void convert(PPTX::Logic::Run *oox_run);
void convert(PPTX::Logic::Fld *oox_fld);
void convert(PPTX::Logic::Br *oox_br);
void convert(PPTX::Logic::MathParaWrapper *oox_math);
//.chart............................................................................................................................
void convert(OOX::Spreadsheet::CT_ChartSpace *oox_chart);
void convert(OOX::Spreadsheet::CT_Title *ct_title);

View File

@ -80,7 +80,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CRichText* rich)
odf_context()->chart_context()->start_text();
OoxConverter::convert(rich->m_oBodyPr.GetPointer());
for (unsigned int i=0 ; i < rich->m_arrItems.size();i++)
for (size_t i = 0; i < rich->m_arrItems.size();i++)
{
OoxConverter::convert(rich->m_arrItems[i]);
}
@ -93,7 +93,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CTextProperties* txPr)
odf_context()->chart_context()->start_text();
OoxConverter::convert(txPr->m_oBodyPr.GetPointer());
for (unsigned int i=0 ; i < txPr->m_arrItems.size();i++)
for (size_t i = 0; i < txPr->m_arrItems.size();i++)
{
OoxConverter::convert(txPr->m_arrItems[i]);
}
@ -167,7 +167,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea)
convert(ct_plotArea->m_layout);
///////////////////////
for (unsigned int i=0; i< ct_plotArea->m_Items1.size(); i++)
for (size_t i = 0; i < ct_plotArea->m_Items1.size(); i++)
{
if (!ct_plotArea->m_ItemsElementName1[i]) continue;
switch(*ct_plotArea->m_ItemsElementName1[i])
@ -178,7 +178,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea)
case OOX::Spreadsheet::itemschoicetype6VALAX: convert((OOX::Spreadsheet::CT_ValAx*)ct_plotArea->m_Items1[i]);break;
}
}
for (unsigned int i=0; i< ct_plotArea->m_Items.size(); i++)//
for (size_t i=0; i< ct_plotArea->m_Items.size(); i++)//
{
if (!ct_plotArea->m_ItemsElementName0[i]) continue;
switch(*ct_plotArea->m_ItemsElementName0[i])
@ -406,7 +406,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Area3DChart *chart)
if (chart->m_grouping && chart->m_grouping->m_val)
odf_context()->chart_context()->set_chart_grouping(*chart->m_grouping->m_val);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
@ -425,11 +425,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_AreaChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i=0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i=0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -460,11 +460,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Bar3DChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -491,11 +491,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_BarChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -513,11 +513,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Line3DChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -539,11 +539,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_LineChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -558,11 +558,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Pie3DChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
//for (long i=0; i< chart->m_axId.size(); i++)
//for (size_t i = 0; i < chart->m_axId.size(); i++)
//{
// odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
//}
@ -576,11 +576,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_PieChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
//for (long i=0; i< chart->m_axId.size(); i++)
//for (size_t i = 0; i < chart->m_axId.size(); i++)
//{
// odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
//}
@ -594,11 +594,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Surface3DChart *chart)
odf_context()->chart_context()->set_chart_3D(true);
odf_context()->chart_context()->start_group_series();
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -611,11 +611,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_SurfaceChart *chart)
odf_context()->chart_context()->set_chart_type(L"surface");
odf_context()->chart_context()->start_group_series();
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -629,11 +629,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_BubbleChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -649,7 +649,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_DoughnutChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
@ -668,11 +668,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_ScatterChart *chart)
odf_context()->chart_context()->start_group_series();
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -689,11 +689,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_RadarChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
//for (long i=0; i< chart->m_axId.size(); i++)
//for (size_t i = 0; i < chart->m_axId.size(); i++)
//{
// odf_context()->chart_context()->add_axis_group_series(**chart->m_axId[i]->m_val->m_val);
//}
@ -707,11 +707,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_StockChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
for (unsigned int i=0; i< chart->m_axId.size(); i++)
for (size_t i = 0; i < chart->m_axId.size(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
@ -755,11 +755,11 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_OfPieChart *chart)
odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls);
for (unsigned int i=0; i< chart->m_ser.size(); i++)
for (size_t i = 0; i < chart->m_ser.size(); i++)
{
convert(chart->m_ser[i]);
}
//for (long i=0; i< chart->m_axId.size(); i++)
//for (size_t i = 0; i < chart->m_axId.size(); i++)
//{
// odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
//}
@ -954,7 +954,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_Marker* marker, std::vector<OOX:
long count_point = odf_context()->chart_context()->get_count_data_points_series();
long current_point = 0;
long set_point;
for (unsigned int i =0 ;i < dPt.size(); i++)
for (size_t i = 0; i < dPt.size(); i++)
{
if (dPt[i] == NULL)continue;
@ -996,7 +996,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_DLbls* ser_lbls)
{
if (ser_lbls == NULL)return;
for (unsigned int i=0; i< ser_lbls->m_Items.size(); i++)
for (size_t i = 0; i < ser_lbls->m_Items.size(); i++)
{
bool boolVal = false;
@ -1140,7 +1140,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_NumData *num_data, bool categori
//std::vector<double> data;
std::vector<std::wstring> data;
for (unsigned int i=0; i < num_data->m_pt.size(); i++)
for (size_t i = 0; i < num_data->m_pt.size(); i++)
{
if (num_data->m_pt[i] && num_data->m_pt[i]->m_v)
{
@ -1166,7 +1166,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_StrData *str_data, bool categori
if (str_data == NULL)return;
std::vector<std::wstring> data;
for (unsigned int i=0; i < str_data->m_pt.size(); i++)
for (size_t i = 0; i < str_data->m_pt.size(); i++)
{
if (str_data->m_pt[i] && str_data->m_pt[i]->m_v)
data.push_back(*str_data->m_pt[i]->m_v);

View File

@ -35,8 +35,6 @@
#include "../../../Common/DocxFormat/Source/DocxFormat/Docx.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/External/HyperLink.h"
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramData.h"
#include "VmlShapeTypes2Oox.h"
@ -103,7 +101,26 @@ OOX::CTheme* DocxConverter::oox_theme()
else
return NULL;
}
std::wstring DocxConverter::find_link_by_id (std::wstring sId, int type)
NSCommon::smart_ptr<OOX::File> DocxConverter::find_file_by_id(std::wstring sId)
{
OOX::CDocument *oox_doc = docx_document->GetDocument();
smart_ptr<OOX::File> oFile;
if (oox_doc)
{
if (oox_current_child_document_spreadsheet)
oFile = oox_current_child_document_spreadsheet->Find(sId);
if (oox_current_child_document)
oFile = oox_current_child_document->Find(sId);
else
oFile = oox_doc->Find(sId);
}
return oFile;
}
std::wstring DocxConverter::find_link_by_id (std::wstring sId, int type)
{
OOX::CDocument *oox_doc = docx_document->GetDocument();
@ -344,11 +361,6 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown)
OOX::Logic::CLockedCanvas* pLockedCanvas= static_cast<OOX::Logic::CLockedCanvas*>(oox_unknown);
convert(pLockedCanvas);
}break;
case OOX::et_dgm_DiagrammParts:
{
OOX::Drawing::CDiagrammParts* pDiagrammParts = static_cast<OOX::Drawing::CDiagrammParts*>(oox_unknown);
convert(pDiagrammParts);
}break;
case OOX::et_w_commentRangeEnd:
{
OOX::Logic::CCommentRangeEnd* pCommEnd = static_cast<OOX::Logic::CCommentRangeEnd*>(oox_unknown);
@ -2825,51 +2837,6 @@ void DocxConverter::convert(OOX::Drawing::CPicture * oox_picture)
odt_context->drawing_context()->end_image();
odt_context->drawing_context()->end_drawing();
}
void DocxConverter::convert(OOX::Drawing::CDiagrammParts *oox_diagramm)
{
if (oox_diagramm == NULL)return;
if (oox_diagramm->m_oRId_Data.IsInit() == false) return;
smart_ptr<OOX::File> oFile;
if (oox_current_child_document)
oFile = docx_document->GetDocument()->Find(oox_diagramm->m_oRId_Data->GetValue());
else
oFile = docx_document->GetDocument()->Find(oox_diagramm->m_oRId_Data->GetValue());
NSCommon::nullable<std::wstring> id_drawing;
if (oFile.IsInit())
{
OOX::CDiagramData* pDiagData = (OOX::CDiagramData*)oFile.operator->();
if ((pDiagData) && (pDiagData->m_oExtLst.IsInit()))
{
for (int i = 0 ; i < pDiagData->m_oExtLst->m_arrExt.size(); i++)
{
if ( pDiagData->m_oExtLst->m_arrExt[i]->m_oDataModelExt.IsInit())
{
id_drawing = pDiagData->m_oExtLst->m_arrExt[i]->m_oDataModelExt->m_oRelId;
}
}
}
}
if (id_drawing.is_init() == false) return;
oFile = docx_document->GetDocument()->Find( *id_drawing );
if (oFile.is_init() && OOX::FileTypes::DiagDrawing == oFile->type())
{
OOX::CDiagramDrawing * diag_drawing = (OOX::CDiagramDrawing*)oFile.operator->();
oox_current_child_document = diag_drawing;
OoxConverter::convert(diag_drawing->m_oShapeTree.GetPointer());
oox_current_child_document = NULL;
}
}
void DocxConverter::convert(OOX::Drawing::CChart * oox_chart)
{
if (oox_chart == NULL)return;
@ -2892,7 +2859,7 @@ void DocxConverter::convert(OOX::Drawing::CChart * oox_chart)
odt_context->drawing_context()->start_drawing();
odt_context->drawing_context()->start_object(odf_context()->get_next_name_object());
double width =0, height =0;
_CP_OPT(double) width, height;
odt_context->drawing_context()->get_size(width, height);
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());

View File

@ -148,6 +148,7 @@ namespace Oox2Odf
virtual odf_writer::odf_conversion_context *odf_context();
virtual OOX::CTheme *oox_theme();
virtual std::wstring find_link_by_id (std::wstring sId, int t);
virtual NSCommon::smart_ptr<OOX::File> find_file_by_id(std::wstring sId);
void convert(OOX::WritingElement *oox_unknown);
private:
@ -224,7 +225,6 @@ namespace Oox2Odf
void convert(OOX::Drawing::CGraphic *oox_graphic);
void convert(OOX::Drawing::CChart *oox_chart);
void convert(OOX::Drawing::CPicture *oox_picture);
void convert(OOX::Drawing::CDiagrammParts *oox_diagramm);
void convert(SimpleTypes::CTheme<> *oox_font_theme,_CP_OPT(std::wstring) & odf_font_name);
void convert(ComplexTypes::Word::CColor *color, _CP_OPT(odf_types::color) & odf_color);

View File

@ -94,13 +94,26 @@ OOX::CTheme* XlsxConverter::oox_theme()
else
return NULL;
}
std::wstring XlsxConverter::find_link_by_id (std::wstring sId, int type)
smart_ptr<OOX::File> XlsxConverter::find_file_by_id(std::wstring sId)
{
smart_ptr<OOX::File> oFile;
if (xlsx_current_drawing)
oFile = xlsx_current_drawing->Find(sId);
else if (oox_current_child_document)
oFile = oox_current_child_document->Find(sId);
else if (oox_current_child_document_spreadsheet)
oFile = oox_current_child_document_spreadsheet->Find(sId);
return oFile;
}
std::wstring XlsxConverter::find_link_by_id (std::wstring sId, int type)
{
std::wstring ref;
if (type==1)
if (type == 1)
{
if (xlsx_current_drawing)
if (ref.empty() && xlsx_current_drawing)
{
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(sId);
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Image == oFile->type())
@ -174,7 +187,7 @@ void XlsxConverter::convert_sheets()
}
if(Workbook->m_oSheets.IsInit())
{
for(unsigned int i = 0, length = Workbook->m_oSheets->m_arrItems.size(); i < length; ++i)
for(size_t i = 0, length = Workbook->m_oSheets->m_arrItems.size(); i < length; ++i)
{
OOX::Spreadsheet::CSheet* pSheet = Workbook->m_oSheets->m_arrItems[i];
@ -535,7 +548,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSi* oox_rtf_text)
ods_context->start_cell_text();
for(int i = 0; i < oox_rtf_text->m_arrItems.size(); ++i)
for(size_t i = 0; i < oox_rtf_text->m_arrItems.size(); ++i)
{
convert(oox_rtf_text->m_arrItems[i]);
}
@ -916,7 +929,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views)
bool bPaneY = false;
int ActiveCellX = -1, ActiveCellY = -1;
for (int j = 0; j < sheet_view->m_arrItems.size(); j++)
for (size_t j = 0; j < sheet_view->m_arrItems.size(); j++)
{
OOX::Spreadsheet::CSelection *selection = sheet_view->m_arrItems[j];
@ -1903,55 +1916,60 @@ void XlsxConverter::convert(OOX::Spreadsheet::CShape* oox_shape)
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicFrame* oox_graphic_frame)
{
if (!oox_graphic_frame)return;
if (!oox_graphic_frame->m_oGraphic.IsInit()) return;
if (!oox_graphic_frame->m_oGraphic->m_oGraphicData.IsInit()) return;
////////////////////////////////////////////////////////////////////////////////
ods_context->drawing_context()->start_drawing();
ods_context->drawing_context()->start_object(ods_context->get_next_name_object());
{
double width =0, height =0;
ods_context->drawing_context()->get_size(width, height);
if (oox_graphic_frame->m_oNvGraphicFramePr.IsInit())
{
if (oox_graphic_frame->m_oNvGraphicFramePr->m_oCNvPr.IsInit())
{
OoxConverter::convert(oox_graphic_frame->m_oNvGraphicFramePr->m_oCNvPr.GetPointer());
}
}
if (oox_graphic_frame->m_oChartGraphic.IsInit() && oox_graphic_frame->m_oChartGraphic->m_oGraphicData.IsInit())
{
if (oox_graphic_frame->m_oChartGraphic->m_oGraphicData->m_oChart.IsInit() && oox_graphic_frame->m_oChartGraphic->m_oGraphicData->m_oChart->m_oRId.IsInit())
{
//диаграмма
std::wstring sId = oox_graphic_frame->m_oChartGraphic->m_oGraphicData->m_oChart->m_oRId->GetValue();
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(sId);
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Charts == oFile->type())
{
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
if (pChart)
{
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
odf_context()->start_chart();
odf_context()->chart_context()->set_chart_size(width, height);
OoxConverter::convert(&pChart->m_oChartSpace);
odf_context()->end_chart();
oox_current_child_document_spreadsheet = NULL;
}
}
}
//могут быть и другие типы объектов
}
if (oox_graphic_frame->m_oNvGraphicFramePr.IsInit())
{
OoxConverter::convert(oox_graphic_frame->m_oNvGraphicFramePr->m_oCNvPr.GetPointer());
}
if ( OOX::Drawing::graphictypeChart == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
{
convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oChart.GetPointer());
}
else if ( OOX::Drawing::graphictypeDiagram == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
{
OoxConverter::convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oDiagrammParts.GetPointer());
}
ods_context->drawing_context()->end_object();
ods_context->drawing_context()->end_drawing();
}
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicChart *oox_chart)
{
if (!oox_chart) return;
if( !oox_chart->m_oRId.IsInit()) return;
_CP_OPT(double) width, height;
odf_context()->drawing_context()->get_size (width, height);
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(oox_chart->m_oRId->GetValue());
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Charts == oFile->type())
{
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
if (pChart)
{
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
odf_context()->drawing_context()->start_object(ods_context->get_next_name_object());
{
odf_context()->start_chart();
odf_context()->chart_context()->set_chart_size(width, height);
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
OoxConverter::convert(&pChart->m_oChartSpace);
odf_context()->end_chart();
}
odf_context()->drawing_context()->end_object();
oox_current_child_document_spreadsheet = NULL;
}
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
{
@ -2077,7 +2095,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_f
if (oox_cond_fmt->m_oSqRef.IsInit())
{
ods_context->current_table().start_conditional_format(oox_cond_fmt->m_oSqRef->GetValue());
ods_context->current_table().start_conditional_format(oox_cond_fmt->m_oSqRef.get());
for (unsigned int i=0; i< oox_cond_fmt->m_arrItems.size(); i++)
convert(oox_cond_fmt->m_arrItems[i]);//rule

View File

@ -78,6 +78,7 @@ namespace OOX
class CGroupShape;
class CCommentItem;
class CGraphicFrame;
class CGraphicChart;
class CDefinedName;
class CConditionalFormatting;
class CConditionalFormattingRule;
@ -138,6 +139,7 @@ namespace Oox2Odf
virtual odf_writer::odf_conversion_context *odf_context();
virtual OOX::CTheme *oox_theme();
virtual std::wstring find_link_by_id (std::wstring sId, int t);
virtual NSCommon::smart_ptr<OOX::File> find_file_by_id(std::wstring sId);
void convert(OOX::Spreadsheet::WritingElement *oox_unknown);
private:
@ -199,6 +201,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
void convert(OOX::Spreadsheet::CGraphicFrame *oox_graphic_frame);
void convert(OOX::Spreadsheet::CGroupShape *oox_group_shape);
void convert(OOX::Spreadsheet::CGraphicChart *oox_chart);
void convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_fmt);
void convert(OOX::Spreadsheet::CConditionalFormattingRule *oox_cond_rule);

View File

@ -44,7 +44,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../ASCOfficeOdfFile/include;../../../ASCOfficeOdfFile/src/odf/datatypes"
PreprocessorDefinitions="NDEBUG;_LIB;_USE_XMLLITE_READER_;USE_LITE_READER;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
PreprocessorDefinitions="NDEBUG;_LIB;_USE_XMLLITE_READER_;USE_LITE_READER;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"

View File

@ -21,7 +21,6 @@ include($$PWD/../../../Common/3dParty/boost/boost.pri)
DEFINES += UNICODE \
_UNICODE \
USE_ATL_CSTRING \
PPTX_DEF \
PPT_DEF \
ENABLE_PPT_TO_PPTX_CONVERT \
@ -31,7 +30,6 @@ DEFINES += UNICODE \
_USE_XMLLITE_READER_ \
_PRESENTATION_WRITER_ \
_SVG_CONVERT_TO_IMAGE_ \
BUILD_CONFIG_FULL_VERSION \
DONT_WRITE_EMBEDDED_FONTS
#DISABLE_FILE_DOWNLOADER
@ -46,7 +44,6 @@ core_windows {
HEADERS += \
../PPTFormatLib.h \
../Reader/AudioOverlay.h \
../Reader/ClassesAtom.h \
../Reader/CommonZLib.h \
../Reader/PPTDocumentInfo.h \

View File

@ -40,7 +40,6 @@
6967B00D1E279D8D00A129E2 /* ShapeWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeWriter.cpp; sourceTree = "<group>"; };
6967B00E1E279D8D00A129E2 /* ShapeWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeWriter.h; sourceTree = "<group>"; };
6967B00F1E279D8D00A129E2 /* StylesWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StylesWriter.h; sourceTree = "<group>"; };
6967B0111E279D8D00A129E2 /* AudioOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioOverlay.h; sourceTree = "<group>"; };
6967B0121E279D8D00A129E2 /* ClassesAtom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassesAtom.h; sourceTree = "<group>"; };
6967B0131E279D8D00A129E2 /* CommonZLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonZLib.h; sourceTree = "<group>"; };
6967B0141E279D8D00A129E2 /* PPTDocumentInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPTDocumentInfo.h; sourceTree = "<group>"; };
@ -214,7 +213,6 @@
6967B0101E279D8D00A129E2 /* Reader */ = {
isa = PBXGroup;
children = (
6967B0111E279D8D00A129E2 /* AudioOverlay.h */,
6967B0121E279D8D00A129E2 /* ClassesAtom.h */,
6967B0131E279D8D00A129E2 /* CommonZLib.h */,
6967B0141E279D8D00A129E2 /* PPTDocumentInfo.h */,

View File

@ -1,314 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#include "Elements.h"
class CAudioPart
{
public:
CString m_strFile;
double m_dStartTime;
double m_dEndTime;
double m_dClipStartTime;
double m_dClipEndTime;
double m_dAudioDuration;
bool m_bLoop;
bool m_bStop;
bool m_bIsTransition;
double m_dAmplify;
public:
CAudioPart()
{
m_strFile = _T("");
m_dStartTime = 0.0;
m_dEndTime = -1.0;
m_dClipStartTime = 0.0;
m_dClipEndTime = -1.0;
m_dAudioDuration = 0.0;
m_bLoop = false;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
~CAudioPart()
{
}
CAudioPart(const CAudioPart& oSrc)
{
*this = oSrc;
}
CAudioPart& operator=(const CAudioPart& oSrc)
{
m_strFile = oSrc.m_strFile;
m_dStartTime = oSrc.m_dStartTime;
m_dEndTime = oSrc.m_dEndTime;
m_dClipStartTime = oSrc.m_dClipStartTime;
m_dClipEndTime = oSrc.m_dClipEndTime;
m_dAudioDuration = oSrc.m_dAudioDuration;
m_bLoop = oSrc.m_bLoop;
m_bStop = oSrc.m_bStop;
m_bIsTransition = oSrc.m_bIsTransition;
m_dAmplify = oSrc.m_dAmplify;
return *this;
}
CAudioPart(CAudioElement* pAudioElem)
{
if (NULL == pAudioElem)
{
m_strFile = _T("");
m_dStartTime = 0.0;
m_dEndTime = -1.0;
m_dClipStartTime = 0.0;
m_dClipEndTime = -1.0;
m_dAudioDuration = 0.0;
m_bLoop = false;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
else
{
m_strFile = pAudioElem->m_strFileName;
m_dStartTime = pAudioElem->m_dStartTime;
m_dEndTime = pAudioElem->m_dEndTime;
m_dClipStartTime = pAudioElem->m_dClipStartTime;
m_dClipEndTime = pAudioElem->m_dClipEndTime;
m_dAudioDuration = pAudioElem->m_dAudioDuration;
m_bLoop = pAudioElem->m_bLoop;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
}
public:
void CalculateDuration()
{
if (0.0 < m_dAudioDuration || _T("") == m_strFile)
return;
VideoFile::IVideoFile3* pVideoFile = NULL;
if (SUCCEEDED(CoCreateInstance(VideoFile::CLSID_CVideoFile3, NULL, CLSCTX_ALL, VideoFile::IID_IVideoFile3, (void**)(&pVideoFile))))
{
if (NULL != pVideoFile)
{
BSTR bsFile = m_strFile.AllocSysString();
if (S_OK == pVideoFile->OpenFile(bsFile))
{
pVideoFile->get_audioDuration(&m_dAudioDuration);
}
SysFreeString(bsFile);
RELEASEINTERFACE(pVideoFile);
}
}
}
};
class CAudioOverlay
{
public:
CAtlArray<CAudioPart> m_arParts;
double m_dAllDuration;
public:
CAudioOverlay() : m_arParts(), m_dAllDuration(0.0)
{
}
~CAudioOverlay()
{
}
CAudioOverlay(const CAudioOverlay& oSrc)
{
*this = oSrc;
}
CAudioOverlay& operator=(const CAudioOverlay& oSrc)
{
m_arParts.Copy(oSrc.m_arParts);
m_dAllDuration = oSrc.m_dAllDuration;
return *this;
}
public:
void Calculate()
{
size_t nCount = m_arParts.GetCount();
// нормализуем для начала
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
pPart->CalculateDuration();
if (pPart->m_dStartTime < 0.0)
pPart->m_dStartTime = 0.0;
pPart->m_dEndTime = pPart->m_dStartTime + pPart->m_dAudioDuration;
if (pPart->m_dEndTime > m_dAllDuration)
{
pPart->m_dEndTime = m_dAllDuration;
}
if (pPart->m_bLoop)
{
pPart->m_dEndTime = m_dAllDuration;
}
}
// пересчет
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
if (pPart->m_bIsTransition)
{
if (pPart->m_bStop)
{
// нужно остановить всю музыку до этого
for (size_t j = 0; j < nCount; ++j)
{
if (j == i)
continue;
CAudioPart* pMem = &m_arParts[j];
if (pMem->m_dStartTime <= pPart->m_dStartTime && pMem->m_dEndTime > pPart->m_dStartTime)
{
pMem->m_dEndTime = pPart->m_dStartTime;
}
}
}
if (pPart->m_bLoop)
{
// зацикливаем до первого встречания аудио
double dMin = m_dAllDuration;
for (size_t j = 0; j < nCount; ++j)
{
if (j == i)
continue;
CAudioPart* pMem = &m_arParts[j];
if (pMem->m_dStartTime > pPart->m_dEndTime)
{
if (dMin > pMem->m_dStartTime)
dMin = pMem->m_dStartTime;
}
}
pPart->m_dEndTime = dMin;
}
}
else
{
if (pPart->m_bLoop)
{
pPart->m_dEndTime = m_dAllDuration;
}
}
}
}
CString GetAudioOverlay()
{
CString strRes = _T("");
size_t nCount = m_arParts.GetCount();
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
CString strOverlay1 = _T("");
CString strOverlay2 = _T("");
strOverlay1.Format(_T("<AudioSource StartTime='%lf' Duration='%lf' Amplify='%lf'>"),
pPart->m_dStartTime, pPart->m_dEndTime - pPart->m_dStartTime, pPart->m_dAmplify);
int lIndex = pPart->m_strFile.Find(L"file:///");
if (0 == lIndex)
{
pPart->m_strFile = pPart->m_strFile.Mid(8);
pPart->m_strFile.Replace('/', '\\');
pPart->m_strFile.Replace(L"%20", L" ");
}
CString strFile_ = pPart->m_strFile;
CorrectXmlString(strFile_);
strOverlay2.Format(_T("<Source StartTime='%lf' EndTime='%lf'"), pPart->m_dClipStartTime, pPart->m_dClipEndTime);
strOverlay2 += _(" FilePath=\"") + strFile_ + _T("\">");
strOverlay2 += _T("</AudioSource>");
strOverlay1 += strOverlay2;
strRes += strOverlay1;
}
return strRes;
}
};

View File

@ -47,12 +47,16 @@ struct SRecordHeader
SRecordHeader()
{
RecVersion = RecInstance = RecType = RecLen = 0;
RecVersion = 0;
RecInstance = RecType = 0;
RecLen = 0;
}
bool ReadFromStream(POLE::Stream * pStream)
{
RecVersion = RecInstance = RecType = RecLen = 0;
RecVersion = 0;
RecInstance = RecType = 0;
RecLen = 0;
POLE::uint64 nRd = 0;
@ -69,11 +73,11 @@ struct SRecordHeader
nRd = pStream->read((unsigned char*)&(RecLen), 4);
long sz = pStream->size()-pStream->tell();
POLE::uint64 sz = pStream->size()-pStream->tell();
if (RecLen > sz )
{
RecLen = sz;
RecLen = (UINT)sz;
}
return true;

View File

@ -56,7 +56,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="_DEBUG;_LIB;_USE_MATH_DEFINES;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;PPT_FORMAT;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS"
PreprocessorDefinitions="_DEBUG;_LIB;_USE_MATH_DEFINES;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"

View File

@ -992,6 +992,343 @@ HRESULT CDrawingConverter::AddShapeType(const std::wstring& bsXml)
return S_OK;
}
std::wstring CDrawingConverter::ConvertObjectToVml (const std::wstring& sXml)
{
std::wstring sBegin(L"<main xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:p=\"urn:schemas-microsoft-com:office:powerpoint\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:ve=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\" xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\">");
std::wstring sEnd(L"</main>");
std::wstring strXml = sBegin + sXml + sEnd;
XmlUtils::CXmlNode oMainNode;
if (!oMainNode.FromXmlString(strXml))
return L"";
XmlUtils::CXmlNodes oNodes;
if (!oMainNode.GetNodes(L"*", oNodes))
return L"";
PPTX::Logic::SpTreeElem oElem;
std::wstring *pMainProps = new std::wstring();
std::wstring **ppMainProps = &pMainProps;
for (LONG i = 0; i < oNodes.GetCount(); ++i)
{
XmlUtils::CXmlNode oParseNode;
oNodes.GetAt(i, oParseNode);
std::wstring strFullName = oParseNode.GetName();
std::wstring strNS = XmlUtils::GetNamespace(strFullName);
std::wstring strName = XmlUtils::GetNameNoNS(strFullName);
while (true)
{
if (strName == L"drawing")
{
XmlUtils::CXmlNode oNodeAnchorInline = oParseNode.ReadNodeNoNS(L"anchor");
if (!oNodeAnchorInline.IsValid())
{
oNodeAnchorInline = oParseNode.ReadNodeNoNS(L"inline");
}
if (oNodeAnchorInline.IsValid())
{
XmlUtils::CXmlNode oNodeExt;
m_pBinaryWriter->m_lXCurShape = 0;
m_pBinaryWriter->m_lYCurShape = 0;
if (oNodeAnchorInline.GetNode(L"wp:extent", oNodeExt))
{
m_pBinaryWriter->m_lCxCurShape = oNodeExt.ReadAttributeInt(L"cx");
m_pBinaryWriter->m_lCyCurShape = oNodeExt.ReadAttributeInt(L"cy");
}
XmlUtils::CXmlNode oNodeDocPr;
if (oNodeAnchorInline.GetNode(L"wp:docPr", oNodeDocPr))
{//vml shapes without id .. reset all id
oNodeDocPr.SetAttributeInt(L"id", m_lNextId++);
}
SendMainProps(oNodeAnchorInline.GetXml(), ppMainProps);
XmlUtils::CXmlNode oNodeGraphic = oNodeAnchorInline.ReadNodeNoNS(L"graphic");
XmlUtils::CXmlNode oNodeGraphicData = oNodeGraphic.ReadNodeNoNS(L"graphicData");
if (oNodeGraphicData.IsValid())
{
XmlUtils::CXmlNodes oChilds;
oNodeGraphicData.GetNodes(L"*", oChilds);
if (1 == oChilds.GetCount())
{
XmlUtils::CXmlNode oNodeContent;
oChilds.GetAt(0, oNodeContent);
std::wstring strCurrentRelsPath = m_strCurrentRelsPath;
if (L"dgm:relIds" == oNodeContent.GetName() && m_pBinaryWriter->m_pCommonRels->is_init())
{
doc_LoadDiagram(&oElem, oNodeContent, ppMainProps, true);
}
else if (L"wpc:wpc" == oNodeContent.GetName())
{
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree();
pTree->grpSpPr.xfrm = new PPTX::Logic::Xfrm();
pTree->grpSpPr.xfrm->offX = m_pBinaryWriter->m_lXCurShape;
pTree->grpSpPr.xfrm->offY = m_pBinaryWriter->m_lYCurShape;
pTree->grpSpPr.xfrm->extX = m_pBinaryWriter->m_lCxCurShape;
pTree->grpSpPr.xfrm->extY = m_pBinaryWriter->m_lCyCurShape;
pTree->fromXML(oNodeContent);
oElem.InitElem(pTree);
}
else
{
oElem = oNodeContent;
#ifdef AVS_OFFICE_DRAWING_DUMP_PPTX_TO_PPT_TEST
std::wstring strVMLShapeXml = GetVMLShapeXml(oElem);
#endif
}
if (strCurrentRelsPath != m_strCurrentRelsPath)
{
m_strCurrentRelsPath = strCurrentRelsPath;
SetCurrentRelsPath();
}
}
}
}
break;
}
else if (strName == L"background")
{
doc_LoadShape(&oElem, oParseNode, ppMainProps, false);
break;
}
else if (strName == L"pict" || strName == L"object")
{
XmlUtils::CXmlNodes oChilds;
if (oParseNode.GetNodes(L"*", oChilds))
{
LONG lChildsCount = oChilds.GetCount();
bool bIsFound = false;
PPTX::Logic::SpTreeElem* pElem = NULL;
PPTX::Logic::COLEObject* pOle = NULL;
for (LONG k = 0; k < lChildsCount; k++)
{
XmlUtils::CXmlNode oNodeP;
oChilds.GetAt(k, oNodeP);
std::wstring strNameP = XmlUtils::GetNameNoNS(oNodeP.GetName());
if (L"shape" == strNameP ||
L"rect" == strNameP ||
L"oval" == strNameP ||
L"line" == strNameP ||
L"background"== strNameP ||
L"roundrect" == strNameP ||
L"polyline" == strNameP)
{
if(NULL == pElem)
{
pElem = new PPTX::Logic::SpTreeElem;
doc_LoadShape(pElem, oNodeP, ppMainProps, true);
#ifdef AVS_OFFICE_DRAWING_DUMP_XML_TEST
NSBinPptxRW::CXmlWriter oXmlW;
pElem->toXmlWriter(&oXmlW);
oXmlW.m_lDocType = XMLWRITER_DOC_TYPE_DOCX;
std::wstring strXmlTemp = oXmlW.GetXmlString();
#endif
}
}
else if (L"OLEObject" == strNameP)
{
pOle = new PPTX::Logic::COLEObject();
pOle->fromXML(oNodeP);
}
else if (L"group" == strNameP)
{
if(NULL == pElem)
{
pElem = new PPTX::Logic::SpTreeElem;
doc_LoadGroup(pElem, oNodeP, ppMainProps, true);
#ifdef AVS_OFFICE_DRAWING_DUMP_XML_TEST
NSBinPptxRW::CXmlWriter oXmlW;
oXmlW.m_lDocType = XMLWRITER_DOC_TYPE_DOCX;
pElem->toXmlWriter(&oXmlW);
std::wstring strXmlTemp = oXmlW.GetXmlString();
#endif
}
}
else if (L"shapetype" == strNameP)
{
AddShapeType(oNodeP.GetXml());
}
else
{
continue;
}
if (bIsFound)
break;
}
if(NULL != pElem)
{
if(NULL != pOle && pOle->m_sProgId.IsInit() && (pOle->m_oId.IsInit() || pOle->m_sFilepathBin.IsInit()))
{
PPTX::Logic::Shape* pShape = dynamic_cast<PPTX::Logic::Shape*>(pElem->GetElem().operator ->());
if(NULL != pShape && pShape->spPr.Fill.Fill.IsInit())
{
bool bImageOle = false;
if (pShape->spPr.Fill.m_type == PPTX::Logic::UniFill::blipFill) bImageOle = true;
PPTX::Logic::BlipFill oBlipFillNew;
if (!bImageOle)
oBlipFillNew.blip = new PPTX::Logic::Blip();
const PPTX::Logic::BlipFill& oBlipFill = bImageOle ? pShape->spPr.Fill.Fill.as<PPTX::Logic::BlipFill>() :
oBlipFillNew;
if(oBlipFill.blip.IsInit())
{
if (pOle->m_sFilepathBin.IsInit())
{
oBlipFill.blip->oleFilepathBin = pOle->m_sFilepathBin.get();
}
else if (pOle->m_oId.IsInit())
{
oBlipFill.blip->oleRid = pOle->m_oId.get().ToString();
}
if(strName == L"object")
{
int nDxaOrig = oParseNode.ReadAttributeInt(L"w:dxaOrig");
int nDyaOrig = oParseNode.ReadAttributeInt(L"w:dyaOrig");
if (nDxaOrig > 0 && nDyaOrig > 0)
{
pOle->m_oDxaOrig = nDxaOrig;
pOle->m_oDyaOrig = nDyaOrig;
}
}
PPTX::Logic::Pic *newElem = new PPTX::Logic::Pic();
newElem->blipFill = oBlipFill;
newElem->spPr = pShape->spPr;
newElem->style = pShape->style;
newElem->oleObject.reset(pOle);
pOle = NULL;
pElem->InitElem(newElem);
}
}
}
m_pBinaryWriter->WriteRecord1(1, *pElem);
}
RELEASEOBJECT(pElem)
RELEASEOBJECT(pOle)
}
break;
}
else if (strName == L"oleObj")
{
nullable<PPTX::Logic::Pic> pic = oParseNode.ReadNode(_T("p:pic"));
if (pic.is_init())
{
pic->fromXMLOle(oParseNode);
m_pBinaryWriter->WriteRecord2(1, pic);
}
break;
}
else if (strName == L"AlternateContent")
{
XmlUtils::CXmlNode oNodeDr;
if (oParseNode.GetNode(L"w:drawing", oNodeDr))
{
strName = L"drawing";
oParseNode = oNodeDr;
continue;
}
if (oParseNode.GetNode(L"mc:Choice", oNodeDr))
{
oParseNode = oNodeDr;
continue;
}
if (oParseNode.GetNode(L"w:pict", oNodeDr))
{
strName = L"pict";
oParseNode = oNodeDr;
continue;
}
if (oParseNode.GetNode(L"w:object", oNodeDr))
{
strName = L"object";
oParseNode = oNodeDr;
continue;
}
if (oParseNode.GetNode(L"xdr:sp", oNodeDr))
{
strName = L"sp";
oParseNode = oNodeDr;
continue;
}
if (oParseNode.GetNode(L"mc:Fallback", oNodeDr))
{
oParseNode = oNodeDr;
continue;
}
break;
}
else
{
oElem = oParseNode;
break;
}
}
}
if (oElem.is_init() == false) return L"";
NSBinPptxRW::CXmlWriter oXmlWriter;
oXmlWriter.m_lDocType = XMLWRITER_DOC_TYPE_DOCX;
oXmlWriter.m_bIsUseOffice2007 = true;
oXmlWriter.m_bIsTop = (1 == m_nCurrentIndexObject) ? true : false;
if (NULL == m_pOOXToVMLRenderer)
m_pOOXToVMLRenderer = new COOXToVMLGeometry();
oXmlWriter.m_pOOXToVMLRenderer = m_pOOXToVMLRenderer;
oXmlWriter.WriteString(L"<w:pict>");
if (oElem.is<PPTX::Logic::SpTree>())
{
ConvertGroupVML(oElem, *pMainProps, oXmlWriter);
}
else if (oElem.is<PPTX::Logic::Shape>())
{
ConvertShapeVML(oElem, *pMainProps, oXmlWriter);
}
oXmlWriter.WriteString(L"</w:pict>");
delete pMainProps;
return oXmlWriter.GetXmlString();
}
HRESULT CDrawingConverter::AddObject(const std::wstring& bsXml, std::wstring** pMainProps)
{
std::wstring sBegin(L"<main xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:p=\"urn:schemas-microsoft-com:office:powerpoint\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:ve=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\" xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\">");
@ -1023,10 +1360,8 @@ bool CDrawingConverter::ParceObject(const std::wstring& strXml, std::wstring** p
if (!oMainNode.GetNodes(L"*", oNodes))
return NULL;
//ULONG lCurrentPosition = m_pBinaryWriter->GetPosition();
m_pBinaryWriter->StartRecord(0);
m_pBinaryWriter->ClearShapeCurSizes();
m_pBinaryWriter->ClearCurShapePositionAndSizes();
LONG lCount = oNodes.GetCount();
for (LONG i = 0; i < lCount; ++i)
@ -1051,15 +1386,24 @@ bool CDrawingConverter::ParceObject(const std::wstring& strXml, std::wstring** p
if (oNodeAnchorInline.IsValid())
{
XmlUtils::CXmlNode oNodeExt;
if (oNodeAnchorInline.GetNode(L"wp:extent", oNodeExt))
{
m_pBinaryWriter->m_lWidthCurShape = oNodeExt.ReadAttributeInt(L"cx");
m_pBinaryWriter->m_lHeightCurShape = oNodeExt.ReadAttributeInt(L"cy");
}
m_pBinaryWriter->m_lXCurShape = 0;
m_pBinaryWriter->m_lYCurShape = 0;
if (oNodeAnchorInline.GetNode(L"wp:extent", oNodeExt))
{
m_pBinaryWriter->m_lCxCurShape = oNodeExt.ReadAttributeInt(L"cx");
m_pBinaryWriter->m_lCyCurShape = oNodeExt.ReadAttributeInt(L"cy");
}
XmlUtils::CXmlNode oNodeDocPr;
if (oNodeAnchorInline.GetNode(L"wp:docPr", oNodeDocPr))
{//vml shapes without id .. reset all id
oNodeDocPr.SetAttributeInt(L"id", m_lNextId++);
}
SendMainProps(oNodeAnchorInline.GetXml(), pMainProps);
XmlUtils::CXmlNode oNodeGraphic = oNodeAnchorInline.ReadNodeNoNS(L"graphic");
XmlUtils::CXmlNode oNodeGraphic = oNodeAnchorInline.ReadNodeNoNS(L"graphic");
XmlUtils::CXmlNode oNodeGraphicData = oNodeGraphic.ReadNodeNoNS(L"graphicData");
if (oNodeGraphicData.IsValid())
@ -1083,11 +1427,12 @@ bool CDrawingConverter::ParceObject(const std::wstring& strXml, std::wstring** p
else if (L"wpc:wpc" == oNodeContent.GetName())
{
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree();
pTree->grpSpPr.xfrm = new PPTX::Logic::Xfrm();
pTree->grpSpPr.xfrm->offX = 0;
pTree->grpSpPr.xfrm->offY = 0;
pTree->grpSpPr.xfrm->extX = m_pBinaryWriter->m_lWidthCurShape;
pTree->grpSpPr.xfrm->extY = m_pBinaryWriter->m_lHeightCurShape;
pTree->grpSpPr.xfrm->offX = m_pBinaryWriter->m_lXCurShape;
pTree->grpSpPr.xfrm->offY = m_pBinaryWriter->m_lYCurShape;
pTree->grpSpPr.xfrm->extX = m_pBinaryWriter->m_lCxCurShape;
pTree->grpSpPr.xfrm->extY = m_pBinaryWriter->m_lCyCurShape;
pTree->fromXML(oNodeContent);
oElem.InitElem(pTree);
@ -1104,7 +1449,7 @@ bool CDrawingConverter::ParceObject(const std::wstring& strXml, std::wstring** p
if (!oElem.is_init())
{
std::wstring strXFRM = L"<a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"" +
std::to_wstring(m_pBinaryWriter->m_lWidthCurShape) + L"\" cy=\"" + std::to_wstring(m_pBinaryWriter->m_lHeightCurShape) + L"\"/></a:xfrm>";
std::to_wstring(m_pBinaryWriter->m_lCxCurShape) + L"\" cy=\"" + std::to_wstring(m_pBinaryWriter->m_lCyCurShape) + L"\"/></a:xfrm>";
std::wstring strUnsupported = L"<wps:wsp \
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
@ -1366,9 +1711,6 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
pDiagramData = dynamic_cast<OOX::CDiagramData*>(oFileData.operator->());
if (pDiagramData)
{
m_strCurrentRelsPath = pDiagramData->m_strFilename;
SetCurrentRelsPath();
for (int i = 0; (pDiagramData->m_oExtLst.IsInit()) && i < pDiagramData->m_oExtLst->m_arrExt.size(); i++)
{
if (pDiagramData->m_oExtLst->m_arrExt[i]->m_oDataModelExt.IsInit())
@ -1379,12 +1721,12 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
}
}
}
if (id_drawing.is_init())
{
oFileDrawing = (*m_pBinaryWriter->m_pCommonRels)->Find(*id_drawing);
pDiagramDrawing = dynamic_cast<OOX::CDiagramDrawing*>(oFileDrawing.operator->());
}
if (!pDiagramDrawing)
if (!pDiagramDrawing && pDiagramData)
{
OOX::CPath pathDiagramData = pDiagramData->m_strFilename;
@ -1393,15 +1735,21 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
OOX::CPath pathDiagramDrawing = pathDiagramData.GetDirectory() + FILE_SEPARATOR_STR + L"drawing" + strId + L".xml";
oFileDrawing = smart_ptr<OOX::File>(dynamic_cast<OOX::File*>(new OOX::CDiagramDrawing(pathDiagramDrawing)));
if (oFileDrawing.IsInit())
pDiagramDrawing = dynamic_cast<OOX::CDiagramDrawing*>(oFileDrawing.operator->());
if (NSFile::CFileBinary::Exists(pathDiagramDrawing.GetPath()))
{
oFileDrawing = smart_ptr<OOX::File>(dynamic_cast<OOX::File*>(new OOX::CDiagramDrawing(pathDiagramDrawing)));
if (oFileDrawing.IsInit())
pDiagramDrawing = dynamic_cast<OOX::CDiagramDrawing*>(oFileDrawing.operator->());
}
}
}
if (pDiagramDrawing)
if ((pDiagramDrawing) && (pDiagramDrawing->m_oShapeTree.IsInit()))
{
result->InitElem(pDiagramDrawing->m_oShapeTree.operator->());
result->InitElem(new PPTX::Logic::SpTree(*pDiagramDrawing->m_oShapeTree));
//to correct write blipFill rId to binary
m_strCurrentRelsPath = pDiagramDrawing->GetReadPath().GetPath();
SetCurrentRelsPath();
}
else
{//BG-FSC1.docx
@ -1414,33 +1762,26 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
{
_pElem.grpSpPr.xfrm = new PPTX::Logic::Xfrm();
_pElem.grpSpPr.xfrm->offX = (int)0;
_pElem.grpSpPr.xfrm->offY = (int)0;
_pElem.grpSpPr.xfrm->extX = m_pBinaryWriter->m_lWidthCurShape;
_pElem.grpSpPr.xfrm->extY = m_pBinaryWriter->m_lHeightCurShape;
_pElem.grpSpPr.xfrm->offX = m_pBinaryWriter->m_lXCurShape;
_pElem.grpSpPr.xfrm->offY = m_pBinaryWriter->m_lYCurShape;
_pElem.grpSpPr.xfrm->extX = m_pBinaryWriter->m_lCxCurShape;
_pElem.grpSpPr.xfrm->extY = m_pBinaryWriter->m_lCyCurShape;
_pElem.grpSpPr.xfrm->chOffX = (int)0;
_pElem.grpSpPr.xfrm->chOffY = (int)0;
_pElem.grpSpPr.xfrm->chExtX = m_pBinaryWriter->m_lWidthCurShape;
_pElem.grpSpPr.xfrm->chExtY = m_pBinaryWriter->m_lHeightCurShape;
_pElem.grpSpPr.xfrm->chExtX = m_pBinaryWriter->m_lCxCurShape;
_pElem.grpSpPr.xfrm->chExtY = m_pBinaryWriter->m_lCyCurShape;
}
else
{
if (!_pElem.grpSpPr.xfrm->offX.is_init())
_pElem.grpSpPr.xfrm->offX = (int)0;
if (!_pElem.grpSpPr.xfrm->offY.is_init())
_pElem.grpSpPr.xfrm->offY = (int)0;
if (!_pElem.grpSpPr.xfrm->extX.is_init())
_pElem.grpSpPr.xfrm->extX = m_pBinaryWriter->m_lWidthCurShape;
if (!_pElem.grpSpPr.xfrm->extY.is_init())
_pElem.grpSpPr.xfrm->extY = m_pBinaryWriter->m_lHeightCurShape;
if (!_pElem.grpSpPr.xfrm->chOffX.is_init())
_pElem.grpSpPr.xfrm->chOffX = (int)0;
if (!_pElem.grpSpPr.xfrm->chOffY.is_init())
_pElem.grpSpPr.xfrm->chOffY = (int)0;
if (!_pElem.grpSpPr.xfrm->chExtX.is_init())
_pElem.grpSpPr.xfrm->chExtX = m_pBinaryWriter->m_lWidthCurShape;
if (!_pElem.grpSpPr.xfrm->chExtY.is_init())
_pElem.grpSpPr.xfrm->chExtY = m_pBinaryWriter->m_lHeightCurShape;
if (!_pElem.grpSpPr.xfrm->offX.is_init()) _pElem.grpSpPr.xfrm->offX = m_pBinaryWriter->m_lXCurShape;
if (!_pElem.grpSpPr.xfrm->offY.is_init()) _pElem.grpSpPr.xfrm->offY = m_pBinaryWriter->m_lYCurShape;
if (!_pElem.grpSpPr.xfrm->extX.is_init()) _pElem.grpSpPr.xfrm->extX = m_pBinaryWriter->m_lCxCurShape;
if (!_pElem.grpSpPr.xfrm->extY.is_init()) _pElem.grpSpPr.xfrm->extY = m_pBinaryWriter->m_lCyCurShape;
if (!_pElem.grpSpPr.xfrm->chOffX.is_init()) _pElem.grpSpPr.xfrm->chOffX = (int)0;
if (!_pElem.grpSpPr.xfrm->chOffY.is_init()) _pElem.grpSpPr.xfrm->chOffY = (int)0;
if (!_pElem.grpSpPr.xfrm->chExtX.is_init()) _pElem.grpSpPr.xfrm->chExtX = m_pBinaryWriter->m_lCxCurShape;
if (!_pElem.grpSpPr.xfrm->chExtY.is_init()) _pElem.grpSpPr.xfrm->chExtY = m_pBinaryWriter->m_lCyCurShape;
}
}
@ -2482,8 +2823,11 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
}
else
{
m_pBinaryWriter->m_lWidthCurShape = 0;
m_pBinaryWriter->m_lHeightCurShape = 0;
m_pBinaryWriter->m_lXCurShape = 0;
m_pBinaryWriter->m_lYCurShape = 0;
m_pBinaryWriter->m_lCxCurShape = 0;
m_pBinaryWriter->m_lCyCurShape = 0;
pShape->spPr.xfrm = new PPTX::Logic::Xfrm();
pShape->spPr.xfrm->offX = oProps.X;
@ -2889,13 +3233,16 @@ std::wstring CDrawingConverter::GetDrawingMainProps(XmlUtils::CXmlNode& oNode, P
if (oCssStyles.m_mapSettings.end() != pPair)
margB = (unsigned long)(dKoef * parserPoint.FromString(pPair->second));
oProps.X = left;
oProps.Y = top;
oProps.Width = width;
oProps.Height = height;
oProps.X = left;
oProps.Y = top;
oProps.Width = width;
oProps.Height = height;
m_pBinaryWriter->m_lWidthCurShape = width;
m_pBinaryWriter->m_lHeightCurShape = height;
m_pBinaryWriter->m_lXCurShape = left;
m_pBinaryWriter->m_lYCurShape = top;
m_pBinaryWriter->m_lCxCurShape = width;
m_pBinaryWriter->m_lCyCurShape = height;
if (bIsInline)
{
@ -4240,11 +4587,10 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
oXmlWriter.m_bIsTop = (1 == m_nCurrentIndexObject) ? true : false;
#if defined(BUILD_CONFIG_FULL_VERSION) && defined(AVS_USE_CONVERT_PPTX_TOCUSTOM_VML)
if (NULL == m_pOOXToVMLRenderer)
m_pOOXToVMLRenderer = new COOXToVMLGeometry();
oXmlWriter.m_pOOXToVMLRenderer = m_pOOXToVMLRenderer;
#endif
if(bOle)
{
ConvertPicVML(oElem, bsMainProps, oXmlWriter);
@ -4253,8 +4599,8 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
{
bool bIsNeedConvert2007 = false;
#ifdef BUILD_CONFIG_FULL_VERSION
if (m_bIsUseConvertion2007)
if (m_bIsUseConvertion2007)
{
if (oElem.is<PPTX::Logic::SpTree>())
{
@ -4267,7 +4613,6 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
bIsNeedConvert2007 = true;
}
}
#endif
oXmlWriter.WriteString(L"<w:drawing>");
oXmlWriter.WriteString(strMainProps);
@ -4330,11 +4675,9 @@ void CDrawingConverter::SaveObjectExWriterInit(NSBinPptxRW::CXmlWriter& oXmlWrit
oXmlWriter.m_bIsTop = (1 == m_nCurrentIndexObject) ? true : false;
#if defined(BUILD_CONFIG_FULL_VERSION) && defined(AVS_USE_CONVERT_PPTX_TOCUSTOM_VML)
if (NULL == m_pOOXToVMLRenderer)
m_pOOXToVMLRenderer = new COOXToVMLGeometry();
oXmlWriter.m_pOOXToVMLRenderer = m_pOOXToVMLRenderer;
#endif
}
void CDrawingConverter::SaveObjectExWriterRelease(NSBinPptxRW::CXmlWriter& oXmlWriter)
{

View File

@ -172,7 +172,6 @@ namespace NSBinPptxRW
PPTX::WrapperWritingElement* m_pElement;
CElementProps* m_pProps;
public:
CElement();
~CElement();
@ -207,35 +206,37 @@ namespace NSBinPptxRW
~CDrawingConverter();
HRESULT SetMainDocument (BinDocxRW::CDocxSerializer* pDocument);
HRESULT SetRelsPath (const std::wstring& bsRelsPath);
HRESULT SetRelsPath (const std::wstring& sRelsPath);
std::wstring GetRelsPath ();
HRESULT SetMediaDstPath (const std::wstring& bsMediaPath);
HRESULT SetEmbedDstPath (const std::wstring& bsEmbedPath);
HRESULT SetMediaDstPath (const std::wstring& sMediaPath);
HRESULT SetEmbedDstPath (const std::wstring& sEmbedPath);
HRESULT AddShapeType (const std::wstring& bsXml);
HRESULT AddObject (const std::wstring& bsXml, std::wstring** pMainProps);
HRESULT GetThemeBinary (BYTE** ppBinary, long& lBinarySize, const std::wstring& bsThemeFilePath);
HRESULT AddShapeType (const std::wstring& sXml);
HRESULT AddObject (const std::wstring& sXml, std::wstring** pMainProps);
HRESULT GetThemeBinary (BYTE** ppBinary, long& lBinarySize, const std::wstring& sThemeFilePath);
HRESULT SaveThemeXml (long lStart, long lLength, const std::wstring& bsThemePath);
HRESULT SaveObject (long lStart, long lLength, const std::wstring& bsMainProps, std::wstring & sXml);
HRESULT SaveObjectEx (long lStart, long lLength, const std::wstring& bsMainProps, long lDocType, std::wstring & sXml);
HRESULT SaveThemeXml (long lStart, long lLength, const std::wstring& sThemePath);
HRESULT SaveObject (long lStart, long lLength, const std::wstring& sMainProps, std::wstring & sXml);
HRESULT SaveObjectEx (long lStart, long lLength, const std::wstring& sMainProps, long lDocType, std::wstring & sXml);
void SaveObjectExWriterInit (NSBinPptxRW::CXmlWriter& oXmlWriter, LONG lDocType);
void SaveObjectExWriterRelease (NSBinPptxRW::CXmlWriter& oXmlWriter);
std::wstring ConvertObjectToVml (const std::wstring& sXml);
std::wstring SaveObjectBackground(LONG lStart, LONG lLength);
HRESULT GetRecordBinary (long lRecordType, const std::wstring& bsXml);
HRESULT GetRecordBinary (long lRecordType, const std::wstring& sXml);
HRESULT GetRecordXml (long lStart, long lLength, long lRecType, long lDocType, std::wstring & sXml);
HRESULT SetDstContentRels ();
HRESULT SaveDstContentRels (const std::wstring& bsRelsPath);
HRESULT WriteRels (const std::wstring& bsType, const std::wstring& bsTarget, const std::wstring& bsTargetMode, long* lId);
HRESULT LoadClrMap (const std::wstring& bsXml);
HRESULT SaveDstContentRels (const std::wstring& sRelsPath);
HRESULT WriteRels (const std::wstring& sType, const std::wstring& sTarget, const std::wstring& sTargetMode, long* lId);
HRESULT LoadClrMap (const std::wstring& sXml);
HRESULT(GetTxBodyBinary) (const std::wstring& bsXml);
HRESULT(GetTxBodyBinary) (const std::wstring& sXml);
HRESULT(GetTxBodyXml) (long lStart, std::wstring & Xml);
HRESULT(SetFontDir) (const std::wstring& bsFontDir);
HRESULT(SetFontDir) (const std::wstring& sFontDir);
HRESULT SetFontPicker (COfficeFontPicker* pFontPicker);
@ -274,10 +275,10 @@ namespace NSBinPptxRW
void LoadCoordSize (XmlUtils::CXmlNode& oNode, ::CShape* pShape);
std::wstring GetDrawingMainProps (XmlUtils::CXmlNode& oNode, PPTX::CCSS& oCssStyles, CSpTreeElemProps& oProps);
void ConvertMainPropsToVML (const std::wstring& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter, PPTX::Logic::SpTreeElem& oElem);
void ConvertPicVML (PPTX::Logic::SpTreeElem& oElem, const std::wstring& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertShapeVML (PPTX::Logic::SpTreeElem& oShape, const std::wstring& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertGroupVML (PPTX::Logic::SpTreeElem& oGroup, const std::wstring& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertMainPropsToVML (const std::wstring& sMainProps, NSBinPptxRW::CXmlWriter& oWriter, PPTX::Logic::SpTreeElem& oElem);
void ConvertPicVML (PPTX::Logic::SpTreeElem& oElem, const std::wstring& sMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertShapeVML (PPTX::Logic::SpTreeElem& oShape, const std::wstring& sMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertGroupVML (PPTX::Logic::SpTreeElem& oGroup, const std::wstring& sMainProps, NSBinPptxRW::CXmlWriter& oWriter);
void ConvertTextVML (XmlUtils::CXmlNode &nodeTextBox, PPTX::Logic::Shape* pShape);

View File

@ -1,143 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 "stdafx.h"
#include "Directory.h"
//#include <strsafe.h>
//#include <shlobj.h>
namespace FileSystem {
LPCTSTR Directory::GetCurrentDirectory() {
static const int bufferSize = MAX_PATH;
LPTSTR directory = new TCHAR[bufferSize];
DWORD lenght = ::GetCurrentDirectory(bufferSize, directory);
if (lenght == 0) {
delete[] directory;
directory = NULL;
}
return directory;
}
String Directory::GetCurrentDirectoryS() {
LPCTSTR directory = GetCurrentDirectory();
if (directory == NULL)
return String();
return String(directory);
}
bool Directory::CreateDirectory(LPCTSTR path) {
bool directoryCreated = false;
if (::CreateDirectory(path, NULL) == TRUE)
directoryCreated = true;
return directoryCreated;
}
bool Directory::CreateDirectory(const String& path) {
return CreateDirectory(path.c_str());
}
bool Directory::CreateDirectories(LPCTSTR path)
{
int codeResult = ERROR_SUCCESS;
codeResult = ::CreateDirectory (path, NULL);
//codeResult = SHCreateDirectory (NULL, path);
bool created = false;
if (codeResult == ERROR_SUCCESS)
created = true;
return created;
}
StringArray Directory::GetFilesInDirectory(LPCTSTR path, const bool& andSubdirectories) {
size_t pathLength = 0;
StringCchLength(path, MAX_PATH, &pathLength);
++pathLength;
size_t pathToFilesLength = pathLength + 3;
LPTSTR pathToFiles = new TCHAR[pathToFilesLength];
StringCchCopy(pathToFiles, pathLength, path);
StringCchCat(pathToFiles, pathToFilesLength, TEXT("\\*"));
WIN32_FIND_DATA findData;
HANDLE findResult = FindFirstFile(pathToFiles, &findData);
delete[] pathToFiles;
if (findResult == INVALID_HANDLE_VALUE)
return StringArray();
StringArray files;
do {
if (andSubdirectories || !(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
String file = findData.cFileName;
files.insert(files.end(), file);
}
} while (FindNextFile(findResult, &findData));
FindClose(findResult);
return files;
}
StringArray Directory::GetFilesInDirectory(const String& path, const bool& andSubdirectories) {
LPCTSTR pathW = path.c_str();
return GetFilesInDirectory(pathW, andSubdirectories);
}
int Directory::GetFilesCount(const CString& path, const bool& recursive) {
CString pathMask = path + _T("\\*");
WIN32_FIND_DATA findData;
HANDLE findResult = FindFirstFile(pathMask, &findData);
int filesCount = 0;
do {
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
if (!recursive)
continue;
if ((CString) findData.cFileName == _T("."))
continue;
if ((CString) findData.cFileName == _T(".."))
continue;
CString innerPath = path + _T('\\') + (CString) findData.cFileName;
filesCount += GetFilesCount(innerPath, recursive);
}
else
++filesCount;
} while (FindNextFile(findResult, &findData));
FindClose(findResult);
return filesCount;
}
}

View File

@ -1,57 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
#include "Settings.h"
#if defined(_WIN32) || defined (_WIN64)
#include <windows.h>
#else
#endif
namespace FileSystem {
class Directory {
public:
static LPCTSTR GetCurrentDirectory();
static String GetCurrentDirectoryS();
static bool CreateDirectory(LPCTSTR path);
static bool CreateDirectory(const String& path);
static bool CreateDirectories(LPCTSTR path);
static StringArray GetFilesInDirectory(LPCTSTR path, const bool& andSubdirectories = false);
static StringArray GetFilesInDirectory(const String& path, const bool& andSubdirectories = false);
static int GetFilesCount(const std::wstring& path, const bool& recursive = false);
};
}

View File

@ -144,7 +144,7 @@ namespace NSBinPptxRW
int nRes = 0;
//шаблон display[N]image.ext
std::wstring sFind1 = _T("display");
int nIndex1 = strInput.find(sFind1);
int nIndex1 = (int)strInput.find(sFind1);
if(-1 != nIndex1)
{
if(nIndex1 + sFind1.length() < strInput.length())
@ -152,8 +152,8 @@ namespace NSBinPptxRW
wchar_t cRes = strInput[nIndex1 + sFind1.length()];
if('1' <= cRes && cRes <= '6')
{
int nImageIndex = nIndex1 + sFind1.length() + 1;
if(nImageIndex == strInput.find(_T("image"), nImageIndex))
int nImageIndex = nIndex1 + (int)sFind1.length() + 1;
if(nImageIndex == (int)strInput.find(_T("image"), nImageIndex))
nRes = cRes - '0';
}
@ -172,7 +172,7 @@ namespace NSBinPptxRW
return pPair->second;
std::wstring strExts = _T(".jpg");
int nIndexExt = strInput.rfind(wchar_t('.'));
int nIndexExt = (int)strInput.rfind(wchar_t('.'));
if (-1 != nIndexExt)
strExts = strInput.substr(nIndexExt);
@ -241,9 +241,12 @@ namespace NSBinPptxRW
std::string sDataUtf8 = NSFile::CUtf8Converter::GetUtf8StringFromUnicode2(sData.c_str(), sData.size());
BYTE head[] = {0x00,0x00,0x00,0x00};
//LittleEndian
unsigned char* aData = (unsigned char*)sDataUtf8.c_str();
_UINT32 nDataSize = sDataUtf8.size();
unsigned char* aData = (unsigned char*)sDataUtf8.c_str();
_UINT32 nDataSize = (_UINT32)sDataUtf8.size();
memcpy(head, &nDataSize, sizeof(_UINT32));
POLE::Stream oStream(&oStorage, "\001Ole10Native", true, arraysize(head) + nDataSize);
oStream.write(head, arraysize(head));
oStream.write(aData, nDataSize);
@ -322,10 +325,10 @@ namespace NSBinPptxRW
bool CImageManager2::IsNeedDownload(const std::wstring& strFile)
{
int n1 = strFile.find(_T("www"));
int n2 = strFile.find(_T("http"));
int n3 = strFile.find(_T("ftp"));
int n4 = strFile.find(_T("https://"));
size_t n1 = strFile.find(_T("www"));
size_t n2 = strFile.find(_T("http"));
size_t n3 = strFile.find(_T("ftp"));
size_t n4 = strFile.find(_T("https://"));
//если nI сранивать не с 0, то будут проблемы
//потому что в инсталяции мы кладем файлы в /var/www...
@ -341,7 +344,7 @@ namespace NSBinPptxRW
return pPair->second;
std::wstring strExts = _T(".jpg");
int nIndexExt = strUrl.rfind(wchar_t('.'));
int nIndexExt = (int)strUrl.rfind(wchar_t('.'));
if (-1 != nIndexExt)
strExts = strUrl.substr(nIndexExt);
@ -423,22 +426,33 @@ namespace NSBinPptxRW
m_lPosition += lSize;
m_pStreamCur = m_pStreamData + m_lPosition;
}
double CBinaryFileWriter::GetWidthMM()
double CBinaryFileWriter::GetShapeHeight()
{
if (m_lWidthCurShape == 0)
if (m_lCyCurShape == 0)
return -1;
return (double)m_lWidthCurShape / 36000;
return (double)m_lCyCurShape / 36000; //mm
}
double CBinaryFileWriter::GetHeightMM()
double CBinaryFileWriter::GetShapeWidth()
{
if (m_lHeightCurShape == 0)
if (m_lCyCurShape == 0)
return -1;
return (double)m_lHeightCurShape / 36000;
return (double)m_lCxCurShape / 36000;
}
void CBinaryFileWriter::ClearShapeCurSizes()
double CBinaryFileWriter::GetShapeY()
{
m_lWidthCurShape = 0;
m_lHeightCurShape = 0;
return (double)m_lYCurShape / 36000;
}
double CBinaryFileWriter::GetShapeX()
{
return (double)m_lXCurShape / 36000; //mm
}
void CBinaryFileWriter::ClearCurShapePositionAndSizes()
{
m_lXCurShape = 0;
m_lYCurShape = 0;
m_lCxCurShape = 0;
m_lCyCurShape = 0;
}
void CBinaryFileWriter::Clear()
{
@ -451,8 +465,11 @@ namespace NSBinPptxRW
m_lStackPosition = 0;
memset(m_arStack, 0, MAX_STACK_SIZE * sizeof(_UINT32));
m_lWidthCurShape = 0;
m_lHeightCurShape = 0;
m_lCxCurShape = 0;
m_lCyCurShape = 0;
m_lXCurShape = 0;
m_lYCurShape = 0;
}
void CBinaryFileWriter::SetMainDocument(BinDocxRW::CDocxSerializer* pMainDoc)
@ -618,15 +635,15 @@ namespace NSBinPptxRW
}
void CBinaryFileWriter::WriteBYTEArray(const BYTE* pBuffer, size_t len)
{
CheckBufferSize(len);
CheckBufferSize((_UINT32)len);
memcpy(m_pStreamCur, pBuffer, len);
m_lPosition += (_UINT32)len;
m_pStreamCur += len;
}
void CBinaryFileWriter::WriteStringA(std::string& sBuffer)
{
_INT32 lSize = sBuffer.length();
_INT32 lSizeMem = lSize * sizeof(char);
_UINT32 lSize = (_UINT32)sBuffer.length();
_UINT32 lSizeMem = lSize * sizeof(char);
CheckBufferSize(UINT32_SIZEOF + lSizeMem);
#ifdef _IOS
@ -638,32 +655,33 @@ namespace NSBinPptxRW
m_pStreamCur += UINT32_SIZEOF;
memcpy(m_pStreamCur, sBuffer.c_str(), lSizeMem);
m_lPosition += lSizeMem;
m_pStreamCur += lSizeMem;
}
void CBinaryFileWriter::WriteStringW(std::wstring& sBuffer)
{
_WriteStringWithLength(sBuffer.c_str(), sBuffer.length(), true);
_WriteStringWithLength(sBuffer.c_str(), (_UINT32)sBuffer.length(), true);
}
void CBinaryFileWriter::WriteStringW(const std::wstring& sBuffer)
{
_WriteStringWithLength(sBuffer.c_str(), sBuffer.length(), true);
_WriteStringWithLength(sBuffer.c_str(), (_UINT32)sBuffer.length(), true);
}
void CBinaryFileWriter::WriteStringW2(std::wstring& sBuffer)
{
_WriteStringWithLength(sBuffer.c_str(), sBuffer.length(), false);
_WriteStringWithLength(sBuffer.c_str(), (_UINT32)sBuffer.length(), false);
}
void CBinaryFileWriter::WriteStringW3(std::wstring& sBuffer)
{
_WriteString(sBuffer.c_str(), sBuffer.length());
_WriteString(sBuffer.c_str(), (_UINT32)sBuffer.length());
}
void CBinaryFileWriter::WriteStringW3(const std::wstring& sBuffer)
{
_WriteString(sBuffer.c_str(), sBuffer.length());
_WriteString(sBuffer.c_str(), (_UINT32)sBuffer.length());
}
void CBinaryFileWriter::WriteStringW4(const std::wstring& sBuffer)
{
_WriteString(sBuffer.c_str(), sBuffer.length());
_WriteString(sBuffer.c_str(), (_UINT32)sBuffer.length());
}
CBinaryFileWriter::CBinaryFileWriter()
{
@ -710,7 +728,7 @@ namespace NSBinPptxRW
void CBinaryFileWriter::WriteReserved(size_t lCount)
{
CheckBufferSize(lCount);
CheckBufferSize((_UINT32)lCount);
memset(m_pStreamCur, 0, lCount);
m_pStreamCur += lCount;
m_lPosition += (_UINT32)lCount;
@ -740,7 +758,7 @@ namespace NSBinPptxRW
WriteBYTE(bType);
std::wstring* s = const_cast<std::wstring*>(&val);
_WriteStringWithLength(s->c_str(), s->length(), false);
_WriteStringWithLength(s->c_str(), (_UINT32)s->length(), false);
}
void CBinaryFileWriter::WriteString2(int type, const NSCommon::nullable_string& val)
{
@ -750,7 +768,7 @@ namespace NSBinPptxRW
void CBinaryFileWriter::WriteString(const std::wstring& val)
{
std::wstring* s = const_cast<std::wstring*>(&val);
_WriteStringWithLength(s->c_str(), s->length(), false);
_WriteStringWithLength(s->c_str(), (_UINT32)s->length(), false);
}
void CBinaryFileWriter::WriteString1Data(int type, const WCHAR* pData, _UINT32 len)
@ -1290,7 +1308,7 @@ namespace NSBinPptxRW
return m_lNextId;
}
int CBinaryFileReader::Seek(_INT32 _pos)
int CBinaryFileReader::Seek(LONG _pos)
{
if (_pos > m_lSize)
return 1;
@ -1298,13 +1316,13 @@ namespace NSBinPptxRW
m_pDataCur = m_pData + m_lPos;
return 0;
}
int CBinaryFileReader::Skip(_INT32 _skip)
int CBinaryFileReader::Skip(LONG _skip)
{
if (_skip < 0)
return 1;
return Seek(m_lPos + _skip);
}
bool CBinaryFileReader::Peek(int nSizeToRead = 0)
bool CBinaryFileReader::Peek(LONG nSizeToRead = 0)
{
return !(m_lPos + nSizeToRead > m_lSize);
}
@ -1410,7 +1428,7 @@ namespace NSBinPptxRW
} // 8 byte
double CBinaryFileReader::GetDoubleReal()
{
if (m_lPos + DOUBLE_SIZEOF > m_lSize)
if (m_lPos + (int)DOUBLE_SIZEOF > m_lSize)
return 0;
#ifdef _IOS
double res = 0.0;
@ -1538,12 +1556,12 @@ namespace NSBinPptxRW
Skip(_len);
}
_INT32 CBinaryFileReader::GetPos()
LONG CBinaryFileReader::GetPos()
{
return m_lPos;
}
_INT32 CBinaryFileReader::GetSize()
LONG CBinaryFileReader::GetSize()
{
return m_lSize;
}

View File

@ -233,8 +233,8 @@ namespace NSBinPptxRW
CSeekTableEntry();
};
CCommonWriter* m_pCommon;
std::wstring m_strMainFolder;
CCommonWriter* m_pCommon;
std::wstring m_strMainFolder;
NSCommon::smart_ptr<PPTX::CCommonRels> * m_pCommonRels;
BinDocxRW::CDocxSerializer * m_pMainDocument;
@ -253,22 +253,25 @@ namespace NSBinPptxRW
std::vector<CSeekTableEntry> m_arMainTables;
public:
_INT32 m_lWidthCurShape;
_INT32 m_lHeightCurShape;
_INT32 m_lCxCurShape; //emu
_INT32 m_lCyCurShape;
public:
BYTE* GetBuffer();
_INT32 m_lXCurShape;
_INT32 m_lYCurShape;
BYTE* GetBuffer();
_UINT32 GetPosition();
void SetPosition(const _UINT32& lPosition);
void Skip(const _UINT32& lSize);
void SetPosition(const _UINT32& lPosition);
void Skip(const _UINT32& lSize);
double GetWidthMM();
double GetHeightMM();
void ClearShapeCurSizes();
double GetShapeWidth();
double GetShapeHeight();
double GetShapeX();
double GetShapeY();
// -------------------- stream simple types -----------------------
public:
void Clear();
void ClearCurShapePositionAndSizes();
void Clear();
void SetMainDocument(BinDocxRW::CDocxSerializer* pMainDoc);
@ -305,7 +308,6 @@ namespace NSBinPptxRW
void WriteDouble64 (const double& dValue);
// --------------------------------------------------------
public:
CBinaryFileWriter();
~CBinaryFileWriter();
@ -316,8 +318,6 @@ namespace NSBinPptxRW
void WriteReserved(size_t lCount);
void WriteMainPart();
public:
void WriteString1 (int type, const std::wstring& val);
void WriteString2 (int type, const NSCommon::nullable_string& val);
@ -400,14 +400,14 @@ namespace NSBinPptxRW
bool GetSafearray(BYTE **ppArray, size_t& szCount);
private:
_INT32 _WriteString(const WCHAR* sBuffer, _UINT32 lCount);
void _WriteStringWithLength(const WCHAR* sBuffer, _UINT32 lCount, bool bByte);
_INT32 _WriteString(const WCHAR* sBuffer, _UINT32 lCount);
void _WriteStringWithLength(const WCHAR* sBuffer, _UINT32 lCount, bool bByte);
};
class CSlideMasterInfo
{
public:
_INT32 m_lThemeIndex;
std::vector<LONG> m_arLayouts;
_INT32 m_lThemeIndex;
std::vector<LONG> m_arLayouts;
public:
CSlideMasterInfo();
@ -460,28 +460,27 @@ namespace NSBinPptxRW
class CBinaryFileReader
{
private:
BYTE* m_pData;
_INT32 m_lSize;
_INT32 m_lPos;
BYTE* m_pDataCur;
BYTE* m_pData;
LONG m_lSize;
LONG m_lPos;
BYTE* m_pDataCur;
_INT32 m_lNextId;
public:
//CRelsGenerator m_oRels;
std::wstring m_strFolder;
std::wstring m_strFolderThemes;
std::wstring m_strFolderExternalThemes;
std::wstring m_strFolder;
std::wstring m_strFolderThemes;
std::wstring m_strFolderExternalThemes;
_INT32 m_lChartNumber;
std::wstring m_strContentTypes;
_INT32 m_lChartNumber;
std::wstring m_strContentTypes;
BinDocxRW::CDocxSerializer* m_pMainDocument;
_INT32 m_lDocumentType;
_INT32 m_lDocumentType;
CRelsGenerator* m_pRels;
std::vector<CRelsGenerator*> m_stackRels;
CRelsGenerator* m_pRels;
std::vector<CRelsGenerator*> m_stackRels;
int m_nCurrentRelsStack;
public:
@ -496,9 +495,9 @@ namespace NSBinPptxRW
public:
int Seek(_INT32 _pos);
int Skip(_INT32 _skip);
bool Peek(int nSizeToRead);
int Seek (LONG _pos);
int Skip (LONG _skip);
bool Peek (LONG nSizeToRead);
// 1 bytes
BYTE GetUChar();
@ -531,9 +530,9 @@ namespace NSBinPptxRW
std::string GetString2A();
void SkipRecord();
_INT32 GetPos();
LONG GetPos();
_INT32 GetSize();
LONG GetSize();
BYTE* GetData();
BYTE* GetPointer(int nSize);

View File

@ -59,8 +59,8 @@ public:
{
InitCRCTable();
DWORD dwRes = m_dwInitCrc;
int nSize = sStream.length();
for (int i=0;i<nSize;i++)
for (size_t i=0; i < sStream.length(); i++)
{
dwRes = m_arCRCTable[(dwRes ^ (BYTE)sStream[i]) & 0xFF] ^ (dwRes >> 8);
}

View File

@ -257,54 +257,74 @@ namespace PPTX2EditorAdvanced
tablestyles->toPPTY(&oBinaryWriter);
}
// Presentation
// Presentation
oBinaryWriter.StartMainRecord(NSMainTables::Presentation);
presentation->toPPTY(&oBinaryWriter);
// themes
// themes
oBinaryWriter.StartMainRecord(NSMainTables::Themes);
ULONG nCountThemes = (ULONG)_themes.size();
ULONG nCountThemes = 0;
for (size_t i = 0; i < _themes.size(); ++i)
{
if (_themes[i].IsInit()) nCountThemes++;
}
oBinaryWriter.WriteULONG(nCountThemes);
for (ULONG i = 0; i < nCountThemes; ++i)
for (size_t i = 0; i < _themes.size(); ++i)
{
if (_themes[i].IsInit() == false) continue;
_themes[i]->toPPTY(&oBinaryWriter);
}
// slidemasters
// slidemasters
oBinaryWriter.StartMainRecord(NSMainTables::SlideMasters);
ULONG nCountSM = (ULONG)_slideMasters.size();
ULONG nCountSM = 0;
for (size_t i = 0; i < _slideMasters.size(); ++i)
{
if (_slideMasters[i].IsInit()) nCountSM++;
}
oBinaryWriter.WriteULONG(nCountSM);
for (ULONG i = 0; i < nCountSM; ++i)
for (size_t i = 0; i < _slideMasters.size(); ++i)
{
if (_slideMasters[i].IsInit() == false) continue;
_slideMasters[i]->toPPTY(&oBinaryWriter);
}
// slidelayouts
// slidelayouts
oBinaryWriter.StartMainRecord(NSMainTables::SlideLayouts);
ULONG nCountL = 0;
for (ULONG i = 0; i < _layouts.size(); ++i)
ULONG nCountL = 0;
for (size_t i = 0; i < _layouts.size(); ++i)
{
if (_layouts[i].IsInit())nCountL++;
if (_layouts[i].IsInit())nCountL++;
}
oBinaryWriter.WriteULONG(nCountL);
for (ULONG i = 0; i < _layouts.size(); ++i)
for (size_t i = 0; i < _layouts.size(); ++i)
{
if (_layouts[i].IsInit() == false)
{
continue;
//непонятки с 42 шаблоном в FY10_September_Partner_Call.pptx
}
if (_layouts[i].IsInit() == false) continue; //непонятки с 42 шаблоном в FY10_September_Partner_Call.pptx
_layouts[i]->toPPTY(&oBinaryWriter);
}
// slides
// slides
oBinaryWriter.StartMainRecord(NSMainTables::Slides);
ULONG nCountS = (ULONG)_slides.size();
ULONG nCountS = 0;
for (size_t i = 0; i < _slides.size(); ++i)
{
if (_slides[i].IsInit()) nCountS++;
}
oBinaryWriter.WriteULONG(nCountS);
for (ULONG i = 0; i < nCountS; ++i)
for (size_t i = 0; i < _slides.size(); ++i)
{
if (_slides[i].IsInit() == false ) continue;
_slides[i]->toPPTY(&oBinaryWriter);
}
@ -312,7 +332,7 @@ namespace PPTX2EditorAdvanced
{
// ПОКА нету NOTES
// notes
// notes
oBinaryWriter.StartMainRecord(NSMainTables::NotesSlides);
ULONG nCountN = (ULONG)_notes.size();
oBinaryWriter.WriteULONG(nCountN);
@ -321,7 +341,7 @@ namespace PPTX2EditorAdvanced
_notes[i]->toPPTY(&oBinaryWriter);
}
// notesmasters
// notesmasters
oBinaryWriter.StartMainRecord(NSMainTables::NotesMasters);
ULONG nCountNM = (ULONG)_notesMasters.size();
oBinaryWriter.WriteULONG(nCountNM);
@ -449,7 +469,7 @@ namespace PPTX2EditorAdvanced
oFile.CreateFile(strDstFile);
#endif
std::string strPrefix = "PPTY;v1;" + std::to_string(nBinBufferLen) + ";";
oFile.WriteFile((void*)strPrefix.c_str(), strPrefix.length());
oFile.WriteFile((void*)strPrefix.c_str(), (DWORD)strPrefix.length());
oFile.WriteFile(pbBase64Buffer, nBase64BufferLen);
oFile.CloseFile();
}

View File

@ -145,11 +145,11 @@ namespace NSPresentationEditor
m_strPresentationDirectory = oSrc.m_strPresentationDirectory;
m_strSourceDirectory = oSrc.m_strSourceDirectory;
for (int i=0; i < oSrc.m_arVideos.size(); i++)
for (size_t i=0; i < oSrc.m_arVideos.size(); i++)
m_arVideos.push_back(oSrc.m_arVideos[i]);
for (int i=0; i < oSrc.m_arVideos.size(); i++)
for (size_t i=0; i < oSrc.m_arVideos.size(); i++)
m_arImages.push_back(oSrc.m_arImages[i]);
for (int i=0; i < oSrc.m_arVideos.size(); i++)
for (size_t i=0; i < oSrc.m_arVideos.size(); i++)
m_arAudios.push_back(oSrc.m_arAudios[i]);
return *this;
@ -422,8 +422,9 @@ namespace NSPresentationEditor
}
else
{
int nLen = str.length();
wchar_t* pBuffer = (wchar_t*)str.c_str();
size_t nLen = str.length();
wchar_t* pBuffer = (wchar_t*)str.c_str();
wchar_t* pBuffer1 = pBuffer;
wchar_t* pBuffer2 = pBuffer;
wchar_t* pBufferEnd = pBuffer + nLen;

View File

@ -196,7 +196,7 @@ namespace NSPresentationEditor
inline void SetAt(const CElementProperty::Type& eType, std::wstring strValue)
{
CElementProperty oProp(eType);
oProp.m_dwValue = strValue.length() + 1;
oProp.m_dwValue = (DWORD)strValue.length() + 1;
oProp.m_strAdvanced = strValue;

View File

@ -125,11 +125,11 @@ bool NSPresentationEditor::CShapeElement::SetUpTextPlaceholder(std::wstring newT
bool result = false;
NSPresentationEditor::CTextAttributesEx* pText = &m_oShape.m_oText;
for (int p = 0 ; p < pText->m_arParagraphs.size(); p++) //тут по всем -> 1-(33).ppt
for (size_t p = 0 ; p < pText->m_arParagraphs.size(); p++) //тут по всем -> 1-(33).ppt
{
if (pText->m_arParagraphs[p].m_arSpans.size() >0)//??? по всем?
{
int pos = pText->m_arParagraphs[p].m_arSpans[0].m_strText.find(L"*");
int pos = (int)pText->m_arParagraphs[p].m_arSpans[0].m_strText.find(L"*");
if (pos >= 0)
{

View File

@ -510,10 +510,10 @@ namespace NSPresentationEditor
double dScaleX = (double)m_oMetric.m_lUnitsHor / m_oMetric.m_lMillimetresHor;
double dScaleY = (double)m_oMetric.m_lUnitsVer / m_oMetric.m_lMillimetresVer;
m_oShape.m_oText.m_oBounds.left *= dScaleX;
m_oShape.m_oText.m_oBounds.right *= dScaleX;
m_oShape.m_oText.m_oBounds.top *= dScaleY;
m_oShape.m_oText.m_oBounds.bottom *= dScaleY;
m_oShape.m_oText.m_oBounds.left = (int)(dScaleX * m_oShape.m_oText.m_oBounds.left);
m_oShape.m_oText.m_oBounds.right = (int)(dScaleX * m_oShape.m_oText.m_oBounds.right);
m_oShape.m_oText.m_oBounds.top = (int)(dScaleY * m_oShape.m_oText.m_oBounds.top);
m_oShape.m_oText.m_oBounds.bottom = (int)(dScaleY * m_oShape.m_oText.m_oBounds.bottom);
}
virtual ~CShapeElement()
{
@ -704,12 +704,12 @@ namespace NSPresentationEditor
}
case CElementProperty::epFontBold:
{
m_oShape.m_oText.m_oAttributes.m_oFont.Bold = (bool)pProperty->m_dwValue;
m_oShape.m_oText.m_oAttributes.m_oFont.Bold = (pProperty->m_dwValue != 0);
break;
}
case CElementProperty::epFontItalic:
{
m_oShape.m_oText.m_oAttributes.m_oFont.Italic = (bool)pProperty->m_dwValue;
m_oShape.m_oText.m_oAttributes.m_oFont.Italic = (pProperty->m_dwValue != 0);
break;
}
case CElementProperty::epFontStrikeout:
@ -853,14 +853,14 @@ namespace NSPresentationEditor
pFormulaConverter.ConvertCoef(pCoef);
//guids----------------------------------------
int nGuidCount = pPPTShape->m_oManager.m_arFormulas.size();
int nGuidCount = (int)pPPTShape->m_oManager.m_arFormulas.size();
if (0 != nGuidCount)
{
pFormulaConverter.ConvertFormula(pPPTShape->m_oManager.m_arFormulas);
}
//path------------------------------------------
int nPathCount = pPPTShape->m_strPath.length();
int nPathCount = (int)pPPTShape->m_strPath.length();
if (0 != nPathCount && pPPTShape->m_eType != 1)
{
pFormulaConverter.ConvertPath(pPPTShape->m_strPath, pPPTShape->m_oPath);
@ -872,8 +872,8 @@ namespace NSPresentationEditor
pFormulaConverter.ConvertTextRect(pPPTShape->m_arStringTextRects[0]);
}
int nHandlesCount = pPPTShape->m_arHandles.size();
int nAdjCount = pPPTShape->m_arAdjustments.size();
int nHandlesCount = (int)pPPTShape->m_arHandles.size();
int nAdjCount = (int)pPPTShape->m_arAdjustments.size();
//handles
if (0 != nHandlesCount || 0 != nAdjCount)

View File

@ -224,7 +224,7 @@ namespace NSPresentationEditor
static void CheckPlaceholderStyle(std::wstring strStyleName, LONG& lType, LONG& lLevel, LONG& lTypeStyle)
{
int nLen = strStyleName.length();
size_t nLen = strStyleName.length();
wchar_t* pData = (wchar_t*)strStyleName.c_str();
lType = 0;

View File

@ -53,10 +53,10 @@ namespace NSPresentationEditor
CHandle_& operator =(const CHandle_& oSrc)
{
position = oSrc.position;
xrange = oSrc.xrange;
yrange = oSrc.yrange;
xrange = oSrc.xrange;
yrange = oSrc.yrange;
switchHandle = oSrc.switchHandle;
polar = oSrc.polar;
polar = oSrc.polar;
radiusrange = oSrc.radiusrange;
return (*this);
}
@ -65,27 +65,27 @@ namespace NSPresentationEditor
class CBaseShape
{
public:
std::vector<long> m_arAdjustments;
std::vector<double> m_arGuides;
LONG m_eJoin;
bool m_bConcentricFill;
bool m_bCustomShape;
std::vector<long> m_arAdjustments;
std::vector<double> m_arGuides;
LONG m_eJoin;
bool m_bConcentricFill;
bool m_bCustomShape;
std::vector<SimpleTypes::CPoint> m_arConnectors;
std::vector<LONG> m_arConnectorAngles;
std::vector<LONG> m_arConnectorAngles;
std::vector<Aggplus::RECT> m_arTextRects;
std::vector<Aggplus::RECT> m_arTextRects;
std::vector<CHandle_> m_arHandles;
std::vector<CHandle_> m_arHandles;
std::wstring m_strTransformXml;
std::wstring m_strTransformXml;
std::wstring m_strPath;
std::wstring m_strRect;
std::wstring m_strPath;
std::wstring m_strRect;
LONG m_lLimoX;
LONG m_lLimoY;
LONG m_lLimoX;
LONG m_lLimoY;
CPath m_oPath;
CPath m_oPath;
CBaseShape()
{
@ -94,14 +94,14 @@ namespace NSPresentationEditor
virtual bool LoadFromXML(const std::wstring& xml) = 0;
virtual bool LoadFromXML(XmlUtils::CXmlNode& xmlNode) = 0;
virtual bool LoadAdjustValuesList(const std::wstring& xml) = 0;
virtual bool LoadAdjustValuesList(const std::wstring& xml) = 0;
virtual bool LoadGuidesList(const std::wstring& xml) = 0;
virtual bool LoadAdjustHandlesList(const std::wstring& xml) = 0;
virtual bool LoadConnectorsList(const std::wstring& xml) = 0;
virtual bool LoadTextRect(const std::wstring& xml) = 0;
virtual bool LoadPathList(const std::wstring& xml) = 0;
virtual bool SetAdjustment(long index, long value) = 0;
virtual void ReCalculate() = 0;
virtual bool LoadAdjustHandlesList(const std::wstring& xml) = 0;
virtual bool LoadConnectorsList(const std::wstring& xml) = 0;
virtual bool LoadTextRect(const std::wstring& xml) = 0;
virtual bool LoadPathList(const std::wstring& xml) = 0;
virtual bool SetAdjustment(long index, long value) = 0;
virtual void ReCalculate() = 0;
virtual std::wstring ToXML(CGeomShapeInfo& GeomInfo, CMetricInfo& MetricInfo, double StartTime, double EndTime, CBrush& Brush, CPen& Pen) = 0;
virtual void ToRenderer(IRenderer* pRenderer, CGeomShapeInfo& pGeomInfo, double dStartTime, double dEndTime, CPen& pPen, CBrush& pFore, CMetricInfo& pInfo)
@ -134,31 +134,31 @@ namespace NSPresentationEditor
m_strPath = Shape->m_strPath;
m_strRect = Shape->m_strRect;
m_arAdjustments.clear();
for(int i = 0; i < Shape->m_arAdjustments.size(); i++)
m_arAdjustments.clear();
for(size_t i = 0; i < Shape->m_arAdjustments.size(); i++)
m_arAdjustments.push_back(Shape->m_arAdjustments[i]);
m_arGuides.clear();
for(int i = 0; i < Shape->m_arGuides.size(); i++)
for(size_t i = 0; i < Shape->m_arGuides.size(); i++)
m_arGuides.push_back(Shape->m_arGuides[i]);
m_eJoin = Shape->m_eJoin;
m_bConcentricFill = Shape->m_bConcentricFill;
m_arConnectors.clear();
for(int i = 0; i < Shape->m_arConnectors.size(); i++)
for(size_t i = 0; i < Shape->m_arConnectors.size(); i++)
m_arConnectors.push_back(Shape->m_arConnectors[i]);
m_arConnectorAngles.clear();
for(int i = 0; i < Shape->m_arConnectorAngles.size(); i++)
for(size_t i = 0; i < Shape->m_arConnectorAngles.size(); i++)
m_arConnectorAngles.push_back(Shape->m_arConnectorAngles[i]);
m_arTextRects.clear();
for(int i = 0; i < Shape->m_arTextRects.size(); i++)
for(size_t i = 0; i < Shape->m_arTextRects.size(); i++)
m_arTextRects.push_back(Shape->m_arTextRects[i]);
m_arHandles.clear();
for(int i = 0; i < Shape->m_arHandles.size(); i++)
for(size_t i = 0; i < Shape->m_arHandles.size(); i++)
m_arHandles.push_back(Shape->m_arHandles[i]);
@ -177,31 +177,31 @@ namespace NSPresentationEditor
Shape->m_strRect = m_strRect;
Shape->m_arAdjustments.clear();
for(int i = 0; i < m_arAdjustments.size(); i++)
for(size_t i = 0; i < m_arAdjustments.size(); i++)
Shape->m_arAdjustments.push_back(m_arAdjustments[i]);
Shape->m_arGuides.clear();
for(int i = 0; i < m_arGuides.size(); i++)
for(size_t i = 0; i < m_arGuides.size(); i++)
Shape->m_arGuides.push_back(m_arGuides[i]);
Shape->m_eJoin = m_eJoin;
Shape->m_bConcentricFill = m_bConcentricFill;
Shape->m_arConnectors.clear();
for(int i = 0; i < m_arConnectors.size(); i++)
for(size_t i = 0; i < m_arConnectors.size(); i++)
Shape->m_arConnectors.push_back(m_arConnectors[i]);
Shape->m_arConnectorAngles.clear();
for(int i = 0; i < m_arConnectorAngles.size(); i++)
for(size_t i = 0; i < m_arConnectorAngles.size(); i++)
Shape->m_arConnectorAngles.push_back(m_arConnectorAngles[i]);
Shape->m_arTextRects.clear();
for(int i = 0; i < m_arTextRects.size(); i++)
for(size_t i = 0; i < m_arTextRects.size(); i++)
Shape->m_arTextRects.push_back(m_arTextRects[i]);
Shape->m_strRect = m_strRect;
Shape->m_arHandles.clear();
for(int i = 0; i < m_arHandles.size(); i++)
for(size_t i = 0; i < m_arHandles.size(); i++)
Shape->m_arHandles.push_back(m_arHandles[i]);
Shape->m_strTransformXml = m_strTransformXml;

View File

@ -74,7 +74,7 @@ namespace NSStringUtils
}
static bool IsNumber(std::wstring str)
{
for (int nIndex = 0; nIndex < str.length(); ++nIndex)
for (size_t nIndex = 0; nIndex < str.length(); ++nIndex)
{
if (!IsDigit(str[nIndex]))
{
@ -125,7 +125,7 @@ namespace NSStringUtils
{
std::wstring strPath = strSource;
for (int nIndex = 0; nIndex < strPath.length(); ++nIndex)
for (size_t nIndex = 0; nIndex < strPath.length(); ++nIndex)
{
if (nIndex == (strPath.length() - 1))
continue;
@ -212,13 +212,13 @@ namespace NSStringUtils
static void ParsePath2(std::wstring strSource, std::vector<std::wstring> & ArrayResults)
{
std::wstring strPath = strSource;
int nLength = strPath.length();
size_t nLength = strPath.length();
//strPath.Replace(_T(" "), _T(","));
if (strPath.find(wchar_t('h')) != -1)
{
wchar_t* pBuff = new wchar_t[nLength + 1];
int nCur = 0;
for (int i = 1; i < nLength; ++i)
for (size_t i = 1; i < nLength; ++i)
{
wchar_t _c = strPath[i - 1];
if (_c != wchar_t('h'))
@ -264,8 +264,8 @@ namespace NSStringUtils
++nLength;
}
int nIndexOld = 0;
for (int nIndex = 0; nIndex < nLength; ++nIndex)
size_t nIndexOld = 0;
for (size_t nIndex = 0; nIndex < nLength; ++nIndex)
{
if (nIndex == (nLength - 1))
{
@ -366,46 +366,46 @@ namespace NSStringUtils
{
bFill = true;
bStroke = true;
int nIndex = strPath.find(_T("nf"));
int nIndex = (int)strPath.find(_T("nf"));
if (-1 != nIndex)
{
bFill = false;
while (-1 != nIndex)
{
strPath.erase(nIndex, 2);
nIndex = strPath.find(_T("nf"));
nIndex = (int)strPath.find(_T("nf"));
}
}
nIndex = strPath.find(_T("ns"));
nIndex = (int)strPath.find(_T("ns"));
if (-1 != nIndex)
{
bStroke = false;
while (-1 != nIndex)
{
strPath.erase(nIndex, 2);
nIndex = strPath.find(_T("ns"));
nIndex = (int)strPath.find(_T("ns"));
}
}
nIndex = strPath.find(_T("F"));
nIndex = (int)strPath.find(_T("F"));
if (-1 != nIndex)
{
bFill = false;
while (-1 != nIndex)
{
strPath.erase(nIndex, 2);
nIndex = strPath.find(_T("F"));
nIndex = (int)strPath.find(_T("F"));
}
}
nIndex = strPath.find(_T("S"));
nIndex = (int)strPath.find(_T("S"));
if (-1 != nIndex)
{
bStroke = false;
while (-1 != nIndex)
{
strPath.erase(nIndex, 2);
nIndex = strPath.find(_T("S"));
nIndex = (int)strPath.find(_T("S"));
}
}
}

View File

@ -1,227 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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
*
*/
#pragma once
using namespace NSOfficeDrawing;
enum BrushType
{
BrushTypeSolid = 1000,
BrushTypeHorizontal = 2001,
BrushTypeVertical = 2002,
BrushTypeDiagonal1 = 2003,
BrushTypeDiagonal2 = 2004,
BrushTypeCenter = 2005,
BrushTypePathGradient1 = 2006,
BrushTypePathGradient2 = 2007,
BrushTypeCylinderHor = 2008,
BrushTypeCylinderVer = 2009,
BrushTypeTexture = 3008,
BrushTypeHatch1 = 4009,
BrushTypeHatch53 = 4061
};
enum BrushTextureMode
{
BrushTextureModeStretch = 0,
BrushTextureModeTile = 1,
BrushTextureModeTileCenter = 2
};
class CColor_
{
public:
BYTE R;
BYTE G;
BYTE B;
BYTE A;
public:
CColor_()
{
R = 0;
G = 0;
B = 0;
A = 0;
}
CColor_& operator =(const CColor_& oSrc)
{
R = oSrc.R;
G = oSrc.G;
B = oSrc.B;
A = oSrc.A;
return (*this);
}
CColor_& operator =(const DWORD& oSrc)
{
R = (BYTE)(oSrc >> 8);
G = (BYTE)(oSrc >> 16);
B = (BYTE)(oSrc >> 24);
A = (BYTE)oSrc;
return (*this);
}
CString ToString()
{
DWORD dwColor = 0;
/*dwColor |= A;
dwColor |= (R << 8);
dwColor |= (G << 16);
dwColor |= (B << 24);*/
dwColor |= R;
dwColor |= (G << 8);
dwColor |= (B << 16);
return NSAttributes::ToString((int)dwColor);
}
};
class CPen_
{
public:
CColor_ m_oColor;
int m_nWidth;
BYTE m_nAlpha;
public:
CPen_() : m_oColor()
{
m_oColor = 0;
m_nWidth = 1;
m_nAlpha = 255;
}
~CPen_()
{
}
CString ToString()
{
return AddEffectForGroup(_T("ImagePaint-SetPen"), _T("color='")
+ m_oColor.ToString() + _T("' alpha='") + NSAttributes::ToString((int)m_nAlpha)
+ _T("' size='") + NSAttributes::ToString(m_nWidth) + _T("'"));
}
CString ToString2()
{
return AddEffectForGroup(_T("pen"), _T("pen-color='")
+ m_oColor.ToString() + _T("' pen-alpha='") + NSAttributes::ToString((int)m_nAlpha)
+ _T("' pen-size='") + NSAttributes::ToString(m_nWidth) + _T("'"));
}
CPen_& operator =(const CPen_& oSrc)
{
m_oColor = oSrc.m_oColor;
m_nWidth = oSrc.m_nWidth;
m_nAlpha = oSrc.m_nAlpha;
return (*this);
}
};
class CBrush_
{
public:
int m_nBrushType;
CColor_ m_oColor1;
CColor_ m_oColor2;
BYTE m_Alpha1;
BYTE m_Alpha2;
CStringW m_sTexturePath;
int m_nTextureMode;
int m_nRectable;
BYTE m_nTextureAlpha;
RECT m_rcBounds;
public:
CBrush_()
{
m_nBrushType = (int)BrushTypeSolid;
m_oColor1 = 0xFFFFFFFF;
m_oColor2 = 0xFFFFFFFF;
m_Alpha1 = 255;
m_Alpha2 = 255;
m_sTexturePath = "";
m_nTextureMode = 0;
m_nRectable = 0;
m_nTextureAlpha = 255;
m_rcBounds.left = 0;
m_rcBounds.top = 0;
m_rcBounds.right = 0;
m_rcBounds.bottom = 0;
}
CBrush_& operator =(const CBrush_& oSrc)
{
m_nBrushType = oSrc.m_nBrushType;
m_oColor1 = oSrc.m_oColor1;
m_oColor2 = oSrc.m_oColor2;
m_Alpha1 = oSrc.m_Alpha1;
m_Alpha2 = oSrc.m_Alpha2;
m_sTexturePath = oSrc.m_sTexturePath;
m_nTextureMode = oSrc.m_nTextureMode;
m_nRectable = oSrc.m_nRectable;
m_nTextureAlpha = oSrc.m_nTextureAlpha;
m_rcBounds.left = oSrc.m_rcBounds.left;
m_rcBounds.top = oSrc.m_rcBounds.top;
m_rcBounds.right = oSrc.m_rcBounds.right;
m_rcBounds.bottom = oSrc.m_rcBounds.bottom;
return (*this);
}
CString ToString()
{
return AddEffectForGroup(_T("ImagePaint-SetBrush"),
_T("type='") + NSAttributes::ToString(m_nBrushType)
+ _T("' color1='") + m_oColor1.ToString() + _T("' color2='") + m_oColor2.ToString()
+ _T("' alpha1='") + NSAttributes::ToString(m_Alpha1) + _T("' alpha2='") + NSAttributes::ToString(m_Alpha2)
+ _T("' texturepath='") + (CString)m_sTexturePath + _T("' texturealpha='") + NSAttributes::ToString(m_nTextureAlpha)
+ "' texturemode='" + NSAttributes::ToString(m_nTextureMode) + _T("'"));
//+ "' rectable='0' rect-left='" + Bounds.Left.ToString() + "' rect-top='" + Bounds.Top.ToString()
//+ "' rect-width='" + Bounds.Right.ToString() + "' rect-height='" + Bounds.Bottom.ToString() + "'");
}
CString ToString2()
{
return AddEffectForGroup(_T("brush"),
_T("brush-type='") + NSAttributes::ToString(m_nBrushType)
+ _T("' brush-color1='") + m_oColor1.ToString() + _T("' brush-color2='") + m_oColor2.ToString()
+ _T("' brush-alpha1='") + NSAttributes::ToString(m_Alpha1) + _T("' brush-alpha2='") + NSAttributes::ToString(m_Alpha2)
+ _T("' brush-texturepath='") + (CString)m_sTexturePath + _T("' brush-texturealpha='") + NSAttributes::ToString(m_nTextureAlpha)
+ "' brush-texturemode='" + NSAttributes::ToString(m_nTextureMode) + _T("'"));
//+ "' rectable='0' rect-left='" + Bounds.Left.ToString() + "' rect-top='" + Bounds.Top.ToString()
//+ "' rect-width='" + Bounds.Right.ToString() + "' rect-height='" + Bounds.Bottom.ToString() + "'");
}
};

View File

@ -199,7 +199,7 @@ namespace NSPresentationEditor
pRenderer->BeginCommand(c_nPathType);
CDoublePoint pointCur; pointCur.dX = 0; pointCur.dY = 0;
for (int nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
{
m_arParts[nIndex].Draw(pRenderer, pointCur);
}
@ -228,7 +228,7 @@ namespace NSPresentationEditor
pRenderer->BeginCommand(c_nPathType);
CDoublePoint pointCur; pointCur.dX = 0; pointCur.dY = 0;
for (int nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
{
m_arParts[nIndex].Draw(pRenderer, pointCur);
}
@ -266,7 +266,7 @@ namespace NSPresentationEditor
{
m_eType = oSrc.m_eType;
this->m_arPoints.clear();
for (int nIndex = 0; nIndex < oSrc.m_arPoints.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arPoints.size(); ++nIndex)
{
this->m_arPoints.push_back(oSrc.m_arPoints[nIndex]);
}
@ -305,7 +305,7 @@ namespace NSPresentationEditor
bool bIsX = true;
int nCurPoint = 0;
for (int nIndex = 0; nIndex < arStrNums.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < arStrNums.size(); ++nIndex)
{
if (bIsX)
{
@ -472,7 +472,7 @@ namespace NSPresentationEditor
if (NULL == ppArray)
return;
int nCount = this->m_arPoints.size();
int nCount = (int)this->m_arPoints.size();
nCountOut = 2 * (nCount + 1);
@ -652,7 +652,7 @@ namespace NSPresentationEditor
}
case rtAngleEllipseTo:
{
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 3) <= this->m_arPoints.size())
{
double nLeft = this->m_arPoints[nFigure].dX - this->m_arPoints[nFigure + 1].dX / 2;
@ -671,7 +671,7 @@ namespace NSPresentationEditor
case rtAngleEllipse:
{
pRenderer->PathCommandStart();
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 3) <= this->m_arPoints.size())
{
double nLeft = this->m_arPoints[nFigure].dX - this->m_arPoints[nFigure + 1].dX / 2;
@ -690,7 +690,7 @@ namespace NSPresentationEditor
case rtArc:
{
pRenderer->PathCommandStart();
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 4) <= this->m_arPoints.size())
{
double nCentreX = (this->m_arPoints[nFigure].dX + this->m_arPoints[nFigure + 1].dX) / 2;
@ -715,7 +715,7 @@ namespace NSPresentationEditor
}
case rtArcTo:
{
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 4) <= this->m_arPoints.size())
{
double nCentreX = (this->m_arPoints[nFigure].dX + this->m_arPoints[nFigure + 1].dX) / 2;
@ -740,7 +740,7 @@ namespace NSPresentationEditor
}
case rtClockwiseArcTo:
{
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 4) <= this->m_arPoints.size())
{
double nCentreX = (this->m_arPoints[nFigure].dX + this->m_arPoints[nFigure + 1].dX) / 2;
@ -766,7 +766,8 @@ namespace NSPresentationEditor
case rtClockwiseArc:
{
pRenderer->PathCommandStart();
int nFigure = 0;
size_t nFigure = 0;
while ((nFigure + 4) <= this->m_arPoints.size())
{
double nCentreX = (this->m_arPoints[nFigure].dX + this->m_arPoints[nFigure + 1].dX) / 2;

View File

@ -554,7 +554,7 @@ namespace NSCustomVML
m_arVertices.clear();
for (int ind = 0; ind < values.size(); ++ind)
for (size_t ind = 0; ind < values.size(); ++ind)
{
Aggplus::POINT oPoint;
@ -563,13 +563,13 @@ namespace NSCustomVML
LONG lMinF = (LONG)0x80000000;
LONG lMaxF = (LONG)0x8000007F;
if (lMinF <= (DWORD)oPoint.x)
if (lMinF <= oPoint.x)
{
int nGuideIndex = (DWORD)oPoint.x - 0x80000000;
bool b = false;
}
if (lMinF <= (DWORD)oPoint.y)
if (lMinF <= oPoint.y)
{
int nGuideIndex = (DWORD)oPoint.y - 0x80000000;
@ -612,13 +612,13 @@ namespace NSCustomVML
LONG lMinF = (LONG)0x80000000;
LONG lMaxF = (LONG)0x8000007F;
if (lMinF <= (DWORD)oPoint.x)
if (lMinF <= oPoint.x)
{
int nGuideIndex = (DWORD)oPoint.x - 0x80000000;
bool b = false;
}
if (lMinF <= (DWORD)oPoint.y)
if (lMinF <= oPoint.y)
{
int nGuideIndex = (DWORD)oPoint.y - 0x80000000;
@ -639,7 +639,7 @@ namespace NSCustomVML
if (!values.empty())
m_bIsPathPresent = true;
for (int ind = 0; ind < values.size(); ++ind)
for (size_t ind = 0; ind < values.size(); ++ind)
{
CSegment oInfo;
int count = oInfo.Read(values[ind]);
@ -841,7 +841,7 @@ namespace NSCustomVML
if (lMaxF > m_arVertices[nV].y ) nGuideIndex_y = (DWORD)m_arVertices[nV].y - (DWORD)lMinF;
std::wstring str = _T("");
if (nGuideIndex_x >= 0 && nGuideIndex_x < m_arGuides.size())
if (nGuideIndex_x >= 0 && nGuideIndex_x < (int)m_arGuides.size())
{
strPath += std::to_wstring(m_arGuides[nGuideIndex_x].m_param_value1) + L",";
}
@ -849,7 +849,7 @@ namespace NSCustomVML
{
strPath += std::to_wstring(m_arVertices[nV].x) + L",";
}
if (nGuideIndex_y >= 0 && nGuideIndex_y < m_arGuides.size())
if (nGuideIndex_y >= 0 && nGuideIndex_y < (int)m_arGuides.size())
{
strPath += std::to_wstring(m_arGuides[nGuideIndex_y].m_param_value1) + L",";
}

View File

@ -156,8 +156,7 @@ public:
RELEASEARRAYOBJECTS(m_pOptions);
m_pOptions = new BYTE[m_lValue];
ULONG lReadBytes = 0;
lReadBytes = pStream->read(m_pOptions, m_lValue);
ULONG lReadBytes = (ULONG)pStream->read(m_pOptions, m_lValue);
if (lReadBytes != m_lValue)
{
return;

View File

@ -35,7 +35,7 @@
LONG NSGuidesVML::CFormula::Calculate(NSGuidesVML::CFormulasManager* pManager)
{
if ((0 > m_lIndex) || (m_lIndex >= pManager->m_arResults.size()))
if ((0 > m_lIndex) || (m_lIndex >= (int)pManager->m_arResults.size()))
return 0;
if (0xFFFFFFFF != pManager->m_arResults[m_lIndex])
{
@ -44,8 +44,8 @@ LONG NSGuidesVML::CFormula::Calculate(NSGuidesVML::CFormulasManager* pManager)
LONG lResult = 0;
LONG lGuidesCount = pManager->m_arFormulas.size();
LONG lAdjCount = pManager->m_pAdjustments->size();
LONG lGuidesCount = (LONG)pManager->m_arFormulas.size();
LONG lAdjCount = (LONG)pManager->m_pAdjustments->size();
LONG a1 = m_lParam1;
if (ptFormula == m_eType1)

View File

@ -302,7 +302,7 @@ namespace NSGuidesVML
std::vector<std::wstring> oArrayParams;
boost::algorithm::split(oArrayParams, strFormula, boost::algorithm::is_any_of(L" "), boost::algorithm::token_compress_on);
int nCount = oArrayParams.size();
int nCount = (int)oArrayParams.size();
if (0 >= nCount)
return;
@ -354,12 +354,12 @@ namespace NSGuidesVML
m_lShapeHeight = oSrc.m_lShapeHeight;
m_arResults.clear();
for (int nIndex = 0; nIndex < oSrc.m_arResults.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arResults.size(); ++nIndex)
{
m_arResults.push_back(oSrc.m_arResults[nIndex]);
}
m_arFormulas.clear();
for (int nIndex = 0; nIndex < oSrc.m_arFormulas.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arFormulas.size(); ++nIndex)
{
m_arFormulas.push_back(oSrc.m_arFormulas[nIndex]);
}
@ -383,27 +383,29 @@ namespace NSGuidesVML
//m_arFormulas.clear();
//m_arResults.clear();
for (int nIndex = 0; nIndex < m_arResults.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arResults.size(); ++nIndex)
{
m_arResults[nIndex] = 0xFFFFFFFF;
}
}
void AddFormula(std::wstring strFormula)
{
CFormula oFormula(m_arFormulas.size());
CFormula oFormula((int)m_arFormulas.size());
oFormula.FromString(strFormula, m_lShapeWidth, m_lShapeHeight);
m_arFormulas.push_back(oFormula);
m_arResults.push_back(0xFFFFFFFF);
}
void AddFormula(CFormula oFormula)
{
oFormula.m_lIndex = m_arFormulas.size();
m_arFormulas.push_back(oFormula);
oFormula.m_lIndex = (int)m_arFormulas.size();
m_arFormulas.push_back(oFormula);
m_arResults.push_back(0xFFFFFFFF);
}
void CalculateResults()
{
for (int index = 0; index < m_arFormulas.size(); ++index)
for (size_t index = 0; index < m_arFormulas.size(); ++index)
{
LONG lResult = m_arFormulas[index].Calculate(this);
}

View File

@ -288,7 +288,8 @@ public:
std::wstring strXml = xml;
if (0 == strXml.find((wchar_t)','))
strXml = (_T("defaultAdj") + strXml);
LONG lLastIndex = strXml.length() - 1;
LONG lLastIndex = (LONG)strXml.length() - 1;
if (lLastIndex >= 0 && lLastIndex == strXml.rfind((wchar_t)','))
{
@ -300,13 +301,13 @@ public:
boost::algorithm::split(arAdj, strXml, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
std::vector<long> oOldAdj;
int nOldLen = m_arAdjustments.size();
size_t nOldLen = m_arAdjustments.size();
for (int ii = 0; ii < nOldLen; ++ii)
for (size_t ii = 0; ii < nOldLen; ++ii)
oOldAdj.push_back(m_arAdjustments[ii]);
m_arAdjustments.clear();
for (int nIndex = 0; nIndex < arAdj.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < arAdj.size(); ++nIndex)
{
if (_T("defaultAdj") == arAdj[nIndex])
{
@ -321,7 +322,7 @@ public:
}
}
int newLen = m_arAdjustments.size();
int newLen = (int)m_arAdjustments.size();
for (int i = newLen; i < nOldLen; ++i)
m_arAdjustments.push_back(oOldAdj[i]);
return true;
@ -440,7 +441,7 @@ public:
virtual bool SetAdjustment(long index, long value)
{
if (index < m_arAdjustments.size() && index >= 0)
if (index < (long)m_arAdjustments.size() && index >= 0)
{
m_arAdjustments[index] = value;
return TRUE;
@ -613,7 +614,7 @@ protected:
if (bFormula)
{
if (lValue >= 0 || lValue < m_oManager.m_arResults.size())
if (lValue >= 0 || lValue < (LONG)m_oManager.m_arResults.size())
{
lValue = m_oManager.m_arResults[lValue];
return true;

View File

@ -1972,8 +1972,7 @@ namespace NSGuidesVML
}
void ConvertAdj(const std::vector<LONG>& arAdj)
{
int nAdjCount = arAdj.size();
for (int i = 0; i < nAdjCount; ++i)
for (int i = 0; i < (int)arAdj.size(); ++i)
{
m_oAdjRes.WriteString(_T("<a:gd name=\"adj"));
m_oAdjRes.WriteINT(i);
@ -1981,7 +1980,7 @@ namespace NSGuidesVML
m_oAdjRes.WriteINT(arAdj[i]);
m_oAdjRes.WriteString(_T("\" />"));
}
for (int i = nAdjCount; i <= m_lMaxAdjUse; ++i)
for (int i = (int)arAdj.size(); i <= m_lMaxAdjUse; ++i)
{
m_oAdjRes.WriteString(_T("<a:gd name=\"adj"));
m_oAdjRes.WriteINT(i);
@ -1992,8 +1991,7 @@ namespace NSGuidesVML
}
void ConvertFormula(const std::vector<CFormula>& arFormulas)
{
int nGuidCount = arFormulas.size();
for (int i = 0; i < nGuidCount; ++i)
for (size_t i = 0; i < arFormulas.size(); ++i)
{
const CFormula& pFormula = arFormulas[i];
m_lIndexSrc++;
@ -2301,12 +2299,12 @@ namespace NSGuidesVML
{
double dScale = (double)pow3_16 / m_oParam.m_lCoef;
if (oHandle.gdRef.y >= arAdj.size())
if (oHandle.gdRef.y >= (int)arAdj.size())
{
// дурацкий код. надо память перевыделить, а старую скопировать
// пока сделаю так, чтобы наверняка
int nNewSize = (int)oHandle.gdRef.y + 1;
while (arAdj.size() < nNewSize)
while ((int)arAdj.size() < nNewSize)
arAdj.push_back(0);
}
@ -2464,7 +2462,7 @@ namespace NSGuidesVML
switch (eParamType)
{
case ptFormula:
if (bExtShape || lParam < m_arIndexDst.size())
if (bExtShape || lParam < (int)m_arIndexDst.size())
{
oWriter.m_oWriter.AddCharNoCheck((WCHAR)'g');
oWriter.m_oWriter.AddCharNoCheck((WCHAR)'d');
@ -2659,7 +2657,7 @@ namespace NSGuidesVML
LONG lValue;
bool bRes = true;
for (int nIndex = 0; nIndex < oArray.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oArray.size(); ++nIndex)
{
std::wstring str = oArray[nIndex];
lValue = NSGuidesVML::GetValue(oArray[nIndex], eParamType, bRes);
@ -3540,7 +3538,7 @@ namespace NSGuidesVML
{
for (size_t j = 0; j < oSlice.m_arPoints.size(); j += 2)
{
int l = (int)oSlice.m_arPoints.size() - j - 3;
int l = (int)(oSlice.m_arPoints.size() - j - 3);
if (l >= 0)
{
m_oPathRes.WriteString(_T("<a:quadBezTo>"));
@ -3584,7 +3582,7 @@ namespace NSGuidesVML
LONG nIndex = 0;
for (size_t j = 0; j < oSlice.m_arPoints.size(); j += 3)
{
int l = (int)oSlice.m_arPoints.size() - j - 3;
int l = (int)(oSlice.m_arPoints.size() - j - 3);
if ( l >= 0 )
{
m_oPathRes.WriteString(_T("<a:cubicBezTo>"));
@ -3627,7 +3625,7 @@ namespace NSGuidesVML
{
nIndex = m_arIndexDst[m_lIndexSrc];
int l = (int)oSlice.m_arPoints.size() - j - 3;
int l = (int)(oSlice.m_arPoints.size() - j - 3);
if (l >= 0)
{
m_oPathRes.WriteString(_T("<a:cubicBezTo>"));

View File

@ -42,7 +42,7 @@
double NSGuidesOOXML::CFormula::Calculate(NSGuidesOOXML::CFormulaManager* pManager)
{
if ((0 == m_lIndex) || (-m_lIndex > pManager->Guides->size()) || (m_lIndex > pManager->Adjustments->size()))
if ((0 == m_lIndex) || (-m_lIndex > (int)pManager->Guides->size()) || (m_lIndex > (int)pManager->Adjustments->size()))
return 0.0;
if((m_lIndex < 0) && (dNonDefResult > (*pManager->Guides)[-m_lIndex-1]))
return (*pManager->Guides)[-m_lIndex-1];

View File

@ -274,25 +274,25 @@ public:
}
strAdjustments.clear();
for(int i = 0; i < manager.strAdjustments.size(); i++)
for(size_t i = 0; i < manager.strAdjustments.size(); i++)
{
strAdjustments.push_back(manager.strAdjustments[i]);
}
strGuides.clear();
for(int i = 0; i < manager.strGuides.size(); i++)
for(size_t i = 0; i < manager.strGuides.size(); i++)
{
strGuides.push_back(manager.strGuides[i]);
}
Adjustments->clear();
for(int i = 0; i < manager.Adjustments->size(); i++)
for(size_t i = 0; i < manager.Adjustments->size(); i++)
{
Adjustments->push_back((*manager.Adjustments)[i]);
}
Guides->clear();
for(int i = 0; i < manager.Guides->size(); i++)
for(size_t i = 0; i < manager.Guides->size(); i++)
{
Guides->push_back((*manager.Guides)[i]);
}
@ -318,7 +318,7 @@ public:
strAdjustments.push_back(formula);
Adjustments->push_back(NonDefResult);
mapAdjustments.insert(std::pair<std::wstring, long>(name, strAdjustments.size() - 1));
mapAdjustments.insert(std::pair<std::wstring, long>(name, (long)strAdjustments.size() - 1));
}
void AddGuide(const std::wstring& name, const std::wstring& fmla)
@ -334,14 +334,14 @@ public:
*/
// формулы могут повторяться!!!
// тогда по мере расчитывания они перетирают друг друга
CFormula formula( -strGuides.size() - 1);
CFormula formula( -1 -(int)strGuides.size());
formula.m_sName = name;
formula.FromString(fmla);
strGuides.push_back(formula);
Guides->push_back(dNonDefResult);
mapGuides.insert(std::pair<std::wstring, long>(name, strGuides.size() - 1));
mapGuides.insert(std::pair<std::wstring, long>(name, (long)strGuides.size() - 1));
}
double GetValue(std::wstring str)

View File

@ -38,233 +38,233 @@ CPPTXShape* CPPTXShape::CreateByType(OOXMLShapes::ShapeType type)
{
switch(type)
{
case OOXMLShapes::sptCAccentBorderCallout1: return new OOXMLShapes::CAccentBorderCallout1();
case OOXMLShapes::sptCAccentBorderCallout2: return new OOXMLShapes::CAccentBorderCallout2();
case OOXMLShapes::sptCAccentBorderCallout3: return new OOXMLShapes::CAccentBorderCallout3();
case OOXMLShapes::sptCAccentCallout1: return new OOXMLShapes::CAccentCallout1();
case OOXMLShapes::sptCAccentCallout2: return new OOXMLShapes::CAccentCallout2();
case OOXMLShapes::sptCAccentCallout3: return new OOXMLShapes::CAccentCallout3();
case OOXMLShapes::sptCActionButtonBackPrevious: return new OOXMLShapes::CActionButtonBackPrevious();
case OOXMLShapes::sptCActionButtonBeginning: return new OOXMLShapes::CActionButtonBeginning();
case OOXMLShapes::sptCActionButtonBlank: return new OOXMLShapes::CActionButtonBlank();
case OOXMLShapes::sptCActionButtonDocument: return new OOXMLShapes::CActionButtonDocument();
case OOXMLShapes::sptCActionButtonEnd: return new OOXMLShapes::CActionButtonEnd();
case OOXMLShapes::sptCActionButtonForwardNext: return new OOXMLShapes::CActionButtonForwardNext();
case OOXMLShapes::sptCActionButtonHelp: return new OOXMLShapes::CActionButtonHelp();
case OOXMLShapes::sptCActionButtonHome: return new OOXMLShapes::CActionButtonHome();
case OOXMLShapes::sptCActionButtonInformation: return new OOXMLShapes::CActionButtonInformation();
case OOXMLShapes::sptCActionButtonMovie: return new OOXMLShapes::CActionButtonMovie();
case OOXMLShapes::sptCActionButtonReturn: return new OOXMLShapes::CActionButtonReturn();
case OOXMLShapes::sptCActionButtonSound: return new OOXMLShapes::CActionButtonSound();
case OOXMLShapes::sptCArc: return new OOXMLShapes::CArc();
case OOXMLShapes::sptCBentArrow: return new OOXMLShapes::CBentArrow();
case OOXMLShapes::sptCBentConnector2: return new OOXMLShapes::CBentConnector2();
case OOXMLShapes::sptCBentConnector3: return new OOXMLShapes::CBentConnector3();
case OOXMLShapes::sptCBentConnector4: return new OOXMLShapes::CBentConnector4();
case OOXMLShapes::sptCBentConnector5: return new OOXMLShapes::CBentConnector5();
case OOXMLShapes::sptCBentUpArrow: return new OOXMLShapes::CBentUpArrow();
case OOXMLShapes::sptCBevel: return new OOXMLShapes::CBevel();
case OOXMLShapes::sptCBlockArc: return new OOXMLShapes::CBlockArc();
case OOXMLShapes::sptCBorderCallout1: return new OOXMLShapes::CBorderCallout1();
case OOXMLShapes::sptCBorderCallout2: return new OOXMLShapes::CBorderCallout2();
case OOXMLShapes::sptCBorderCallout3: return new OOXMLShapes::CBorderCallout3();
case OOXMLShapes::sptCBracePair: return new OOXMLShapes::CBracePair();
case OOXMLShapes::sptCBracketPair: return new OOXMLShapes::CBracketPair();
case OOXMLShapes::sptCCallout1: return new OOXMLShapes::CCallout1();
case OOXMLShapes::sptCCallout2: return new OOXMLShapes::CCallout2();
case OOXMLShapes::sptCCallout3: return new OOXMLShapes::CCallout3();
case OOXMLShapes::sptCCan: return new OOXMLShapes::CCan();
case OOXMLShapes::sptCChartPlus: return new OOXMLShapes::CChartPlus();
case OOXMLShapes::sptCChartStar: return new OOXMLShapes::CChartStar();
case OOXMLShapes::sptCChartX: return new OOXMLShapes::CChartX();
case OOXMLShapes::sptCChevron: return new OOXMLShapes::CChevron();
case OOXMLShapes::sptCChord: return new OOXMLShapes::CChord();
case OOXMLShapes::sptCCircularArrow: return new OOXMLShapes::CCircularArrow();
case OOXMLShapes::sptCCloud: return new OOXMLShapes::CCloud();
case OOXMLShapes::sptCCloudCallout: return new OOXMLShapes::CCloudCallout();
case OOXMLShapes::sptCCorner: return new OOXMLShapes::CCorner();
case OOXMLShapes::sptCCornerTabs: return new OOXMLShapes::CCornerTabs();
case OOXMLShapes::sptCCube: return new OOXMLShapes::CCube();
case OOXMLShapes::sptCCurvedConnector2: return new OOXMLShapes::CCurvedConnector2();
case OOXMLShapes::sptCCurvedConnector3: return new OOXMLShapes::CCurvedConnector3();
case OOXMLShapes::sptCCurvedConnector4: return new OOXMLShapes::CCurvedConnector4();
case OOXMLShapes::sptCCurvedConnector5: return new OOXMLShapes::CCurvedConnector5();
case OOXMLShapes::sptCCurvedDownArrow: return new OOXMLShapes::CCurvedDownArrow();
case OOXMLShapes::sptCCurvedLeftArrow: return new OOXMLShapes::CCurvedLeftArrow();
case OOXMLShapes::sptCCurvedRightArrow: return new OOXMLShapes::CCurvedRightArrow();
case OOXMLShapes::sptCCurvedUpArrow: return new OOXMLShapes::CCurvedUpArrow();
case OOXMLShapes::sptCDecagon: return new OOXMLShapes::CDecagon();
case OOXMLShapes::sptCDiagStripe: return new OOXMLShapes::CDiagStripe();
case OOXMLShapes::sptCDiamond: return new OOXMLShapes::CDiamond();
case OOXMLShapes::sptCDodecagon: return new OOXMLShapes::CDodecagon();
case OOXMLShapes::sptCDonut: return new OOXMLShapes::CDonut();
case OOXMLShapes::sptCDoubleWave: return new OOXMLShapes::CDoubleWave();
case OOXMLShapes::sptCDownArrow: return new OOXMLShapes::CDownArrow();
case OOXMLShapes::sptCDownArrowCallout: return new OOXMLShapes::CDownArrowCallout();
case OOXMLShapes::sptCEllipse: return new OOXMLShapes::CEllipse();
case OOXMLShapes::sptCEllipseRibbon: return new OOXMLShapes::CEllipseRibbon();
case OOXMLShapes::sptCEllipseRibbon2: return new OOXMLShapes::CEllipseRibbon2();
case OOXMLShapes::sptCFlowChartAlternateProcess: return new OOXMLShapes::CFlowChartAlternateProcess();
case OOXMLShapes::sptCFlowChartCollate: return new OOXMLShapes::CFlowChartCollate();
case OOXMLShapes::sptCFlowChartConnector: return new OOXMLShapes::CFlowChartConnector();
case OOXMLShapes::sptCFlowChartDecision: return new OOXMLShapes::CFlowChartDecision();
case OOXMLShapes::sptCFlowChartDelay: return new OOXMLShapes::CFlowChartDelay();
case OOXMLShapes::sptCFlowChartDisplay: return new OOXMLShapes::CFlowChartDisplay();
case OOXMLShapes::sptCFlowChartDocument: return new OOXMLShapes::CFlowChartDocument();
case OOXMLShapes::sptCFlowChartExtract: return new OOXMLShapes::CFlowChartExtract();
case OOXMLShapes::sptCFlowChartInputOutput: return new OOXMLShapes::CFlowChartInputOutput();
case OOXMLShapes::sptCAccentBorderCallout1: return new OOXMLShapes::CAccentBorderCallout1();
case OOXMLShapes::sptCAccentBorderCallout2: return new OOXMLShapes::CAccentBorderCallout2();
case OOXMLShapes::sptCAccentBorderCallout3: return new OOXMLShapes::CAccentBorderCallout3();
case OOXMLShapes::sptCAccentCallout1: return new OOXMLShapes::CAccentCallout1();
case OOXMLShapes::sptCAccentCallout2: return new OOXMLShapes::CAccentCallout2();
case OOXMLShapes::sptCAccentCallout3: return new OOXMLShapes::CAccentCallout3();
case OOXMLShapes::sptCActionButtonBackPrevious: return new OOXMLShapes::CActionButtonBackPrevious();
case OOXMLShapes::sptCActionButtonBeginning: return new OOXMLShapes::CActionButtonBeginning();
case OOXMLShapes::sptCActionButtonBlank: return new OOXMLShapes::CActionButtonBlank();
case OOXMLShapes::sptCActionButtonDocument: return new OOXMLShapes::CActionButtonDocument();
case OOXMLShapes::sptCActionButtonEnd: return new OOXMLShapes::CActionButtonEnd();
case OOXMLShapes::sptCActionButtonForwardNext: return new OOXMLShapes::CActionButtonForwardNext();
case OOXMLShapes::sptCActionButtonHelp: return new OOXMLShapes::CActionButtonHelp();
case OOXMLShapes::sptCActionButtonHome: return new OOXMLShapes::CActionButtonHome();
case OOXMLShapes::sptCActionButtonInformation: return new OOXMLShapes::CActionButtonInformation();
case OOXMLShapes::sptCActionButtonMovie: return new OOXMLShapes::CActionButtonMovie();
case OOXMLShapes::sptCActionButtonReturn: return new OOXMLShapes::CActionButtonReturn();
case OOXMLShapes::sptCActionButtonSound: return new OOXMLShapes::CActionButtonSound();
case OOXMLShapes::sptCArc: return new OOXMLShapes::CArc();
case OOXMLShapes::sptCBentArrow: return new OOXMLShapes::CBentArrow();
case OOXMLShapes::sptCBentConnector2: return new OOXMLShapes::CBentConnector2();
case OOXMLShapes::sptCBentConnector3: return new OOXMLShapes::CBentConnector3();
case OOXMLShapes::sptCBentConnector4: return new OOXMLShapes::CBentConnector4();
case OOXMLShapes::sptCBentConnector5: return new OOXMLShapes::CBentConnector5();
case OOXMLShapes::sptCBentUpArrow: return new OOXMLShapes::CBentUpArrow();
case OOXMLShapes::sptCBevel: return new OOXMLShapes::CBevel();
case OOXMLShapes::sptCBlockArc: return new OOXMLShapes::CBlockArc();
case OOXMLShapes::sptCBorderCallout1: return new OOXMLShapes::CBorderCallout1();
case OOXMLShapes::sptCBorderCallout2: return new OOXMLShapes::CBorderCallout2();
case OOXMLShapes::sptCBorderCallout3: return new OOXMLShapes::CBorderCallout3();
case OOXMLShapes::sptCBracePair: return new OOXMLShapes::CBracePair();
case OOXMLShapes::sptCBracketPair: return new OOXMLShapes::CBracketPair();
case OOXMLShapes::sptCCallout1: return new OOXMLShapes::CCallout1();
case OOXMLShapes::sptCCallout2: return new OOXMLShapes::CCallout2();
case OOXMLShapes::sptCCallout3: return new OOXMLShapes::CCallout3();
case OOXMLShapes::sptCCan: return new OOXMLShapes::CCan();
case OOXMLShapes::sptCChartPlus: return new OOXMLShapes::CChartPlus();
case OOXMLShapes::sptCChartStar: return new OOXMLShapes::CChartStar();
case OOXMLShapes::sptCChartX: return new OOXMLShapes::CChartX();
case OOXMLShapes::sptCChevron: return new OOXMLShapes::CChevron();
case OOXMLShapes::sptCChord: return new OOXMLShapes::CChord();
case OOXMLShapes::sptCCircularArrow: return new OOXMLShapes::CCircularArrow();
case OOXMLShapes::sptCCloud: return new OOXMLShapes::CCloud();
case OOXMLShapes::sptCCloudCallout: return new OOXMLShapes::CCloudCallout();
case OOXMLShapes::sptCCorner: return new OOXMLShapes::CCorner();
case OOXMLShapes::sptCCornerTabs: return new OOXMLShapes::CCornerTabs();
case OOXMLShapes::sptCCube: return new OOXMLShapes::CCube();
case OOXMLShapes::sptCCurvedConnector2: return new OOXMLShapes::CCurvedConnector2();
case OOXMLShapes::sptCCurvedConnector3: return new OOXMLShapes::CCurvedConnector3();
case OOXMLShapes::sptCCurvedConnector4: return new OOXMLShapes::CCurvedConnector4();
case OOXMLShapes::sptCCurvedConnector5: return new OOXMLShapes::CCurvedConnector5();
case OOXMLShapes::sptCCurvedDownArrow: return new OOXMLShapes::CCurvedDownArrow();
case OOXMLShapes::sptCCurvedLeftArrow: return new OOXMLShapes::CCurvedLeftArrow();
case OOXMLShapes::sptCCurvedRightArrow: return new OOXMLShapes::CCurvedRightArrow();
case OOXMLShapes::sptCCurvedUpArrow: return new OOXMLShapes::CCurvedUpArrow();
case OOXMLShapes::sptCDecagon: return new OOXMLShapes::CDecagon();
case OOXMLShapes::sptCDiagStripe: return new OOXMLShapes::CDiagStripe();
case OOXMLShapes::sptCDiamond: return new OOXMLShapes::CDiamond();
case OOXMLShapes::sptCDodecagon: return new OOXMLShapes::CDodecagon();
case OOXMLShapes::sptCDonut: return new OOXMLShapes::CDonut();
case OOXMLShapes::sptCDoubleWave: return new OOXMLShapes::CDoubleWave();
case OOXMLShapes::sptCDownArrow: return new OOXMLShapes::CDownArrow();
case OOXMLShapes::sptCDownArrowCallout: return new OOXMLShapes::CDownArrowCallout();
case OOXMLShapes::sptCEllipse: return new OOXMLShapes::CEllipse();
case OOXMLShapes::sptCEllipseRibbon: return new OOXMLShapes::CEllipseRibbon();
case OOXMLShapes::sptCEllipseRibbon2: return new OOXMLShapes::CEllipseRibbon2();
case OOXMLShapes::sptCFlowChartAlternateProcess:return new OOXMLShapes::CFlowChartAlternateProcess();
case OOXMLShapes::sptCFlowChartCollate: return new OOXMLShapes::CFlowChartCollate();
case OOXMLShapes::sptCFlowChartConnector: return new OOXMLShapes::CFlowChartConnector();
case OOXMLShapes::sptCFlowChartDecision: return new OOXMLShapes::CFlowChartDecision();
case OOXMLShapes::sptCFlowChartDelay: return new OOXMLShapes::CFlowChartDelay();
case OOXMLShapes::sptCFlowChartDisplay: return new OOXMLShapes::CFlowChartDisplay();
case OOXMLShapes::sptCFlowChartDocument: return new OOXMLShapes::CFlowChartDocument();
case OOXMLShapes::sptCFlowChartExtract: return new OOXMLShapes::CFlowChartExtract();
case OOXMLShapes::sptCFlowChartInputOutput: return new OOXMLShapes::CFlowChartInputOutput();
case OOXMLShapes::sptCFlowChartInternalStorage: return new OOXMLShapes::CFlowChartInternalStorage();
case OOXMLShapes::sptCFlowChartMagneticDisk: return new OOXMLShapes::CFlowChartMagneticDisk();
case OOXMLShapes::sptCFlowChartMagneticDrum: return new OOXMLShapes::CFlowChartMagneticDrum();
case OOXMLShapes::sptCFlowChartMagneticTape: return new OOXMLShapes::CFlowChartMagneticTape();
case OOXMLShapes::sptCFlowChartManualInput: return new OOXMLShapes::CFlowChartManualInput();
case OOXMLShapes::sptCFlowChartMagneticDisk: return new OOXMLShapes::CFlowChartMagneticDisk();
case OOXMLShapes::sptCFlowChartMagneticDrum: return new OOXMLShapes::CFlowChartMagneticDrum();
case OOXMLShapes::sptCFlowChartMagneticTape: return new OOXMLShapes::CFlowChartMagneticTape();
case OOXMLShapes::sptCFlowChartManualInput: return new OOXMLShapes::CFlowChartManualInput();
case OOXMLShapes::sptCFlowChartManualOperation: return new OOXMLShapes::CFlowChartManualOperation();
case OOXMLShapes::sptCFlowChartMerge: return new OOXMLShapes::CFlowChartMerge();
case OOXMLShapes::sptCFlowChartMultidocument: return new OOXMLShapes::CFlowChartMultidocument();
case OOXMLShapes::sptCFlowChartOfflineStorage: return new OOXMLShapes::CFlowChartOfflineStorage();
case OOXMLShapes::sptCFlowChartMerge: return new OOXMLShapes::CFlowChartMerge();
case OOXMLShapes::sptCFlowChartMultidocument: return new OOXMLShapes::CFlowChartMultidocument();
case OOXMLShapes::sptCFlowChartOfflineStorage: return new OOXMLShapes::CFlowChartOfflineStorage();
case OOXMLShapes::sptCFlowChartOffpageConnector: return new OOXMLShapes::CFlowChartOffpageConnector();
case OOXMLShapes::sptCFlowChartOnlineStorage: return new OOXMLShapes::CFlowChartOnlineStorage();
case OOXMLShapes::sptCFlowChartOr: return new OOXMLShapes::CFlowChartOr();
case OOXMLShapes::sptCFlowChartOnlineStorage: return new OOXMLShapes::CFlowChartOnlineStorage();
case OOXMLShapes::sptCFlowChartOr: return new OOXMLShapes::CFlowChartOr();
case OOXMLShapes::sptCFlowChartPredefinedProcess: return new OOXMLShapes::CFlowChartPredefinedProcess();
case OOXMLShapes::sptCFlowChartPreparation: return new OOXMLShapes::CFlowChartPreparation();
case OOXMLShapes::sptCFlowChartProcess: return new OOXMLShapes::CFlowChartProcess();
case OOXMLShapes::sptCFlowChartPunchedCard: return new OOXMLShapes::CFlowChartPunchedCard();
case OOXMLShapes::sptCFlowChartPunchedTape: return new OOXMLShapes::CFlowChartPunchedTape();
case OOXMLShapes::sptCFlowChartSort: return new OOXMLShapes::CFlowChartSort();
case OOXMLShapes::sptCFlowChartPreparation: return new OOXMLShapes::CFlowChartPreparation();
case OOXMLShapes::sptCFlowChartProcess: return new OOXMLShapes::CFlowChartProcess();
case OOXMLShapes::sptCFlowChartPunchedCard: return new OOXMLShapes::CFlowChartPunchedCard();
case OOXMLShapes::sptCFlowChartPunchedTape: return new OOXMLShapes::CFlowChartPunchedTape();
case OOXMLShapes::sptCFlowChartSort: return new OOXMLShapes::CFlowChartSort();
case OOXMLShapes::sptCFlowChartSummingJunction: return new OOXMLShapes::CFlowChartSummingJunction();
case OOXMLShapes::sptCFlowChartTerminator: return new OOXMLShapes::CFlowChartTerminator();
case OOXMLShapes::sptCFoldedCorner: return new OOXMLShapes::CFoldedCorner();
case OOXMLShapes::sptCFrame: return new OOXMLShapes::CFrame();
case OOXMLShapes::sptCFunnel: return new OOXMLShapes::CFunnel();
case OOXMLShapes::sptCGear6: return new OOXMLShapes::CGear6();
case OOXMLShapes::sptCGear9: return new OOXMLShapes::CGear9();
case OOXMLShapes::sptCHalfFrame: return new OOXMLShapes::CHalfFrame();
case OOXMLShapes::sptCHeart: return new OOXMLShapes::CHeart();
case OOXMLShapes::sptCHeptagon: return new OOXMLShapes::CHeptagon();
case OOXMLShapes::sptCHexagon: return new OOXMLShapes::CHexagon();
case OOXMLShapes::sptCHomePlate: return new OOXMLShapes::CHomePlate();
case OOXMLShapes::sptCHorizontalScroll: return new OOXMLShapes::CHorizontalScroll();
case OOXMLShapes::sptCIrregularSeal1: return new OOXMLShapes::CIrregularSeal1();
case OOXMLShapes::sptCIrregularSeal2: return new OOXMLShapes::CIrregularSeal2();
case OOXMLShapes::sptCLeftArrow: return new OOXMLShapes::CLeftArrow();
case OOXMLShapes::sptCLeftArrowCallout: return new OOXMLShapes::CLeftArrowCallout();
case OOXMLShapes::sptCLeftBrace: return new OOXMLShapes::CLeftBrace();
case OOXMLShapes::sptCLeftBracket: return new OOXMLShapes::CLeftBracket();
case OOXMLShapes::sptCLeftCircularArrow: return new OOXMLShapes::CLeftCircularArrow();
case OOXMLShapes::sptCLeftRightArrow: return new OOXMLShapes::CLeftRightArrow();
case OOXMLShapes::sptCLeftRightArrowCallout: return new OOXMLShapes::CLeftRightArrowCallout();
case OOXMLShapes::sptCLeftRightCircularArrow: return new OOXMLShapes::CLeftRightCircularArrow();
case OOXMLShapes::sptCLeftRightRibbon: return new OOXMLShapes::CLeftRightRibbon();
case OOXMLShapes::sptCLeftRightUpArrow: return new OOXMLShapes::CLeftRightUpArrow();
case OOXMLShapes::sptCLeftUpArrow: return new OOXMLShapes::CLeftUpArrow();
case OOXMLShapes::sptCLightningBolt: return new OOXMLShapes::CLightningBolt();
case OOXMLShapes::sptCLine: return new OOXMLShapes::CLine();
case OOXMLShapes::sptCLineInv: return new OOXMLShapes::CLineInv();
case OOXMLShapes::sptCMathDivide: return new OOXMLShapes::CMathDivide();
case OOXMLShapes::sptCMathEqual: return new OOXMLShapes::CMathEqual();
case OOXMLShapes::sptCMathMinus: return new OOXMLShapes::CMathMinus();
case OOXMLShapes::sptCMathMultiply: return new OOXMLShapes::CMathMultiply();
case OOXMLShapes::sptCMathNotEqual: return new OOXMLShapes::CMathNotEqual();
case OOXMLShapes::sptCMathPlus: return new OOXMLShapes::CMathPlus();
case OOXMLShapes::sptCMoon: return new OOXMLShapes::CMoon();
case OOXMLShapes::sptCNonIsoscelesTrapezoid: return new OOXMLShapes::CNonIsoscelesTrapezoid();
case OOXMLShapes::sptCNoSmoking: return new OOXMLShapes::CNoSmoking();
case OOXMLShapes::sptCNotchedRightArrow: return new OOXMLShapes::CNotchedRightArrow();
case OOXMLShapes::sptCOctagon: return new OOXMLShapes::COctagon();
case OOXMLShapes::sptCParallelogram: return new OOXMLShapes::CParallelogram();
case OOXMLShapes::sptCPentagon: return new OOXMLShapes::CPentagon();
case OOXMLShapes::sptCPie: return new OOXMLShapes::CPie();
case OOXMLShapes::sptCPieWedge: return new OOXMLShapes::CPieWedge();
case OOXMLShapes::sptCPlaque: return new OOXMLShapes::CPlaque();
case OOXMLShapes::sptCPlaqueTabs: return new OOXMLShapes::CPlaqueTabs();
case OOXMLShapes::sptCPlus: return new OOXMLShapes::CPlus();
case OOXMLShapes::sptCQuadArrow: return new OOXMLShapes::CQuadArrow();
case OOXMLShapes::sptCQuadArrowCallout: return new OOXMLShapes::CQuadArrowCallout();
case OOXMLShapes::sptCRect: return new OOXMLShapes::CRect();
case OOXMLShapes::sptCRibbon: return new OOXMLShapes::CRibbon();
case OOXMLShapes::sptCRibbon2: return new OOXMLShapes::CRibbon2();
case OOXMLShapes::sptCRightArrow: return new OOXMLShapes::CRightArrow();
case OOXMLShapes::sptCRightArrowCallout: return new OOXMLShapes::CRightArrowCallout();
case OOXMLShapes::sptCRightBrace: return new OOXMLShapes::CRightBrace();
case OOXMLShapes::sptCRightBracket: return new OOXMLShapes::CRightBracket();
case OOXMLShapes::sptCRound1Rect: return new OOXMLShapes::CRound1Rect();
case OOXMLShapes::sptCRound2DiagRect: return new OOXMLShapes::CRound2DiagRect();
case OOXMLShapes::sptCRound2SameRect: return new OOXMLShapes::CRound2SameRect();
case OOXMLShapes::sptCRoundRect: return new OOXMLShapes::CRoundRect();
case OOXMLShapes::sptCRtTriangle: return new OOXMLShapes::CRtTriangle();
case OOXMLShapes::sptCSmileyFace: return new OOXMLShapes::CSmileyFace();
case OOXMLShapes::sptCSnip1Rect: return new OOXMLShapes::CSnip1Rect();
case OOXMLShapes::sptCSnip2DiagRect: return new OOXMLShapes::CSnip2DiagRect();
case OOXMLShapes::sptCSnip2SameRect: return new OOXMLShapes::CSnip2SameRect();
case OOXMLShapes::sptCSnipRoundRect: return new OOXMLShapes::CSnipRoundRect();
case OOXMLShapes::sptCSquareTabs: return new OOXMLShapes::CSquareTabs();
case OOXMLShapes::sptCStar10: return new OOXMLShapes::CStar10();
case OOXMLShapes::sptCStar12: return new OOXMLShapes::CStar12();
case OOXMLShapes::sptCStar16: return new OOXMLShapes::CStar16();
case OOXMLShapes::sptCStar24: return new OOXMLShapes::CStar24();
case OOXMLShapes::sptCStar32: return new OOXMLShapes::CStar32();
case OOXMLShapes::sptCStar4: return new OOXMLShapes::CStar4();
case OOXMLShapes::sptCStar5: return new OOXMLShapes::CStar5();
case OOXMLShapes::sptCStar6: return new OOXMLShapes::CStar6();
case OOXMLShapes::sptCStar7: return new OOXMLShapes::CStar7();
case OOXMLShapes::sptCStar8: return new OOXMLShapes::CStar8();
case OOXMLShapes::sptCStraightConnector1: return new OOXMLShapes::CStraightConnector1();
case OOXMLShapes::sptCStripedRightArrow: return new OOXMLShapes::CStripedRightArrow();
case OOXMLShapes::sptCSun: return new OOXMLShapes::CSun();
case OOXMLShapes::sptCSwooshArrow: return new OOXMLShapes::CSwooshArrow();
case OOXMLShapes::sptCTeardrop: return new OOXMLShapes::CTeardrop();
case OOXMLShapes::sptCTextArchDown: return new OOXMLShapes::CTextArchDown();
case OOXMLShapes::sptCTextArchDownPour: return new OOXMLShapes::CTextArchDownPour();
case OOXMLShapes::sptCTextArchUp: return new OOXMLShapes::CTextArchUp();
case OOXMLShapes::sptCTextArchUpPour: return new OOXMLShapes::CTextArchUpPour();
case OOXMLShapes::sptCTextButton: return new OOXMLShapes::CTextButton();
case OOXMLShapes::sptCTextButtonPour: return new OOXMLShapes::CTextButtonPour();
case OOXMLShapes::sptCTextCanDown: return new OOXMLShapes::CTextCanDown();
case OOXMLShapes::sptCTextCanUp: return new OOXMLShapes::CTextCanUp();
case OOXMLShapes::sptCTextCascadeDown: return new OOXMLShapes::CTextCascadeDown();
case OOXMLShapes::sptCTextCascadeUp: return new OOXMLShapes::CTextCascadeUp();
case OOXMLShapes::sptCTextChevron: return new OOXMLShapes::CTextChevron();
case OOXMLShapes::sptCTextChevronInverted: return new OOXMLShapes::CTextChevronInverted();
case OOXMLShapes::sptCTextCircle: return new OOXMLShapes::CTextCircle();
case OOXMLShapes::sptCTextCirclePour: return new OOXMLShapes::CTextCirclePour();
case OOXMLShapes::sptCTextCurveDown: return new OOXMLShapes::CTextCurveDown();
case OOXMLShapes::sptCTextCurveUp: return new OOXMLShapes::CTextCurveUp();
case OOXMLShapes::sptCTextDeflate: return new OOXMLShapes::CTextDeflate();
case OOXMLShapes::sptCTextDeflateBottom: return new OOXMLShapes::CTextDeflateBottom();
case OOXMLShapes::sptCTextDeflateInflate: return new OOXMLShapes::CTextDeflateInflate();
case OOXMLShapes::sptCTextDeflateInflateDeflate: return new OOXMLShapes::CTextDeflateInflateDeflate();
case OOXMLShapes::sptCTextDeflateTop: return new OOXMLShapes::CTextDeflateTop();
case OOXMLShapes::sptCTextDoubleWave1: return new OOXMLShapes::CTextDoubleWave1();
case OOXMLShapes::sptCTextFadeDown: return new OOXMLShapes::CTextFadeDown();
case OOXMLShapes::sptCTextFadeLeft: return new OOXMLShapes::CTextFadeLeft();
case OOXMLShapes::sptCTextFadeRight: return new OOXMLShapes::CTextFadeRight();
case OOXMLShapes::sptCTextFadeUp: return new OOXMLShapes::CTextFadeUp();
case OOXMLShapes::sptCTextInflate: return new OOXMLShapes::CTextInflate();
case OOXMLShapes::sptCTextInflateBottom: return new OOXMLShapes::CTextInflateBottom();
case OOXMLShapes::sptCTextInflateTop: return new OOXMLShapes::CTextInflateTop();
case OOXMLShapes::sptCTextPlain: return new OOXMLShapes::CTextPlain();
case OOXMLShapes::sptCTextRingInside: return new OOXMLShapes::CTextRingInside();
case OOXMLShapes::sptCTextRingOutside: return new OOXMLShapes::CTextRingOutside();
case OOXMLShapes::sptCTextSlantDown: return new OOXMLShapes::CTextSlantDown();
case OOXMLShapes::sptCTextSlantUp: return new OOXMLShapes::CTextSlantUp();
case OOXMLShapes::sptCTextStop: return new OOXMLShapes::CTextStop();
case OOXMLShapes::sptCTextTriangle: return new OOXMLShapes::CTextTriangle();
case OOXMLShapes::sptCTextTriangleInverted: return new OOXMLShapes::CTextTriangleInverted();
case OOXMLShapes::sptCTextWave1: return new OOXMLShapes::CTextWave1();
case OOXMLShapes::sptCTextWave2: return new OOXMLShapes::CTextWave2();
case OOXMLShapes::sptCTextWave4: return new OOXMLShapes::CTextWave4();
case OOXMLShapes::sptCTrapezoid: return new OOXMLShapes::CTrapezoid();
case OOXMLShapes::sptCTriangle: return new OOXMLShapes::CTriangle();
case OOXMLShapes::sptCUpArrow: return new OOXMLShapes::CUpArrow();
case OOXMLShapes::sptCUpArrowCallout: return new OOXMLShapes::CUpArrowCallout();
case OOXMLShapes::sptCUpDownArrow: return new OOXMLShapes::CUpDownArrow();
case OOXMLShapes::sptCUpDownArrowCallout: return new OOXMLShapes::CUpDownArrowCallout();
case OOXMLShapes::sptCUturnArrow: return new OOXMLShapes::CUturnArrow();
case OOXMLShapes::sptCVerticalScroll: return new OOXMLShapes::CVerticalScroll();
case OOXMLShapes::sptCWave: return new OOXMLShapes::CWave();
case OOXMLShapes::sptCWedgeEllipseCallout: return new OOXMLShapes::CWedgeEllipseCallout();
case OOXMLShapes::sptCWedgeRectCallout: return new OOXMLShapes::CWedgeRectCallout();
case OOXMLShapes::sptCWedgeRoundRectCallout: return new OOXMLShapes::CWedgeRoundRectCallout();
case OOXMLShapes::sptCFlowChartTerminator: return new OOXMLShapes::CFlowChartTerminator();
case OOXMLShapes::sptCFoldedCorner: return new OOXMLShapes::CFoldedCorner();
case OOXMLShapes::sptCFrame: return new OOXMLShapes::CFrame();
case OOXMLShapes::sptCFunnel: return new OOXMLShapes::CFunnel();
case OOXMLShapes::sptCGear6: return new OOXMLShapes::CGear6();
case OOXMLShapes::sptCGear9: return new OOXMLShapes::CGear9();
case OOXMLShapes::sptCHalfFrame: return new OOXMLShapes::CHalfFrame();
case OOXMLShapes::sptCHeart: return new OOXMLShapes::CHeart();
case OOXMLShapes::sptCHeptagon: return new OOXMLShapes::CHeptagon();
case OOXMLShapes::sptCHexagon: return new OOXMLShapes::CHexagon();
case OOXMLShapes::sptCHomePlate: return new OOXMLShapes::CHomePlate();
case OOXMLShapes::sptCHorizontalScroll: return new OOXMLShapes::CHorizontalScroll();
case OOXMLShapes::sptCIrregularSeal1: return new OOXMLShapes::CIrregularSeal1();
case OOXMLShapes::sptCIrregularSeal2: return new OOXMLShapes::CIrregularSeal2();
case OOXMLShapes::sptCLeftArrow: return new OOXMLShapes::CLeftArrow();
case OOXMLShapes::sptCLeftArrowCallout: return new OOXMLShapes::CLeftArrowCallout();
case OOXMLShapes::sptCLeftBrace: return new OOXMLShapes::CLeftBrace();
case OOXMLShapes::sptCLeftBracket: return new OOXMLShapes::CLeftBracket();
case OOXMLShapes::sptCLeftCircularArrow: return new OOXMLShapes::CLeftCircularArrow();
case OOXMLShapes::sptCLeftRightArrow: return new OOXMLShapes::CLeftRightArrow();
case OOXMLShapes::sptCLeftRightArrowCallout: return new OOXMLShapes::CLeftRightArrowCallout();
case OOXMLShapes::sptCLeftRightCircularArrow: return new OOXMLShapes::CLeftRightCircularArrow();
case OOXMLShapes::sptCLeftRightRibbon: return new OOXMLShapes::CLeftRightRibbon();
case OOXMLShapes::sptCLeftRightUpArrow: return new OOXMLShapes::CLeftRightUpArrow();
case OOXMLShapes::sptCLeftUpArrow: return new OOXMLShapes::CLeftUpArrow();
case OOXMLShapes::sptCLightningBolt: return new OOXMLShapes::CLightningBolt();
case OOXMLShapes::sptCLine: return new OOXMLShapes::CLine();
case OOXMLShapes::sptCLineInv: return new OOXMLShapes::CLineInv();
case OOXMLShapes::sptCMathDivide: return new OOXMLShapes::CMathDivide();
case OOXMLShapes::sptCMathEqual: return new OOXMLShapes::CMathEqual();
case OOXMLShapes::sptCMathMinus: return new OOXMLShapes::CMathMinus();
case OOXMLShapes::sptCMathMultiply: return new OOXMLShapes::CMathMultiply();
case OOXMLShapes::sptCMathNotEqual: return new OOXMLShapes::CMathNotEqual();
case OOXMLShapes::sptCMathPlus: return new OOXMLShapes::CMathPlus();
case OOXMLShapes::sptCMoon: return new OOXMLShapes::CMoon();
case OOXMLShapes::sptCNonIsoscelesTrapezoid: return new OOXMLShapes::CNonIsoscelesTrapezoid();
case OOXMLShapes::sptCNoSmoking: return new OOXMLShapes::CNoSmoking();
case OOXMLShapes::sptCNotchedRightArrow: return new OOXMLShapes::CNotchedRightArrow();
case OOXMLShapes::sptCOctagon: return new OOXMLShapes::COctagon();
case OOXMLShapes::sptCParallelogram: return new OOXMLShapes::CParallelogram();
case OOXMLShapes::sptCPentagon: return new OOXMLShapes::CPentagon();
case OOXMLShapes::sptCPie: return new OOXMLShapes::CPie();
case OOXMLShapes::sptCPieWedge: return new OOXMLShapes::CPieWedge();
case OOXMLShapes::sptCPlaque: return new OOXMLShapes::CPlaque();
case OOXMLShapes::sptCPlaqueTabs: return new OOXMLShapes::CPlaqueTabs();
case OOXMLShapes::sptCPlus: return new OOXMLShapes::CPlus();
case OOXMLShapes::sptCQuadArrow: return new OOXMLShapes::CQuadArrow();
case OOXMLShapes::sptCQuadArrowCallout: return new OOXMLShapes::CQuadArrowCallout();
case OOXMLShapes::sptCRect: return new OOXMLShapes::CRect();
case OOXMLShapes::sptCRibbon: return new OOXMLShapes::CRibbon();
case OOXMLShapes::sptCRibbon2: return new OOXMLShapes::CRibbon2();
case OOXMLShapes::sptCRightArrow: return new OOXMLShapes::CRightArrow();
case OOXMLShapes::sptCRightArrowCallout: return new OOXMLShapes::CRightArrowCallout();
case OOXMLShapes::sptCRightBrace: return new OOXMLShapes::CRightBrace();
case OOXMLShapes::sptCRightBracket: return new OOXMLShapes::CRightBracket();
case OOXMLShapes::sptCRound1Rect: return new OOXMLShapes::CRound1Rect();
case OOXMLShapes::sptCRound2DiagRect: return new OOXMLShapes::CRound2DiagRect();
case OOXMLShapes::sptCRound2SameRect: return new OOXMLShapes::CRound2SameRect();
case OOXMLShapes::sptCRoundRect: return new OOXMLShapes::CRoundRect();
case OOXMLShapes::sptCRtTriangle: return new OOXMLShapes::CRtTriangle();
case OOXMLShapes::sptCSmileyFace: return new OOXMLShapes::CSmileyFace();
case OOXMLShapes::sptCSnip1Rect: return new OOXMLShapes::CSnip1Rect();
case OOXMLShapes::sptCSnip2DiagRect: return new OOXMLShapes::CSnip2DiagRect();
case OOXMLShapes::sptCSnip2SameRect: return new OOXMLShapes::CSnip2SameRect();
case OOXMLShapes::sptCSnipRoundRect: return new OOXMLShapes::CSnipRoundRect();
case OOXMLShapes::sptCSquareTabs: return new OOXMLShapes::CSquareTabs();
case OOXMLShapes::sptCStar10: return new OOXMLShapes::CStar10();
case OOXMLShapes::sptCStar12: return new OOXMLShapes::CStar12();
case OOXMLShapes::sptCStar16: return new OOXMLShapes::CStar16();
case OOXMLShapes::sptCStar24: return new OOXMLShapes::CStar24();
case OOXMLShapes::sptCStar32: return new OOXMLShapes::CStar32();
case OOXMLShapes::sptCStar4: return new OOXMLShapes::CStar4();
case OOXMLShapes::sptCStar5: return new OOXMLShapes::CStar5();
case OOXMLShapes::sptCStar6: return new OOXMLShapes::CStar6();
case OOXMLShapes::sptCStar7: return new OOXMLShapes::CStar7();
case OOXMLShapes::sptCStar8: return new OOXMLShapes::CStar8();
case OOXMLShapes::sptCStraightConnector1: return new OOXMLShapes::CStraightConnector1();
case OOXMLShapes::sptCStripedRightArrow: return new OOXMLShapes::CStripedRightArrow();
case OOXMLShapes::sptCSun: return new OOXMLShapes::CSun();
case OOXMLShapes::sptCSwooshArrow: return new OOXMLShapes::CSwooshArrow();
case OOXMLShapes::sptCTeardrop: return new OOXMLShapes::CTeardrop();
case OOXMLShapes::sptCTextArchDown: return new OOXMLShapes::CTextArchDown();
case OOXMLShapes::sptCTextArchDownPour: return new OOXMLShapes::CTextArchDownPour();
case OOXMLShapes::sptCTextArchUp: return new OOXMLShapes::CTextArchUp();
case OOXMLShapes::sptCTextArchUpPour: return new OOXMLShapes::CTextArchUpPour();
case OOXMLShapes::sptCTextButton: return new OOXMLShapes::CTextButton();
case OOXMLShapes::sptCTextButtonPour: return new OOXMLShapes::CTextButtonPour();
case OOXMLShapes::sptCTextCanDown: return new OOXMLShapes::CTextCanDown();
case OOXMLShapes::sptCTextCanUp: return new OOXMLShapes::CTextCanUp();
case OOXMLShapes::sptCTextCascadeDown: return new OOXMLShapes::CTextCascadeDown();
case OOXMLShapes::sptCTextCascadeUp: return new OOXMLShapes::CTextCascadeUp();
case OOXMLShapes::sptCTextChevron: return new OOXMLShapes::CTextChevron();
case OOXMLShapes::sptCTextChevronInverted: return new OOXMLShapes::CTextChevronInverted();
case OOXMLShapes::sptCTextCircle: return new OOXMLShapes::CTextCircle();
case OOXMLShapes::sptCTextCirclePour: return new OOXMLShapes::CTextCirclePour();
case OOXMLShapes::sptCTextCurveDown: return new OOXMLShapes::CTextCurveDown();
case OOXMLShapes::sptCTextCurveUp: return new OOXMLShapes::CTextCurveUp();
case OOXMLShapes::sptCTextDeflate: return new OOXMLShapes::CTextDeflate();
case OOXMLShapes::sptCTextDeflateBottom: return new OOXMLShapes::CTextDeflateBottom();
case OOXMLShapes::sptCTextDeflateInflate: return new OOXMLShapes::CTextDeflateInflate();
case OOXMLShapes::sptCTextDeflateInflateDeflate:return new OOXMLShapes::CTextDeflateInflateDeflate();
case OOXMLShapes::sptCTextDeflateTop: return new OOXMLShapes::CTextDeflateTop();
case OOXMLShapes::sptCTextDoubleWave1: return new OOXMLShapes::CTextDoubleWave1();
case OOXMLShapes::sptCTextFadeDown: return new OOXMLShapes::CTextFadeDown();
case OOXMLShapes::sptCTextFadeLeft: return new OOXMLShapes::CTextFadeLeft();
case OOXMLShapes::sptCTextFadeRight: return new OOXMLShapes::CTextFadeRight();
case OOXMLShapes::sptCTextFadeUp: return new OOXMLShapes::CTextFadeUp();
case OOXMLShapes::sptCTextInflate: return new OOXMLShapes::CTextInflate();
case OOXMLShapes::sptCTextInflateBottom: return new OOXMLShapes::CTextInflateBottom();
case OOXMLShapes::sptCTextInflateTop: return new OOXMLShapes::CTextInflateTop();
case OOXMLShapes::sptCTextPlain: return new OOXMLShapes::CTextPlain();
case OOXMLShapes::sptCTextRingInside: return new OOXMLShapes::CTextRingInside();
case OOXMLShapes::sptCTextRingOutside: return new OOXMLShapes::CTextRingOutside();
case OOXMLShapes::sptCTextSlantDown: return new OOXMLShapes::CTextSlantDown();
case OOXMLShapes::sptCTextSlantUp: return new OOXMLShapes::CTextSlantUp();
case OOXMLShapes::sptCTextStop: return new OOXMLShapes::CTextStop();
case OOXMLShapes::sptCTextTriangle: return new OOXMLShapes::CTextTriangle();
case OOXMLShapes::sptCTextTriangleInverted: return new OOXMLShapes::CTextTriangleInverted();
case OOXMLShapes::sptCTextWave1: return new OOXMLShapes::CTextWave1();
case OOXMLShapes::sptCTextWave2: return new OOXMLShapes::CTextWave2();
case OOXMLShapes::sptCTextWave4: return new OOXMLShapes::CTextWave4();
case OOXMLShapes::sptCTrapezoid: return new OOXMLShapes::CTrapezoid();
case OOXMLShapes::sptCTriangle: return new OOXMLShapes::CTriangle();
case OOXMLShapes::sptCUpArrow: return new OOXMLShapes::CUpArrow();
case OOXMLShapes::sptCUpArrowCallout: return new OOXMLShapes::CUpArrowCallout();
case OOXMLShapes::sptCUpDownArrow: return new OOXMLShapes::CUpDownArrow();
case OOXMLShapes::sptCUpDownArrowCallout: return new OOXMLShapes::CUpDownArrowCallout();
case OOXMLShapes::sptCUturnArrow: return new OOXMLShapes::CUturnArrow();
case OOXMLShapes::sptCVerticalScroll: return new OOXMLShapes::CVerticalScroll();
case OOXMLShapes::sptCWave: return new OOXMLShapes::CWave();
case OOXMLShapes::sptCWedgeEllipseCallout: return new OOXMLShapes::CWedgeEllipseCallout();
case OOXMLShapes::sptCWedgeRectCallout: return new OOXMLShapes::CWedgeRectCallout();
case OOXMLShapes::sptCWedgeRoundRectCallout: return new OOXMLShapes::CWedgeRoundRectCallout();
}
return NULL;
}

View File

@ -477,7 +477,7 @@ public:
virtual bool SetAdjustment(long index, long value)
{
FManager.Clear();
if (index < m_arAdjustments.size() && index >=0)
if (index < (long)m_arAdjustments.size() && index >=0)
{
m_arAdjustments[index] = value;
return TRUE;
@ -508,7 +508,8 @@ public:
}
static CPPTXShape* CreateByType(OOXMLShapes::ShapeType type);
virtual const ClassType GetClassType()const
virtual const ClassType GetClassType()const
{
return NSBaseShape::pptx;
}

View File

@ -967,7 +967,7 @@ namespace NSPresentationEditor
{
m_eRuler = oSrc.m_eRuler;
m_arPoints.clear();
for (int nIndex = 0; nIndex < oSrc.m_arPoints.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arPoints.size(); ++nIndex)
{
m_arPoints.push_back(oSrc.m_arPoints[nIndex]);
}
@ -1282,7 +1282,7 @@ namespace NSPresentationEditor
LONG lValue;
bool bRes = true;
for (int nIndex = 0; nIndex < oArray.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oArray.size(); ++nIndex)
{
lValue = GetValue(oArray[nIndex], eParamType, bRes);
if (bRes)
@ -1291,7 +1291,7 @@ namespace NSPresentationEditor
{
case ptFormula:
{
if (0 <= lValue && lValue < pManager.m_arResults.size())
if (0 <= lValue && lValue < (LONG)pManager.m_arResults.size())
{
lValue = pManager.m_arResults[lValue];
}
@ -1303,7 +1303,7 @@ namespace NSPresentationEditor
}
case ptAdjust:
{
if (0 <= lValue && lValue < pManager.m_pAdjustments->size())
if (0 <= lValue && lValue < (LONG)pManager.m_pAdjustments->size())
{
lValue = (*(pManager.m_pAdjustments))[lValue];
}
@ -1364,8 +1364,7 @@ namespace NSPresentationEditor
//pRenderer->BeginCommand(c_nPathType);
int nSlises = m_arSlices.size();
for (int nIndex = 0; nIndex < nSlises; ++nIndex)
for (size_t nIndex = 0; nIndex < m_arSlices.size(); ++nIndex)
{
m_arSlices[nIndex].ToRenderer(pRenderer, pGeomInfo, width, height, ClassType);
}
@ -1383,8 +1382,7 @@ namespace NSPresentationEditor
pRenderer->m_dWidthMM = pInfo.m_lMillimetresHor;
pRenderer->m_dHeightMM = pInfo.m_lMillimetresVer;
int nSlises = m_arSlices.size();
for (int nIndex = 0; nIndex < nSlises; ++nIndex)
for (size_t nIndex = 0; nIndex < m_arSlices.size(); ++nIndex)
{
m_arSlices[nIndex].ToRenderer(pRenderer, pGeomInfo, width, height, ClassType);
}
@ -1399,7 +1397,7 @@ namespace NSPresentationEditor
height = oSrc.height;
m_arSlices.clear();
for (int nIndex = 0; nIndex < oSrc.m_arSlices.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arSlices.size(); ++nIndex)
{
m_arSlices.push_back(oSrc.m_arSlices[nIndex]);
}
@ -1433,7 +1431,7 @@ namespace NSPresentationEditor
std::vector<std::wstring> oArray;
boost::algorithm::split(oArray, strPath, boost::algorithm::is_any_of(L"e"), boost::algorithm::token_compress_on);
for (int nIndex = 0; nIndex < oArray.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oArray.size(); ++nIndex)
{
CPartPath oPath;
m_arParts.push_back(oPath);
@ -1444,7 +1442,7 @@ namespace NSPresentationEditor
std::wstring ToXml(CGeomShapeInfo& pGeomInfo, double dStartTime, double dEndTime, CPen& pPen, CBrush& pFore, CMetricInfo& pInfo, NSBaseShape::ClassType ClassType)
{
std::wstring strResult = _T("");
for (int nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
{
strResult += m_arParts[nIndex].ToXml(pGeomInfo, dStartTime, dEndTime, pPen, pFore, pInfo, ClassType);
}
@ -1458,8 +1456,7 @@ namespace NSPresentationEditor
oPath.Pen = pPen;
oPath.Brush = pFore;
int nSize = m_arParts.size();
for (int nIndex = 0; nIndex < nSize; ++nIndex)
for (size_t nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
{
oPath.Clear();
m_arParts[nIndex].ToRenderer(&oPath, pGeomInfo, dStartTime, dEndTime, pPen, pFore, pInfo, ClassType);
@ -1471,7 +1468,7 @@ namespace NSPresentationEditor
CPath& operator =(const CPath& oSrc)
{
m_arParts.clear();
for (int nIndex = 0; nIndex < oSrc.m_arParts.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < oSrc.m_arParts.size(); ++nIndex)
{
m_arParts.push_back(oSrc.m_arParts[nIndex]);
}
@ -1480,7 +1477,7 @@ namespace NSPresentationEditor
void SetCoordsize(LONG lWidth, LONG lHeight)
{
for (int nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arParts.size(); ++nIndex)
{
m_arParts[nIndex].width = lWidth;
m_arParts[nIndex].height = lHeight;

View File

@ -67,7 +67,6 @@ public:
CTextAttributesEx m_oText;
double m_dWidthLogic;
double m_dHeightLogic;
@ -81,7 +80,7 @@ public:
CBaseShape* m_pShape;
std::wstring m_strPPTXShape;
std::wstring m_strPPTXShape;
public:
CShape(NSBaseShape::ClassType ClassType, int ShapeType_) : m_rcBounds()
{

View File

@ -110,7 +110,7 @@ namespace NSPresentationEditor
strPitchFamily = oSrc.strPitchFamily;
lFontFixed = oSrc.lFontFixed;
for (int i =0 ; i< oSrc.arFontCharsets.size(); i++)
for (size_t i =0 ; i< oSrc.arFontCharsets.size(); i++)
arFontCharsets.push_back(oSrc.arFontCharsets[i]);
return *this;
@ -844,7 +844,7 @@ namespace NSPresentationEditor
size_t nCountSpans = m_arSpans.size();
for (size_t i = 0; i < nCountSpans; ++i)
{
int nLen = m_arSpans[i].m_strText.length();
size_t nLen = m_arSpans[i].m_strText.length();
if (nLen > 1)
return false;

View File

@ -107,9 +107,9 @@ namespace NSPresentationEditor
m_bHasFooter = oSrc.m_bHasFooter;
m_nFormatDate = oSrc.m_nFormatDate;
for (int i = 0 ; i < 3 ; i++) m_PlaceholdersReplaceString[i] = oSrc.m_PlaceholdersReplaceString[i];
for (size_t i = 0 ; i < 3 ; i++) m_PlaceholdersReplaceString[i] = oSrc.m_PlaceholdersReplaceString[i];
for (int i = 0; i < oSrc.m_arExtraColorScheme.size(); ++i)
for (size_t i = 0; i < oSrc.m_arExtraColorScheme.size(); ++i)
{
m_arExtraColorScheme.push_back(oSrc.m_arExtraColorScheme[i]);
}

View File

@ -160,12 +160,12 @@ namespace NSFontCutter
}
void CheckString(const std::wstring& val)
{
int len = val.length();
size_t len = val.length();
std::wstring str_lower = XmlUtils::GetLower(val);
std::wstring str_upper = XmlUtils::GetUpper(val);
for (int i = 0; i < len; ++i)
for (size_t i = 0; i < len; ++i)
{
m_CharMap [str_lower[i]] = true;
m_CharMap [str_upper[i]] = true;
@ -175,7 +175,7 @@ namespace NSFontCutter
template<typename T>
void WriteEmbeddedFonts(T* pWriter)
{
#if defined(BUILD_CONFIG_FULL_VERSION) && !defined(DONT_WRITE_EMBEDDED_FONTS)
#if !defined(DONT_WRITE_EMBEDDED_FONTS)
ULONG nCount = 0;
for(std::map<std::wstring, CEmbeddedFontInfo>::iterator pPair = m_mapFontsEmbeddded.begin(); pPair != m_mapFontsEmbeddded.end(); ++pPair)
@ -338,7 +338,7 @@ namespace NSFontCutter
delete [] pArrayUnicodes;
RELEASEINTERFACE(pFontConverter);
#endif // #if defined(BUILD_CONFIG_FULL_VERSION) && !defined(DONT_WRITE_EMBEDDED_FONTS)
#endif // #if !defined(DONT_WRITE_EMBEDDED_FONTS)
}
bool GenerateSafearray(USHORT **ppArray, size_t& nCount)
@ -373,7 +373,7 @@ namespace NSFontCutter
return true;
}
#if defined(BUILD_CONFIG_FULL_VERSION) && !defined(DONT_WRITE_EMBEDDED_FONTS)
#if !defined(DONT_WRITE_EMBEDDED_FONTS)
void WriteFont(std::wstring& strName, LONG& lFaceIndex, std::wstring& strFontPath, CFile* pFile, USHORT* pArrayUnicodes, size_t pArrayUnicodesLength, Fonts::IFontConverter* pFontConverter)
{
LONG lFontConverterFlag = 16; // truetype only
@ -415,7 +415,7 @@ namespace NSFontCutter
RELEASEARRAY(pArrayData);
}
#endif // #if defined(BUILD_CONFIG_FULL_VERSION) && !defined(DONT_WRITE_EMBEDDED_FONTS)
#endif // #if !defined(DONT_WRITE_EMBEDDED_FONTS)
};
}

View File

@ -86,10 +86,10 @@ namespace NSFontCutter
{
std::wstring sFind = strTypeface;
int nFindTh = sFind.find(_T("+mj"));
int nFindTh = (int)sFind.find(_T("+mj"));
if (0 == nFindTh)
return sFind;
nFindTh = sFind.find(_T("+mn"));
nFindTh = (int)sFind.find(_T("+mn"));
if (0 == nFindTh)
return sFind;

View File

@ -780,7 +780,7 @@ namespace NSBinPptxRW
if (true)
{
// notes theme
std::wstring strTheme = L"<Override PartName=\"/ppt/theme/theme" + std::to_wstring(m_arThemes.size() + 1) +
std::wstring strTheme = L"<Override PartName=\"/ppt/theme/theme" + std::to_wstring((int)m_arThemes.size() + 1) +
L".xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/>";
oContentTypes.WriteString(strTheme);

View File

@ -104,7 +104,7 @@ namespace NSBinPptxRW
//m_lSize *= 2; - бесконтрольно ..
m_lSize += (std::max)(nSize, (size_t) 1024);
}
int size_alloc = m_lSize * sizeof(wchar_t);
size_t size_alloc = m_lSize * sizeof(wchar_t);
#if defined(_WIN32) || defined (_WIN64)
wchar_t* pRealloc = (wchar_t*)realloc(m_pData, size_alloc );
if (NULL != pRealloc)
@ -551,7 +551,7 @@ namespace NSBinPptxRW
{
CFile oFile;
oFile.CreateFile(strFilePath);
oFile.WriteFile((void*)strData.c_str(), strData.length());
oFile.WriteFile((void*)strData.c_str(), (DWORD)strData.length());
oFile.CloseFile();
}
else

Some files were not shown because too many files have changed in this diff Show More