mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-14 20:05:54 +08:00
Compare commits
51 Commits
core/devel
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| 67a849f110 | |||
| 15800296f7 | |||
| 52fe741f9a | |||
| b3ee693890 | |||
| 8c2e1738ea | |||
| bf33aed853 | |||
| 5869c7a02e | |||
| bbd429a994 | |||
| f4d636539e | |||
| 92e02257d7 | |||
| d2046d7ccb | |||
| 7bc35a157a | |||
| 903245e8a7 | |||
| 25ee9c3c1c | |||
| 9ead40d279 | |||
| e097379c21 | |||
| f86579d601 | |||
| de7511f243 | |||
| 9a68a75f70 | |||
| e04388aa32 | |||
| cee61e7a92 | |||
| 48185ed4e9 | |||
| 7bea086784 | |||
| 774f9c42cb | |||
| 10964d32e6 | |||
| da2493ed3b | |||
| 0a183f3505 | |||
| ac6cc1ec24 | |||
| a1846da0da | |||
| 0bd10c28ac | |||
| 2367cee329 | |||
| 288d89301a | |||
| 4d519e8f26 | |||
| 1bd2c0b852 | |||
| 82b0f4bce8 | |||
| 5635239274 | |||
| 1f979fc4cc | |||
| 80c4a65147 | |||
| 4fda6101eb | |||
| 99822fb597 | |||
| f1d9c12f07 | |||
| 30ef5a9de4 | |||
| 765ca861fb | |||
| 99570b3b86 | |||
| d9c6759108 | |||
| b82a8c6b9b | |||
| d76b1897aa | |||
| 857b79ee23 | |||
| ecba12b29f | |||
| efc48ab44c | |||
| 5f0620ed90 |
@ -232,7 +232,8 @@ namespace DocFileFormat
|
||||
|
||||
case sprmOldCIss:
|
||||
case sprmCIss:
|
||||
appendValueElement( parent, L"vertAlign", FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
if (iter->argumentsSize > 0 && iter->Arguments[0] < 3) //Metaevan.doc
|
||||
appendValueElement( parent, L"vertAlign", FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
break;
|
||||
|
||||
case sprmCRgLid0_80:
|
||||
|
||||
@ -307,13 +307,11 @@ namespace DocFileFormat
|
||||
if (!FormatUtils::IsControlSymbol(xchBullet))
|
||||
{
|
||||
ret.push_back(lvl.xst[0]);
|
||||
ret.push_back(L'\0');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret.push_back(L'\xF0B7');
|
||||
ret.push_back(L'\0');
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -250,10 +250,6 @@ public:
|
||||
{
|
||||
pFile->WriteFile((BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
|
||||
}
|
||||
if (NULL != m_pMetaFile)
|
||||
{
|
||||
pFile->WriteFile((BYTE*)m_pMetaFile, m_lMetaFileSize);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -71,26 +71,26 @@ namespace DocFileFormat
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
DWORD biSize;
|
||||
LONG biWidth;
|
||||
LONG biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount;
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
LONG biXPelsPerMeter;
|
||||
LONG biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
DWORD bcSize; /* used to get to color table */
|
||||
WORD bcWidth;
|
||||
WORD bcHeight;
|
||||
WORD bcPlanes;
|
||||
WORD bcBitCount;
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
Global::BlipType GetFormatPict(unsigned char* data, int size)
|
||||
{
|
||||
|
||||
@ -37,29 +37,29 @@
|
||||
|
||||
namespace ImageHelper
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
DWORD biSize;
|
||||
LONG biWidth;
|
||||
LONG biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount;
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
LONG biXPelsPerMeter;
|
||||
LONG biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
};
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
DWORD bcSize; /* used to get to color table */
|
||||
WORD bcWidth;
|
||||
WORD bcHeight;
|
||||
WORD bcPlanes;
|
||||
WORD bcBitCount;
|
||||
};
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
|
||||
inline Global::_BlipType SaveImageToFileFromDIB(unsigned char* data, int size, const std::wstring& file_name)//without ext
|
||||
{
|
||||
@ -152,10 +152,10 @@ namespace ImageHelper
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name + L".bmp"))
|
||||
{
|
||||
WORD vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
DWORD dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
DWORD dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
DWORD dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
_UINT16 vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
_UINT32 dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
_UINT32 dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
_UINT32 dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
@ -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;
|
||||
|
||||
@ -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 \
|
||||
|
||||
@ -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
@ -33,7 +33,7 @@
|
||||
//
|
||||
#include "../DocFormatLib/DocFormatLib.h"
|
||||
|
||||
#include "../win32/ASCOfficeCriticalSection.h"
|
||||
#include "../../OfficeUtils/src/ASCOfficeCriticalSection.h"
|
||||
|
||||
#include "../../OfficeUtils/src/OfficeUtils.h"
|
||||
|
||||
@ -41,6 +41,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#if defined(_WIN64)
|
||||
#pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib")
|
||||
@ -58,7 +59,6 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(sDstDocx);
|
||||
std::wstring dstTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);
|
||||
|
||||
// doc->docx
|
||||
COfficeDocFile docFile;
|
||||
|
||||
docFile.m_sTempFolder = outputDir;
|
||||
@ -71,7 +71,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
hRes = oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), sDstDocx, -1);
|
||||
}
|
||||
|
||||
FileSystem::Directory::DeleteDirectory(dstTempPath);
|
||||
NSDirectory::DeleteDirectory(dstTempPath);
|
||||
|
||||
return hRes;
|
||||
}
|
||||
|
||||
@ -338,6 +338,58 @@
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Common"
|
||||
>
|
||||
<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>
|
||||
<File
|
||||
RelativePath=".\DocFormatTest.cpp"
|
||||
>
|
||||
@ -386,6 +438,14 @@
|
||||
RelativePath="..\..\UnicodeConverter\UnicodeConverter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\DesktopEditor\xml\src\xmldom.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\DesktopEditor\xml\src\xmllight.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
};
|
||||
}
|
||||
@ -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
@ -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
@ -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") ];
|
||||
@ -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
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
HKCR
|
||||
{
|
||||
NoRemove AppID
|
||||
{
|
||||
'%APPID%' = s 'ASCOfficeDocxFile2'
|
||||
'ASCOfficeDocxFile2.DLL'
|
||||
{
|
||||
val AppID = s '%APPID%'
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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
@ -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>
|
||||
@ -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>
|
||||
@ -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
|
||||
@ -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];
|
||||
|
||||
|
||||
@ -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())
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -339,9 +339,9 @@ public:
|
||||
if(ThemeColor.bColor)
|
||||
sShd += L" w:themeFill=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
if(ThemeColor.bTint)
|
||||
sShd += L" w:themeFillTint=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
sShd += L" w:themeFillTint=\"" + ThemeColor.ToStringTint() + L"\"";
|
||||
if(ThemeColor.bShade)
|
||||
sShd += L" w:themeFillShade=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
sShd += L" w:themeFillShade=\"" + ThemeColor.ToStringShade() + L"\"";
|
||||
}
|
||||
sShd += L"/>";
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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())
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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:
|
||||
};
|
||||
@ -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 \
|
||||
|
||||
@ -378,6 +378,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@ -414,6 +415,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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
|
||||
@ -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:
|
||||
|
||||
};
|
||||
@ -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 */
|
||||
@ -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"
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
@ -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"
|
||||
@ -2,6 +2,9 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml_wrapper", "..\win32\cpxml.vcproj", "{41BED424-4EAF-4053-8A5F-1E2A387D53D1}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatReaderLib", "..\win32\cpodf.vcproj", "{50E20601-4A8D-4AFB-8870-63828D328429}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@ -21,7 +24,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\wi
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileReaderTest", "OdfFileTest.vcproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1}
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429} = {50E20601-4A8D-4AFB-8870-63828D328429}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
@ -30,7 +35,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileReaderTest", "OdfFil
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
|
||||
|
||||
@ -31,18 +31,23 @@
|
||||
*/
|
||||
// OdfFileTest.cpp
|
||||
|
||||
#include "../../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/SystemUtility/FileSystem/Directory.h"
|
||||
|
||||
#include "../../src/ConvertOO2OOX.h"
|
||||
#include "../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../src/ConvertOO2OOX.h"
|
||||
|
||||
|
||||
#if defined(_WIN64)
|
||||
#pragma comment(lib, "../../../build/bin/icu/win_64/icuuc.lib")
|
||||
#pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib")
|
||||
#elif defined (_WIN32)
|
||||
#pragma comment(lib, "../../../build/bin/icu/win_32/icuuc.lib")
|
||||
#pragma comment(lib, "../../build/bin/icu/win_32/icuuc.lib")
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
if (argc < 2) return 1;
|
||||
@ -50,12 +55,12 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
HRESULT hr = S_OK;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
std::wstring srcFileName = argv[1];
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : sSrcDoc + L"-my.docx"; //xlsx pptx
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : srcFileName + L"-my.docx"; //xlsx pptx
|
||||
|
||||
std::wstring outputDir = FileSystem::Directory::GetFolderPath(dstPath);
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(dstPath);
|
||||
|
||||
std::wstring srcTempPath = FileSystem::Directory::CreateDirectoryWithUniqueName(outputDir);
|
||||
std::wstring dstTempPath = FileSystem::Directory::CreateDirectoryWithUniqueName(outputDir);
|
||||
std::wstring srcTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);
|
||||
std::wstring dstTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);
|
||||
|
||||
// распаковываем исходник во временную директорию
|
||||
COfficeUtils oCOfficeUtils(NULL);
|
||||
@ -64,14 +69,14 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
|
||||
hr = ConvertOO2OOX(srcTempPath, dstTempPath, L"C:\\Windows\\Fonts", false, NULL);
|
||||
|
||||
FileSystem::Directory::DeleteDirectory(srcTempPath);
|
||||
NSDirectory::DeleteDirectory(srcTempPath);
|
||||
|
||||
if (hr != S_OK) return hr;
|
||||
|
||||
if (S_OK != oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), dstPath.c_str(), -1))
|
||||
return hr;
|
||||
|
||||
FileSystem::Directory::DeleteDirectory(dstTempPath);
|
||||
NSDirectory::DeleteDirectory(dstTempPath);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
return 0;
|
||||
|
||||
@ -43,11 +43,11 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE;UNICODE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="4"
|
||||
@ -63,7 +63,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdi32.lib"
|
||||
AdditionalDependencies="gdi32.lib Rpcrt4.lib"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
@ -369,6 +369,30 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\DesktopEditor\xml\src\xmldom.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\DesktopEditor\xml\src\xmllight.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
|
||||
@ -531,8 +531,8 @@ mso-position-vertical-relative:text;";
|
||||
strStyle += L"height:" + boost::lexical_cast<std::wstring>(val.cy / 12700.) + L"pt;";
|
||||
strStyle += L"z-index:" + boost::lexical_cast<std::wstring>(0xF000800 - val.id);
|
||||
|
||||
CP_XML_ATTR(L"id", L"Rect" + boost::lexical_cast<std::wstring>(val.id));
|
||||
CP_XML_ATTR(L"o:spid", L"_x0000_s" + boost::lexical_cast<std::wstring>(1024 + val.id));
|
||||
CP_XML_ATTR(L"id", L"Rect" + std::to_wstring(val.id));
|
||||
CP_XML_ATTR(L"o:spid", L"_x0000_s" + std::to_wstring(1024 + val.id));
|
||||
CP_XML_ATTR(L"style", strStyle);
|
||||
CP_XML_ATTR(L"fillcolor", L"#4f81bd [3204]");
|
||||
CP_XML_ATTR(L"strokecolor", L"#243f60 [1604]");
|
||||
|
||||
@ -58,7 +58,7 @@ bool is_internal(const std::wstring & uri, const std::wstring & packetRoot)
|
||||
|
||||
std::wstring resultPath = packetRoot + FILE_SEPARATOR_STR + mediaPath;
|
||||
|
||||
return NSDirectory::Exists(resultPath) || NSDirectory::Exists(mediaPath);
|
||||
return NSFile::CFileBinary::Exists(resultPath) || NSDirectory::Exists(mediaPath);
|
||||
}
|
||||
|
||||
mediaitems::item::item( std::wstring const & _href,
|
||||
|
||||
@ -66,7 +66,7 @@ void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(double)
|
||||
{
|
||||
CP_XML_NODE(L"a:srgbClr")
|
||||
{
|
||||
CP_XML_ATTR(L"val",color);
|
||||
CP_XML_ATTR(L"val", color);
|
||||
if (opacity)
|
||||
{
|
||||
CP_XML_NODE(L"a:alpha")
|
||||
@ -101,11 +101,56 @@ void oox_serialize_solid_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
CP_XML_NODE(L"a:solidFill")
|
||||
{
|
||||
oox_serialize_srgb(CP_XML_STREAM(),val.solid->color,val.opacity);
|
||||
oox_serialize_srgb(CP_XML_STREAM(), val.solid->color, val.opacity);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void vml_serialize_solid_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.solid)return;
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
oox_serialize_srgb(CP_XML_STREAM(), val.solid->color, val.opacity);
|
||||
CP_XML_ATTR(L"v:fill", val.solid->color);
|
||||
if (val.opacity)
|
||||
{
|
||||
CP_XML_ATTR(L"v:opacity", *val.opacity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void vml_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.bitmap) return;
|
||||
if (!val.bitmap->isInternal) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
CP_XML_ATTR(L"r:id", val.bitmap->rId );
|
||||
|
||||
if (val.opacity)
|
||||
{
|
||||
CP_XML_ATTR(L"opacity",(int)(*val.opacity));
|
||||
}
|
||||
|
||||
if (val.bitmap->bTile)
|
||||
{
|
||||
CP_XML_ATTR(L"type", L"pattern");
|
||||
}
|
||||
else
|
||||
{
|
||||
CP_XML_ATTR(L"type", L"frame");
|
||||
}
|
||||
CP_XML_ATTR(L"recolor", L"t");
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.bitmap) return;
|
||||
@ -164,20 +209,69 @@ void oox_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
CP_XML_NODE(L"a:fillRect");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
void vml_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.gradient) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
if (!val.gradient->colors.empty())
|
||||
{
|
||||
CP_XML_ATTR(L"color2", val.gradient->colors[val.gradient->colors.size() - 1].color_ref);
|
||||
|
||||
std::wstring colors_value;
|
||||
for (size_t i = 0; i < val.gradient->colors.size(); i++)
|
||||
{
|
||||
colors_value += std::to_wstring(val.gradient->colors[i].pos) + L"% #" +
|
||||
val.gradient->colors[i].color_ref + L",";
|
||||
}
|
||||
|
||||
if (!colors_value.empty())
|
||||
{
|
||||
CP_XML_ATTR(L"colors", colors_value.substr(0, colors_value.length() - 1));
|
||||
}
|
||||
}
|
||||
double angle =/*360 - */val.gradient->angle/* * 180./3.14159265358979323846*/;
|
||||
|
||||
CP_XML_ATTR(L"focus", L"100%");
|
||||
switch(val.gradient->style)
|
||||
{
|
||||
case 0:
|
||||
CP_XML_ATTR(L"type", L"gradient");
|
||||
CP_XML_ATTR(L"method", L"linear");
|
||||
CP_XML_ATTR(L"angle", angle);
|
||||
break;
|
||||
case 1:
|
||||
//CP_XML_ATTR(L"type", L"gradientRadial");
|
||||
//break;
|
||||
case 2:
|
||||
//CP_XML_ATTR(L"type", L"gradientCenter");
|
||||
//break;
|
||||
case 3:
|
||||
//CP_XML_ATTR(L"type", L"gradientUnscaled");
|
||||
//break;
|
||||
CP_XML_ATTR(L"type", L"gradientRadial");
|
||||
}
|
||||
if (val.gradient->style > 0)
|
||||
{
|
||||
double focus_x = ((val.gradient->rect[2] - val.gradient->rect[0]) /2. + val.gradient->rect[0]) / 100.;
|
||||
double focus_y = ((val.gradient->rect[3] - val.gradient->rect[1]) /2. + val.gradient->rect[1]) / 100.;
|
||||
|
||||
CP_XML_ATTR(L"focusposition", XmlUtils::DoubleToString(focus_x, L"%.2f") + L"," + XmlUtils::DoubleToString(focus_y, L"%.2f"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.gradient)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!val.gradient) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
@ -233,6 +327,7 @@ void oox_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
void oox_serialize_hatch_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.hatch)return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pattFill")
|
||||
@ -253,7 +348,38 @@ void oox_serialize_hatch_fill(std::wostream & strm, const _oox_fill & val)
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_fill(std::wostream & strm, const _oox_fill & val)
|
||||
|
||||
void vml_serialize_background (std::wostream & strm, const _oox_fill & val, const std::wstring & color, int id)
|
||||
{
|
||||
if (val.type == 0) return;
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:background")
|
||||
{
|
||||
CP_XML_ATTR(L"id", L"_x0000_s" + std::to_wstring(1024 + id));
|
||||
CP_XML_ATTR(L"o:bwmode", L"white");
|
||||
CP_XML_ATTR(L"fillcolor", L"#" + color);
|
||||
CP_XML_ATTR(L"o:targetscreensize", L"1024,768");
|
||||
switch (val.type)
|
||||
{
|
||||
case 1:
|
||||
vml_serialize_solid_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 2:
|
||||
vml_serialize_bitmap_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 3:
|
||||
vml_serialize_gradient_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 4:
|
||||
//vml_serialize_hatch_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void oox_serialize_fill (std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
switch (val.type)
|
||||
{
|
||||
|
||||
@ -143,9 +143,10 @@ namespace oox {
|
||||
}
|
||||
};
|
||||
|
||||
void oox_serialize_fill(std::wostream & strm, const _oox_fill & val);
|
||||
void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(double) opacity);
|
||||
void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(odf_types::percent) opacity);
|
||||
void vml_serialize_background (std::wostream & strm, const _oox_fill & val, const std::wstring & color, int id);
|
||||
void oox_serialize_fill (std::wostream & strm, const _oox_fill & val);
|
||||
void oox_serialize_srgb (std::wostream & strm,std::wstring color,_CP_OPT(double) opacity);
|
||||
void oox_serialize_srgb (std::wostream & strm,std::wstring color,_CP_OPT(odf_types::percent) opacity);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -433,8 +433,6 @@ void pptx_slide_context::end_shape()
|
||||
|
||||
void pptx_slide_context::end_table()
|
||||
{
|
||||
impl_->objects_.push_back(impl_->object_description_);
|
||||
default_set();
|
||||
}
|
||||
|
||||
bool pptx_slide_context::empty() const
|
||||
|
||||
@ -376,7 +376,7 @@ void oox_serialize_tcPr(std::wostream & strm, std::vector<const odf_reader::styl
|
||||
|
||||
if (fill.bitmap)
|
||||
{
|
||||
bool isMediaInternal = false;
|
||||
bool isMediaInternal = true;
|
||||
std::wstring ref;
|
||||
fill.bitmap->rId = Context.get_slide_context().get_mediaitems().add_or_find(fill.bitmap->xlink_href_, oox::typeImage, isMediaInternal, ref);
|
||||
Context.get_slide_context().add_rels(isMediaInternal, fill.bitmap->rId, ref, oox::typeImage);
|
||||
|
||||
@ -109,11 +109,11 @@ void common_draw_fill_attlist::add_attributes( const xml::attributes_wc_ptr & At
|
||||
}
|
||||
void common_draw_fill_attlist::serialize(CP_ATTR_NODE)
|
||||
{
|
||||
CP_XML_ATTR_OPT(L"draw:fill-color", draw_fill_color_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill", draw_fill_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill-color", draw_fill_color_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill", draw_fill_);
|
||||
|
||||
CP_XML_ATTR_OPT(L"draw:opacity", draw_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:image-opacity", draw_image_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:opacity", draw_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:image-opacity", draw_image_opacity_);
|
||||
|
||||
CP_XML_ATTR_OPT(L"draw:fill-image-name", draw_fill_image_name_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill-gradient-name", draw_fill_gradient_name_);
|
||||
|
||||
@ -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_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -216,10 +216,10 @@ int Compute_BorderWidth(const graphic_format_properties & graphicProperties, Bor
|
||||
|
||||
switch(borderSide)
|
||||
{
|
||||
case sideTop: borderValue = graphicProperties.common_border_attlist_.fo_border_top_; break;
|
||||
case sideBottom: borderValue = graphicProperties.common_border_attlist_.fo_border_bottom_; break;
|
||||
case sideLeft: borderValue = graphicProperties.common_border_attlist_.fo_border_left_; break;
|
||||
case sideRight: borderValue = graphicProperties.common_border_attlist_.fo_border_right_; break;
|
||||
case sideTop: borderValue = graphicProperties.common_border_attlist_.fo_border_top_; break;
|
||||
case sideBottom: borderValue = graphicProperties.common_border_attlist_.fo_border_bottom_; break;
|
||||
case sideLeft: borderValue = graphicProperties.common_border_attlist_.fo_border_left_; break;
|
||||
case sideRight: borderValue = graphicProperties.common_border_attlist_.fo_border_right_; break;
|
||||
}
|
||||
|
||||
if (!borderValue)
|
||||
@ -281,14 +281,14 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
fill->style = 0;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
}break;
|
||||
@ -297,20 +297,20 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
fill->style = 0;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 50;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
}break;
|
||||
@ -319,41 +319,35 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
case gradient_style::square:
|
||||
case gradient_style::rectangular:
|
||||
{
|
||||
if (style == gradient_style::radial || style == gradient_style::ellipsoid) fill->style = 2;
|
||||
if (style == gradient_style::radial ||
|
||||
style == gradient_style::ellipsoid) fill->style = 2;
|
||||
if (style == gradient_style::square ) fill->style = 1;
|
||||
if (style == gradient_style::rectangular) fill->style = 3;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
if (image_style->draw_cx_)//хохма - у мс в конвертилке из open-office перепутаны l & r !!!
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
fill->rect[0] = fill->rect[1] = 0;
|
||||
fill->rect[2] = fill->rect[3] = 100;
|
||||
|
||||
if (image_style->draw_cx_)
|
||||
{
|
||||
fill->rect[0]=image_style->draw_cx_->get_value();
|
||||
fill->rect[2]=100-image_style->draw_cx_->get_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill->rect[0]=0;
|
||||
fill->rect[2]=100;
|
||||
fill->rect[0] = 100 - image_style->draw_cx_->get_value();
|
||||
fill->rect[2] = image_style->draw_cx_->get_value();
|
||||
}
|
||||
if (image_style->draw_cy_)
|
||||
{
|
||||
fill->rect[1]=image_style->draw_cy_->get_value();
|
||||
fill->rect[3]=100-image_style->draw_cy_->get_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill->rect[1]=0;
|
||||
fill->rect[3]=100;
|
||||
fill->rect[1] = 100 - image_style->draw_cy_->get_value();
|
||||
fill->rect[3] = image_style->draw_cy_->get_value();
|
||||
}
|
||||
}break;
|
||||
}
|
||||
@ -427,8 +421,14 @@ void Compute_GraphicFill(const common_draw_fill_attlist & props, const office_el
|
||||
{
|
||||
switch(image->style_repeat_->get_type())
|
||||
{
|
||||
case style_repeat::Repeat : fill.bitmap->bTile = true; break;
|
||||
case style_repeat::Stretch : fill.bitmap->bStretch = true; break;
|
||||
case style_repeat::Repeat :
|
||||
fill.bitmap->bTile = true;
|
||||
fill.bitmap->bStretch = false;
|
||||
break;
|
||||
case style_repeat::Stretch :
|
||||
fill.bitmap->bStretch = true;
|
||||
fill.bitmap->bTile = false; //?? для background точно выключать
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (image->draw_opacity_)
|
||||
@ -445,8 +445,14 @@ void Compute_GraphicFill(const common_draw_fill_attlist & props, const office_el
|
||||
{
|
||||
switch(props.style_repeat_->get_type())
|
||||
{
|
||||
case style_repeat::Repeat : fill.bitmap->bTile = true; break;
|
||||
case style_repeat::Stretch : fill.bitmap->bStretch = true; break;
|
||||
case style_repeat::Repeat :
|
||||
fill.bitmap->bTile = true;
|
||||
fill.bitmap->bStretch = false;
|
||||
break;
|
||||
case style_repeat::Stretch :
|
||||
fill.bitmap->bStretch = true;
|
||||
fill.bitmap->bTile = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -893,17 +893,17 @@ void common_draw_docx_convert(oox::docx_conversion_context & Context, const unio
|
||||
|
||||
Compute_GraphicFill(graphicProperties.common_draw_fill_attlist_, graphicProperties.style_background_image_, Context.root()->odf_context().drawStyles() ,drawing->fill, bTxbx);
|
||||
|
||||
if ((drawing->fill.bitmap) && (drawing->fill.bitmap->rId.length() < 1))
|
||||
if ((drawing->fill.bitmap) && (drawing->fill.bitmap->rId.empty()))
|
||||
{
|
||||
std::wstring href = drawing->fill.bitmap->xlink_href_;
|
||||
drawing->fill.bitmap->rId = Context.add_mediaitem(href, oox::typeImage, drawing->fill.bitmap->isInternal, href);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_left", Compute_BorderWidth(graphicProperties, sideLeft)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_left", Compute_BorderWidth(graphicProperties, sideLeft)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_top", Compute_BorderWidth(graphicProperties, sideTop)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_right", Compute_BorderWidth(graphicProperties, sideRight)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(graphicProperties, sideBottom)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_right", Compute_BorderWidth(graphicProperties, sideRight)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(graphicProperties, sideBottom)));
|
||||
|
||||
if (graphicProperties.common_border_attlist_.fo_border_)
|
||||
{
|
||||
|
||||
@ -71,14 +71,9 @@ namespace odf_reader {
|
||||
|
||||
void draw_g::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
{
|
||||
int i=0;
|
||||
int size = content_.size();
|
||||
while(true)
|
||||
{
|
||||
if (i>=size)break;
|
||||
office_element_ptr const & elm = content_[i];
|
||||
elm->pptx_convert(Context);
|
||||
i++;
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
}
|
||||
void draw_frame::pptx_convert_placeHolder(oox::pptx_conversion_context & Context)
|
||||
|
||||
@ -178,10 +178,10 @@ void draw_frame::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
////////////////////////////////////////////////////////////////////
|
||||
properties.apply_to(Context.get_drawing_context().get_properties());
|
||||
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_left", Compute_BorderWidth(properties, sideLeft)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_top", Compute_BorderWidth(properties, sideTop)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_right",Compute_BorderWidth(properties, sideRight)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(properties, sideBottom)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_left", Compute_BorderWidth(properties, sideLeft)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_top", Compute_BorderWidth(properties, sideTop)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_right", Compute_BorderWidth(properties, sideRight)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(properties, sideBottom)));
|
||||
|
||||
if (properties.fo_clip_)
|
||||
{
|
||||
|
||||
@ -94,10 +94,10 @@ void math_mtr::oox_convert(oox::math_context & Context)
|
||||
strm << L"<m:mr>";
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
{
|
||||
strm << L"<m:e>";
|
||||
//strm << L"<m:e>"; // EqArray записался в числитель вместо знаменателя.docx - дублирование
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
strm << L"</m:e>";
|
||||
//strm << L"</m:e>";
|
||||
}
|
||||
strm << L"</m:mr>";
|
||||
}
|
||||
|
||||
@ -41,7 +41,9 @@
|
||||
#include <cpdoccore/xml/attributes.h>
|
||||
|
||||
#include <cpdoccore/odf/odf_document.h>
|
||||
|
||||
#include "odfcontext.h"
|
||||
#include "draw_common.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
@ -111,14 +113,29 @@ void office_body::docx_convert(oox::docx_conversion_context & Context)
|
||||
Context.add_page_properties(L""); //
|
||||
Context.add_page_properties(L"");
|
||||
}
|
||||
//backcolor (for all pages)
|
||||
//background (for all pages)
|
||||
if (page_layout_instance * firtsPageLayout = Context.root()->odf_context().pageLayoutContainer().page_layout_by_name(Context.get_page_properties()))
|
||||
{
|
||||
if (style_page_layout_properties * prop = firtsPageLayout->properties())
|
||||
{
|
||||
if (prop->docx_back_serialize(Context.output_stream(), Context))
|
||||
oox::_oox_fill fill;
|
||||
|
||||
Compute_GraphicFill(prop->style_page_layout_properties_attlist_.common_draw_fill_attlist_,
|
||||
prop->style_page_layout_properties_elements_.style_background_image_,
|
||||
Context.root()->odf_context().drawStyles(), fill);
|
||||
|
||||
if (prop->style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_ || fill.type != 0)
|
||||
{
|
||||
Context.set_settings_property(odf_reader::_property(L"displayBackgroundShape",true));
|
||||
if ((fill.bitmap) && (fill.bitmap->rId.empty()))
|
||||
{
|
||||
std::wstring href = fill.bitmap->xlink_href_;
|
||||
fill.bitmap->rId = Context.add_mediaitem(href, oox::typeImage, fill.bitmap->isInternal, href);
|
||||
}
|
||||
int id = Context.get_drawing_context().get_current_shape_id();
|
||||
if (prop->docx_background_serialize(Context.output_stream(), Context, fill, id))
|
||||
{
|
||||
Context.set_settings_property(odf_reader::_property(L"displayBackgroundShape", true));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,11 +73,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_height_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_height_;
|
||||
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_height_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_height_;
|
||||
|
||||
///////////////////////////////
|
||||
_CP_OPT(odf_types::color) svg_stroke_color_;
|
||||
|
||||
@ -98,17 +98,17 @@ private:
|
||||
virtual void add_text(const std::wstring & Text);
|
||||
|
||||
private:
|
||||
odf_types::length style_position_;
|
||||
_CP_OPT(odf_types::style_type) style_type_;
|
||||
_CP_OPT(wchar_t) style_char_;
|
||||
odf_types::length style_position_;
|
||||
_CP_OPT(odf_types::style_type) style_type_;
|
||||
_CP_OPT(wchar_t) style_char_;
|
||||
|
||||
_CP_OPT(odf_types::line_type) style_leader_type_;
|
||||
_CP_OPT(odf_types::line_style) style_leader_style_;
|
||||
_CP_OPT(odf_types::line_width) style_leader_width_;
|
||||
_CP_OPT(odf_types::style_leader_color) style_leader_color_;
|
||||
_CP_OPT(odf_types::line_type) style_leader_type_;
|
||||
_CP_OPT(odf_types::line_style) style_leader_style_;
|
||||
_CP_OPT(odf_types::line_width) style_leader_width_;
|
||||
_CP_OPT(odf_types::style_leader_color) style_leader_color_;
|
||||
|
||||
_CP_OPT( std::wstring ) style_leader_text_;
|
||||
_CP_OPT( odf_types::style_ref ) style_leader_text_style_;
|
||||
_CP_OPT( std::wstring ) style_leader_text_;
|
||||
_CP_OPT( odf_types::style_ref ) style_leader_text_style_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -54,7 +54,6 @@
|
||||
|
||||
#include "serialize_elements.h"
|
||||
#include "odfcontext.h"
|
||||
|
||||
#include "draw_common.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
@ -904,12 +903,12 @@ void style_page_layout::add_child_element( xml::sax * Reader, const std::wstring
|
||||
// style-page-layout-properties-attlist
|
||||
void style_page_layout_properties_attlist::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
CP_APPLY_ATTR(L"fo:page-width", fo_page_width_);
|
||||
CP_APPLY_ATTR(L"fo:page-height", fo_page_height_);
|
||||
CP_APPLY_ATTR(L"fo:page-width", fo_page_width_);
|
||||
CP_APPLY_ATTR(L"fo:page-height", fo_page_height_);
|
||||
common_num_format_attlist_.add_attributes(Attributes);
|
||||
common_num_format_prefix_suffix_attlist_.add_attributes(Attributes);
|
||||
CP_APPLY_ATTR(L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_APPLY_ATTR(L"style:print-orientation", style_print_orientation_);
|
||||
CP_APPLY_ATTR(L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_APPLY_ATTR(L"style:print-orientation", style_print_orientation_);
|
||||
|
||||
common_horizontal_margin_attlist_.add_attributes(Attributes);
|
||||
common_vertical_margin_attlist_.add_attributes(Attributes);
|
||||
@ -919,7 +918,8 @@ void style_page_layout_properties_attlist::add_attributes( const xml::attributes
|
||||
common_padding_attlist_.add_attributes(Attributes);
|
||||
common_shadow_attlist_.add_attributes(Attributes);
|
||||
common_background_color_attlist_.add_attributes(Attributes);
|
||||
|
||||
common_draw_fill_attlist_.add_attributes(Attributes);
|
||||
|
||||
CP_APPLY_ATTR(L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_APPLY_ATTR(L"style:print", style_print_);
|
||||
CP_APPLY_ATTR(L"style:print-page-order", style_print_page_order_);
|
||||
@ -1260,18 +1260,26 @@ void style_page_layout_properties::add_child_element( xml::sax * Reader, const s
|
||||
{
|
||||
style_page_layout_properties_elements_.add_child_element(Reader, Ns, Name, getContext());
|
||||
}
|
||||
bool style_page_layout_properties::docx_back_serialize(std::wostream & strm, oox::docx_conversion_context & Context)
|
||||
{
|
||||
if (!style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_)return false;
|
||||
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_type() == background_color::Transparent) return true;
|
||||
bool style_page_layout_properties::docx_background_serialize(std::wostream & strm, oox::docx_conversion_context & Context, oox::_oox_fill & fill, int id)
|
||||
{
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_ &&
|
||||
style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_type() == background_color::Transparent)
|
||||
return true; //??
|
||||
//прозрачный фон
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"w:background")
|
||||
{
|
||||
std::wstring color = style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_color().get_hex_value();
|
||||
CP_XML_ATTR(L"w:color",color);
|
||||
std::wstring color = L"ffffff";
|
||||
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_)
|
||||
color = style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_color().get_hex_value();
|
||||
|
||||
CP_XML_ATTR(L"w:color", color);
|
||||
|
||||
oox::vml_serialize_background(CP_XML_STREAM(), fill, color, id);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@ -892,54 +892,26 @@ public:
|
||||
odf_types::common_padding_attlist common_padding_attlist_;
|
||||
odf_types::common_shadow_attlist common_shadow_attlist_;
|
||||
|
||||
// 15.2.10
|
||||
odf_types::common_background_color_attlist common_background_color_attlist_;
|
||||
// 15.2.12
|
||||
_CP_OPT(odf_types::style_ref) style_register_truth_ref_style_name_;
|
||||
// 15.2.13 TODO
|
||||
_CP_OPT(std::wstring) style_print_;
|
||||
|
||||
// 15.2.14
|
||||
_CP_OPT(odf_types::direction) style_print_page_order_;
|
||||
|
||||
// 15.2.15 TODO
|
||||
_CP_OPT(std::wstring) style_first_page_number_;
|
||||
|
||||
// 15.2.16
|
||||
_CP_OPT(odf_types::percent) style_scale_to_;
|
||||
_CP_OPT(unsigned int) style_scale_to_pages_;
|
||||
|
||||
// 15.2.17
|
||||
_CP_OPT(odf_types::table_centering) style_table_centering_;
|
||||
// 15.2.18
|
||||
_CP_OPT(odf_types::length) style_footnote_max_height_;
|
||||
|
||||
// 15.2.19
|
||||
odf_types::common_writing_mode_attlist common_writing_mode_attlist_;
|
||||
|
||||
// 15.2.21
|
||||
_CP_OPT(odf_types::layout_grid_mode) style_layout_grid_mode_;
|
||||
|
||||
// 15.2.22
|
||||
_CP_OPT(odf_types::length) style_layout_grid_base_height_;
|
||||
|
||||
// 15.2.23
|
||||
_CP_OPT(odf_types::length) style_layout_grid_ruby_height_;
|
||||
|
||||
// 15.2.24
|
||||
_CP_OPT(unsigned int) style_layout_grid_lines_;
|
||||
|
||||
// 15.2.25
|
||||
_CP_OPT(odf_types::color) style_layout_grid_color_;
|
||||
|
||||
// 15.2.26
|
||||
_CP_OPT(bool) style_layout_grid_ruby_below_;
|
||||
|
||||
// 15.2.27
|
||||
_CP_OPT(bool) style_layout_grid_print_;
|
||||
|
||||
// 15.2.28
|
||||
_CP_OPT(bool) style_layout_grid_display_;
|
||||
odf_types::common_background_color_attlist common_background_color_attlist_;
|
||||
odf_types::common_draw_fill_attlist common_draw_fill_attlist_;
|
||||
|
||||
_CP_OPT(odf_types::style_ref) style_register_truth_ref_style_name_;
|
||||
_CP_OPT(std::wstring) style_print_;
|
||||
_CP_OPT(odf_types::direction) style_print_page_order_;
|
||||
_CP_OPT(std::wstring) style_first_page_number_;
|
||||
_CP_OPT(odf_types::percent) style_scale_to_;
|
||||
_CP_OPT(unsigned int) style_scale_to_pages_;
|
||||
_CP_OPT(odf_types::table_centering) style_table_centering_;
|
||||
_CP_OPT(odf_types::length) style_footnote_max_height_;
|
||||
odf_types::common_writing_mode_attlist common_writing_mode_attlist_;
|
||||
_CP_OPT(odf_types::layout_grid_mode) style_layout_grid_mode_;
|
||||
_CP_OPT(odf_types::length) style_layout_grid_base_height_;
|
||||
_CP_OPT(odf_types::length) style_layout_grid_ruby_height_;
|
||||
_CP_OPT(unsigned int) style_layout_grid_lines_;
|
||||
_CP_OPT(odf_types::color) style_layout_grid_color_;
|
||||
_CP_OPT(bool) style_layout_grid_ruby_below_;
|
||||
_CP_OPT(bool) style_layout_grid_print_;
|
||||
_CP_OPT(bool) style_layout_grid_display_;
|
||||
|
||||
};
|
||||
|
||||
@ -992,7 +964,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
// style:page-layout-properties
|
||||
// style:page-layout-properties
|
||||
class style_page_layout_properties : public office_element_impl<style_page_layout_properties>
|
||||
{
|
||||
public:
|
||||
@ -1005,7 +977,7 @@ public:
|
||||
void docx_convert_serialize(std::wostream & strm, oox::docx_conversion_context & Context);
|
||||
void pptx_convert(oox::pptx_conversion_context & Context);
|
||||
|
||||
bool docx_back_serialize(std::wostream & strm, oox::docx_conversion_context & Context);
|
||||
bool docx_background_serialize(std::wostream & strm, oox::docx_conversion_context & Context, oox::_oox_fill & fill, int id);
|
||||
|
||||
style_page_layout_properties() { }
|
||||
|
||||
@ -1020,7 +992,7 @@ private:
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(style_page_layout_properties);
|
||||
|
||||
// text:notes-configuration
|
||||
// text:notes-configuration
|
||||
class text_notes_configuration : public office_element_impl<text_notes_configuration>
|
||||
{
|
||||
public:
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "../oox_shape_defines.h"
|
||||
// shapetypeAccentBorderCallout1,
|
||||
// shapetypeAccentBorderCallout2,
|
||||
// shapetypeAccentBorderCallout3,
|
||||
|
||||
@ -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)");
|
||||
/////////////////////////////////////////////////////////
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -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)");
|
||||
/////////////////////////////////////////////////////////
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -55,8 +55,7 @@
|
||||
#include "style_text_properties.h"
|
||||
#include "style_paragraph_properties.h"
|
||||
#include "style_graphic_properties.h"
|
||||
|
||||
|
||||
#include "style_page_layout_properties.h"
|
||||
|
||||
namespace cpdoccore
|
||||
{
|
||||
@ -175,8 +174,11 @@ struct odf_drawing_state
|
||||
svg_y_ = boost::none;
|
||||
svg_height_ = boost::none;
|
||||
svg_width_ = boost::none;
|
||||
fill_color_ = boost::none;
|
||||
|
||||
name_ = L"";
|
||||
description_ = L"";
|
||||
hidden_ = false;
|
||||
z_order_ = -1;
|
||||
|
||||
rotateAngle = boost::none;
|
||||
@ -201,11 +203,13 @@ struct odf_drawing_state
|
||||
_CP_OPT(length) svg_height_;
|
||||
_CP_OPT(length) svg_width_;
|
||||
|
||||
std::wstring name_;
|
||||
std::wstring description_;
|
||||
int z_order_;
|
||||
bool hidden_;
|
||||
|
||||
std::wstring name_;
|
||||
int z_order_;
|
||||
|
||||
_CP_OPT(double) rotateAngle;
|
||||
_CP_OPT(double) rotateAngle;
|
||||
_CP_OPT(unsigned int) fill_color_;
|
||||
|
||||
bool flipH;
|
||||
bool flipV;
|
||||
@ -235,8 +239,9 @@ public:
|
||||
|
||||
width = height = x = y = 0;
|
||||
|
||||
is_header_ = false;
|
||||
is_footer_ = false;
|
||||
is_header_ = false;
|
||||
is_footer_ = false;
|
||||
is_background_ = false;
|
||||
//некоторые свойства для объектов графики не поддерживаюися в редакторах Liber && OpenOffice.net
|
||||
//в MS Office и в нашем - проблем таких нет.
|
||||
}
|
||||
@ -251,6 +256,7 @@ public:
|
||||
|
||||
bool is_footer_;
|
||||
bool is_header_;
|
||||
bool is_background_;
|
||||
|
||||
void create_draw_base(int type);
|
||||
office_element_ptr create_draw_element(int type);
|
||||
@ -306,10 +312,18 @@ void odf_drawing_context::set_header_state(bool Val)
|
||||
{
|
||||
impl_->is_header_ = Val;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_background_state(bool Val)
|
||||
{
|
||||
impl_->is_background_ = Val;
|
||||
|
||||
impl_->current_graphic_properties = new style_graphic_properties();
|
||||
}
|
||||
|
||||
void odf_drawing_context::check_anchor()
|
||||
{
|
||||
return;
|
||||
if ((impl_->is_footer_ || impl_->is_header_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
|
||||
{
|
||||
set_anchor(anchor_type::Char);
|
||||
//подозрительно на подложку страницы
|
||||
@ -342,10 +356,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;
|
||||
@ -439,7 +455,18 @@ void odf_drawing_context::start_drawing()
|
||||
}
|
||||
void odf_drawing_context::end_drawing()
|
||||
{
|
||||
if (impl_->current_drawing_state_.elements_.empty()) return;
|
||||
if (impl_->current_drawing_state_.elements_.empty())
|
||||
{
|
||||
if (impl_->is_background_ && impl_->current_graphic_properties)
|
||||
{
|
||||
style_page_layout_properties * current_layout_properties = impl_->odf_context_->page_layout_context()->last_layout()->get_properties();
|
||||
current_layout_properties->style_page_layout_properties_attlist_.common_draw_fill_attlist_.apply_from(impl_->current_graphic_properties->content().common_draw_fill_attlist_);
|
||||
delete impl_->current_graphic_properties;
|
||||
impl_->current_graphic_properties = NULL;
|
||||
impl_->current_drawing_state_.clear();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
draw_base* draw = dynamic_cast<draw_base*>(impl_->current_drawing_state_.elements_[0].elm.get());
|
||||
|
||||
@ -565,12 +592,13 @@ void odf_drawing_context::end_drawing()
|
||||
{
|
||||
impl_->tops_elements_.push_back(impl_->current_drawing_state_.elements_[0].elm);
|
||||
}
|
||||
|
||||
///////////////
|
||||
impl_->current_drawing_state_.clear();
|
||||
|
||||
impl_->current_graphic_properties = NULL;
|
||||
impl_->current_paragraph_properties = NULL;
|
||||
impl_->current_text_properties = NULL;
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@ -624,7 +652,7 @@ void odf_drawing_context::Impl::create_draw_base(int type)
|
||||
draw_base* draw = dynamic_cast<draw_base*>(draw_elm.get());
|
||||
if (draw == NULL)return;
|
||||
//////////
|
||||
styles_context_->create_style(L"",style_family::Graphic, true, false, -1);
|
||||
styles_context_->create_style(L"", style_family::Graphic, true, false, -1);
|
||||
|
||||
office_element_ptr & style_shape_elm = styles_context_->last_state()->get_office_element();
|
||||
std::wstring style_name;
|
||||
@ -956,9 +984,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 +996,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 +1037,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;
|
||||
@ -1055,7 +1091,7 @@ void odf_drawing_context::set_no_fill()
|
||||
switch(impl_->current_drawing_part_)
|
||||
{
|
||||
case Area:
|
||||
if ((impl_->is_footer_ || impl_->is_header_) &&
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
@ -1075,6 +1111,17 @@ void odf_drawing_context::set_type_fill(int type)
|
||||
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = (draw_fill::type)type;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_fill_color(unsigned int Color)
|
||||
{
|
||||
impl_->current_drawing_state_.fill_color_ = Color;
|
||||
}
|
||||
|
||||
_CP_OPT(unsigned int) odf_drawing_context::get_fill_color()
|
||||
{
|
||||
return impl_->current_drawing_state_.fill_color_;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_solid_fill(std::wstring hexColor)
|
||||
{
|
||||
if (!impl_->current_graphic_properties)return;
|
||||
@ -1084,28 +1131,29 @@ void odf_drawing_context::set_solid_fill(std::wstring hexColor)
|
||||
|
||||
switch(impl_->current_drawing_part_)
|
||||
{
|
||||
case Area:
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_ = hexColor;
|
||||
impl_->current_graphic_properties->content().common_background_color_attlist_.fo_background_color_ = color(hexColor);
|
||||
//последнее нужно - что если будут вводить текст - под текстом будет цвет фона (или он поменяется в полях текста)
|
||||
|
||||
if ((impl_->is_footer_ || impl_->is_header_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
}
|
||||
else
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill::solid;
|
||||
break;
|
||||
case Line:
|
||||
impl_->current_graphic_properties->content().svg_stroke_color_ = hexColor;
|
||||
if (!impl_->current_graphic_properties->content().draw_stroke_)
|
||||
impl_->current_graphic_properties->content().draw_stroke_=line_style(line_style::Solid);//default
|
||||
if (!impl_->current_graphic_properties->content().svg_stroke_width_)
|
||||
impl_->current_graphic_properties->content().svg_stroke_width_ = length(length(1,length::pt).get_value_unit(length::cm),length::cm);//default
|
||||
break;
|
||||
case Area:
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_ = hexColor;
|
||||
impl_->current_graphic_properties->content().common_background_color_attlist_.fo_background_color_ = color(hexColor);
|
||||
//последнее нужно - что если будут вводить текст - под текстом будет цвет фона (или он поменяется в полях текста)
|
||||
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
}
|
||||
else
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill::solid;
|
||||
break;
|
||||
case Line:
|
||||
impl_->current_graphic_properties->content().svg_stroke_color_ = hexColor;
|
||||
if (!impl_->current_graphic_properties->content().draw_stroke_)
|
||||
impl_->current_graphic_properties->content().draw_stroke_=line_style(line_style::Solid);//default
|
||||
if (!impl_->current_graphic_properties->content().svg_stroke_width_)
|
||||
impl_->current_graphic_properties->content().svg_stroke_width_ = length(length(1,length::pt).get_value_unit(length::cm),length::cm);//default
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_z_order(int id)
|
||||
{
|
||||
if (id < 0)
|
||||
@ -1125,7 +1173,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_)
|
||||
{
|
||||
@ -1230,7 +1278,7 @@ void odf_drawing_context::set_object_foreground(bool Val)
|
||||
{
|
||||
if (Val)
|
||||
{
|
||||
if (impl_->is_footer_|| impl_->is_header_)
|
||||
if (impl_->is_footer_|| impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
impl_->anchor_settings_.run_through_ = run_through(run_through::Background);
|
||||
}
|
||||
@ -1260,7 +1308,7 @@ void odf_drawing_context::set_margin_bottom (double valPt)
|
||||
}
|
||||
void odf_drawing_context::set_anchor(int type)
|
||||
{
|
||||
if ((impl_->is_footer_|| impl_->is_header_) && type == anchor_type::Page)
|
||||
if ((impl_->is_footer_|| impl_->is_header_ || impl_->is_background_) && type == anchor_type::Page)
|
||||
{
|
||||
type = anchor_type::Paragraph;
|
||||
}
|
||||
@ -1356,7 +1404,7 @@ void odf_drawing_context::set_horizontal_pos(double offset_pt)
|
||||
}
|
||||
void odf_drawing_context::set_default_wrap_style()
|
||||
{
|
||||
if (impl_->is_header_ || impl_->is_footer_ )
|
||||
if (impl_->is_header_ || impl_->is_footer_ || impl_->is_background_)
|
||||
{
|
||||
impl_->anchor_settings_.style_wrap_ = style_wrap::RunThrough;
|
||||
}
|
||||
@ -1500,7 +1548,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 +1576,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 +1598,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 +1610,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 +1899,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);
|
||||
}
|
||||
|
||||
|
||||
@ -1855,7 +1914,7 @@ void odf_drawing_context::set_textarea_padding(double left,double top, double ri
|
||||
//вложенные элементы
|
||||
void odf_drawing_context::start_image(std::wstring odf_path)
|
||||
{
|
||||
if (impl_->is_footer_ || impl_->is_header_)
|
||||
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
start_shape(142/*SimpleTypes::shapetypeRect*/);
|
||||
start_bitmap_style();
|
||||
@ -1987,7 +2046,7 @@ void odf_drawing_context::set_text_box_parent_style(std::wstring style_name)
|
||||
|
||||
void odf_drawing_context::end_image()
|
||||
{
|
||||
if (impl_->is_footer_ || impl_->is_header_)
|
||||
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
end_bitmap_style();
|
||||
end_shape();
|
||||
@ -2155,9 +2214,11 @@ void odf_drawing_context::start_gradient_style()
|
||||
gradient->draw_start_color_ = impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_;
|
||||
if (gradient->draw_start_color_) gradient->draw_start_intensity_ = 100.;
|
||||
|
||||
gradient->draw_border_ = 0;
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_gradient_name_ = gradient->draw_name_;
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill(draw_fill::gradient);
|
||||
|
||||
|
||||
}
|
||||
void odf_drawing_context::set_gradient_type(gradient_style::type style)
|
||||
{
|
||||
@ -2174,7 +2235,7 @@ void odf_drawing_context::set_gradient_start(std::wstring hexColor, _CP_OPT(doub
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
|
||||
gradient->draw_start_color_ = hexColor;
|
||||
gradient->draw_start_color_ = hexColor;
|
||||
gradient->draw_start_intensity_ = 100.;
|
||||
}
|
||||
void odf_drawing_context::set_gradient_end (std::wstring hexColor, _CP_OPT(double) & intensiv)
|
||||
@ -2185,15 +2246,15 @@ void odf_drawing_context::set_gradient_end (std::wstring hexColor, _CP_OPT(doub
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
|
||||
gradient->draw_end_color_ = hexColor;
|
||||
gradient->draw_end_intensity_ = 100.;
|
||||
gradient->draw_end_color_ = hexColor;
|
||||
gradient->draw_end_intensity_ = 100.;
|
||||
}
|
||||
void odf_drawing_context::set_gradient_angle(double angle)
|
||||
{
|
||||
draw_gradient * gradient = dynamic_cast<draw_gradient *>(impl_->styles_context_->last_state(style_family::Gradient)->get_office_element().get());
|
||||
if (!gradient) return;
|
||||
|
||||
gradient->draw_angle_ = (270-angle)*10;//(int)((360 - angle)/180. * 3.14159265358979323846);
|
||||
gradient->draw_angle_ = (270- angle) * 10;//(int)((360 - angle)/180. * 3.14159265358979323846);
|
||||
}
|
||||
void odf_drawing_context::set_gradient_rect(double l, double t, double r,double b)
|
||||
{
|
||||
@ -2697,7 +2758,7 @@ void odf_drawing_context::set_image_client_rect_inch(double l, double t, double
|
||||
void odf_drawing_context::set_bitmap_link(std::wstring file_path)
|
||||
{
|
||||
std::wstring odf_ref_name ;
|
||||
impl_->odf_context_->mediaitems()->add_or_find(file_path,_mediaitems::typeImage,odf_ref_name);
|
||||
impl_->odf_context_->mediaitems()->add_or_find(file_path, _mediaitems::typeImage, odf_ref_name);
|
||||
|
||||
if (impl_->current_drawing_state_.oox_shape_preset == 3000)
|
||||
{
|
||||
|
||||
@ -64,8 +64,10 @@ public:
|
||||
void clear ();
|
||||
void set_styles_context (odf_style_context* styles_context);//для embedded
|
||||
|
||||
void set_header_state (bool Val);
|
||||
void set_footer_state (bool Val);
|
||||
void set_header_state (bool Val);
|
||||
void set_footer_state (bool Val);
|
||||
void set_background_state (bool Val);
|
||||
|
||||
void check_anchor ();
|
||||
|
||||
void set_margin_left (double valPt);
|
||||
@ -142,7 +144,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 +153,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);
|
||||
@ -170,6 +175,7 @@ public:
|
||||
void set_type_fill (int type);//for area - temp for objects
|
||||
void set_solid_fill (std::wstring hexColor);
|
||||
void set_opacity (double percent);
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
void start_area_properties();
|
||||
void end_area_properties();
|
||||
@ -184,6 +190,8 @@ public:
|
||||
std::wstring add_marker_style(int type);
|
||||
void end_line_properties ();
|
||||
|
||||
_CP_OPT(unsigned int) get_fill_color ();
|
||||
void set_fill_color (unsigned int color);
|
||||
//void start_shadow_properties();
|
||||
//void end_shadow_properties();
|
||||
// пока одной функией ..
|
||||
@ -191,7 +199,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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -170,6 +170,7 @@ private:
|
||||
|
||||
bool is_header_;
|
||||
bool is_footer_;
|
||||
bool is_background_;
|
||||
|
||||
std::vector<odf_drawing_context_ptr> drawing_context_;
|
||||
std::vector<odf_text_context_ptr> text_context_; //for embedded
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -122,42 +122,47 @@ void style_page_layout_properties_attlist::serialize(CP_ATTR_NODE)
|
||||
}
|
||||
}
|
||||
|
||||
CP_XML_ATTR_OPT (L"fo:page-width", fo_page_width_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-height", fo_page_height_);
|
||||
common_num_format_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_num_format_prefix_suffix_attlist_.serialize(CP_GET_XML_NODE());
|
||||
CP_XML_ATTR_OPT (L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print-orientation", style_print_orientation_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-width", fo_page_width_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-height", fo_page_height_);
|
||||
|
||||
common_horizontal_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_vertical_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_border_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_border_line_width_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_padding_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_shadow_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_background_color_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_num_format_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_num_format_prefix_suffix_attlist_.serialize (CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print", style_print_);
|
||||
CP_XML_ATTR_OPT (L"style:print-page-order", style_print_page_order_);
|
||||
CP_XML_ATTR_OPT (L"style:first-page-number", style_first_page_number_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to", style_scale_to_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to_pages", style_scale_to_pages_);
|
||||
CP_XML_ATTR_OPT (L"style:table-centering", style_table_centering_);
|
||||
CP_XML_ATTR_OPT (L"style:footnote-max-height", style_footnote_max_height_);
|
||||
common_writing_mode_attlist_.serialize(CP_GET_XML_NODE());
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-mode", style_layout_grid_mode_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-base-height", style_layout_grid_base_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-height", style_layout_grid_ruby_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-lines", style_layout_grid_lines_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-color", style_layout_grid_color_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-below", style_layout_grid_ruby_below_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-print", style_layout_grid_print_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-display", style_layout_grid_display_);
|
||||
CP_XML_ATTR_OPT (L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print-orientation", style_print_orientation_);
|
||||
|
||||
common_horizontal_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_vertical_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_border_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_border_line_width_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_padding_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_shadow_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_background_color_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_draw_fill_attlist_.serialize (CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print", style_print_);
|
||||
CP_XML_ATTR_OPT (L"style:print-page-order", style_print_page_order_);
|
||||
CP_XML_ATTR_OPT (L"style:first-page-number", style_first_page_number_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to", style_scale_to_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to_pages", style_scale_to_pages_);
|
||||
CP_XML_ATTR_OPT (L"style:table-centering", style_table_centering_);
|
||||
CP_XML_ATTR_OPT (L"style:footnote-max-height", style_footnote_max_height_);
|
||||
|
||||
common_writing_mode_attlist_.serialize(CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-mode", style_layout_grid_mode_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-base-height", style_layout_grid_base_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-height", style_layout_grid_ruby_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-lines", style_layout_grid_lines_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-color", style_layout_grid_color_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-below", style_layout_grid_ruby_below_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-print", style_layout_grid_print_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-display", style_layout_grid_display_);
|
||||
}
|
||||
const wchar_t * style_page_layout_properties::ns = L"style";
|
||||
const wchar_t * style_page_layout_properties::name = L"page-layout-properties";
|
||||
const wchar_t * style_page_layout_properties::ns = L"style";
|
||||
const wchar_t * style_page_layout_properties::name = L"page-layout-properties";
|
||||
|
||||
void style_page_layout_properties::create_child_element( const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
|
||||
@ -62,6 +62,7 @@ public:
|
||||
_CP_OPT(odf_types::length) fo_page_width_;
|
||||
_CP_OPT(odf_types::length) fo_page_height_;
|
||||
|
||||
odf_types::common_draw_fill_attlist common_draw_fill_attlist_;
|
||||
odf_types::common_num_format_attlist common_num_format_attlist_;
|
||||
odf_types::common_num_format_prefix_suffix_attlist common_num_format_prefix_suffix_attlist_;
|
||||
|
||||
|
||||
@ -159,8 +159,8 @@ public:
|
||||
|
||||
std::wstring get_style_name(){return draw_name_.get_value_or(L"");}
|
||||
|
||||
_CP_OPT(odf_types::color) draw_start_color_;
|
||||
_CP_OPT(odf_types::color) draw_end_color_;
|
||||
_CP_OPT(odf_types::color) draw_start_color_;
|
||||
_CP_OPT(odf_types::color) draw_end_color_;
|
||||
|
||||
_CP_OPT(odf_types::percent) draw_end_intensity_;
|
||||
_CP_OPT(odf_types::percent) draw_start_intensity_;
|
||||
@ -169,11 +169,11 @@ public:
|
||||
_CP_OPT(odf_types::percent) draw_cx_;
|
||||
|
||||
_CP_OPT(odf_types::percent) draw_border_;
|
||||
_CP_OPT(int) draw_angle_;
|
||||
_CP_OPT(odf_types::gradient_style) draw_style_;
|
||||
_CP_OPT(int) draw_angle_;
|
||||
_CP_OPT(odf_types::gradient_style) draw_style_;
|
||||
|
||||
_CP_OPT(std::wstring) draw_name_;
|
||||
_CP_OPT(std::wstring) draw_display_name_;
|
||||
_CP_OPT(std::wstring) draw_name_;
|
||||
_CP_OPT(std::wstring) draw_display_name_;
|
||||
|
||||
virtual void create_child_element( const std::wstring & Ns, const std::wstring & Name);
|
||||
virtual void serialize(std::wostream & strm);
|
||||
|
||||
@ -36,10 +36,17 @@
|
||||
#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"
|
||||
|
||||
using namespace cpdoccore;
|
||||
|
||||
@ -53,16 +60,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 +104,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 +130,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 +162,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 +191,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 +224,690 @@ 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_bitmap_fill)
|
||||
{
|
||||
if (oox_bitmap_fill == NULL)return;
|
||||
|
||||
odf_context()->drawing_context()->start_bitmap_style();
|
||||
{
|
||||
double Width=0, Height = 0;
|
||||
if (oox_bitmap_fill->blip.IsInit())
|
||||
{
|
||||
std::wstring sID, pathImage;
|
||||
if (oox_bitmap_fill->blip->embed.IsInit())
|
||||
{
|
||||
sID = oox_bitmap_fill->blip->embed->get();
|
||||
pathImage = find_link_by_id(sID,1);
|
||||
|
||||
if (!pathImage.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
_graphics_utils_::GetResolution(pathImage.c_str(), Width, Height);
|
||||
}
|
||||
}
|
||||
else if (oox_bitmap_fill->blip->link.IsInit())
|
||||
{
|
||||
sID = pathImage = oox_bitmap_fill->blip->link->get();
|
||||
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
//...
|
||||
}
|
||||
//for (size_t i = 0 ; i < oox_bitmap_fill->blip->m_arrEffects.size(); i++)
|
||||
//{
|
||||
// convert(oox_bitmap_fill->blip->m_arrEffects[i]);
|
||||
//}
|
||||
}
|
||||
if (oox_bitmap_fill->srcRect.IsInit() && Width >0 && Height >0)//часть изображения
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_client_rect_inch(
|
||||
(oox_bitmap_fill->srcRect->l.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->l.get()) : 0 ) /100. * Width / currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->t.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->t.get()) : 0 ) /100. * Height/ currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->r.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->r.get()) : 0 ) /100. * Width / currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->b.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->b.get()) : 0 ) /100. * Height/ currentSystemDPI);
|
||||
}
|
||||
if (oox_bitmap_fill->tile.IsInit())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(2);
|
||||
|
||||
if (oox_bitmap_fill->tile->algn.IsInit())
|
||||
odf_context()->drawing_context()->set_bitmap_tile_align(oox_bitmap_fill->tile->algn->GetBYTECode());
|
||||
|
||||
if (oox_bitmap_fill->tile->flip.IsInit()) {}
|
||||
|
||||
if (oox_bitmap_fill->tile->sx.IsInit() && Width >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_scale_x(*oox_bitmap_fill->tile->sx / 100. * Width);
|
||||
}
|
||||
if (oox_bitmap_fill->tile->sy.IsInit()&& Height >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_scale_y(*oox_bitmap_fill->tile->sy / 100. * Height);
|
||||
}
|
||||
if (oox_bitmap_fill->tile->tx.IsInit() && Width >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_translate_x(*oox_bitmap_fill->tile->tx * 100. / Width );
|
||||
}
|
||||
if (oox_bitmap_fill->tile->ty.IsInit() && Height >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_translate_y(*oox_bitmap_fill->tile->ty * 100. / Height );
|
||||
}
|
||||
}
|
||||
if (oox_bitmap_fill->stretch.IsInit())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(1);
|
||||
if (oox_bitmap_fill->stretch->fillRect.IsInit()){} //заполнение неполного объема
|
||||
}
|
||||
}
|
||||
odf_context()->drawing_context()->end_bitmap_style();
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -44,6 +44,7 @@
|
||||
#include "../OdfFormat/style_paragraph_properties.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/Logic/Vml.h"
|
||||
#include "../../../DesktopEditor/raster/BgraFrame.h"
|
||||
|
||||
#include "VmlShapeTypes2Oox.h"
|
||||
|
||||
@ -63,8 +64,7 @@ void OoxConverter::convert(OOX::Vml::CShapeType *vml_shape_type)
|
||||
if (odf_context()->drawing_context()->m_mapVmlShapeTypes.find( sId ) ==
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.end())
|
||||
{
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.insert(odf_context()->drawing_context()->m_mapVmlShapeTypes.begin(),
|
||||
std::pair<std::wstring, OOX::Vml::CShapeType*>(sId, vml_shape_type));
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.insert(std::make_pair(sId, vml_shape_type));
|
||||
|
||||
}
|
||||
}
|
||||
@ -80,9 +80,9 @@ void OoxConverter::convert(OOX::Vml::CShapeType *vml_shape_type)
|
||||
}
|
||||
|
||||
//o:spt
|
||||
//nullable<std::wstring> m_oAdj;
|
||||
//nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
|
||||
//SimpleTypes::CTrueFalse<SimpleTypes::booleanFalse> m_oMaster;
|
||||
//nullable<std::wstring> m_oAdj;
|
||||
//nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
|
||||
//SimpleTypes::CTrueFalse<SimpleTypes::booleanFalse> m_oMaster;
|
||||
//m_arrItems
|
||||
//CVmlCommonElements
|
||||
}
|
||||
@ -387,6 +387,9 @@ void OoxConverter::convert(OOX::Vml::CArc *vml_arc)
|
||||
void OoxConverter::convert(OOX::Vml::CBackground *vml_background)
|
||||
{
|
||||
if (vml_background == NULL) return;
|
||||
|
||||
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_background);
|
||||
convert(vml_common);
|
||||
}
|
||||
|
||||
void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
@ -395,6 +398,28 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
|
||||
std::wstring sImagePath;
|
||||
|
||||
_CP_OPT(unsigned int) nRgbColor1, nRgbColor2;
|
||||
_CP_OPT(std::wstring) sRgbColor1, sRgbColor2;
|
||||
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
{
|
||||
nRgbColor1 = ((unsigned int)(((BYTE)(vml_fill->m_oColor->Get_B())
|
||||
| ((unsigned int)((BYTE)(vml_fill->m_oColor->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)(vml_fill->m_oColor->Get_R()))<<16)));
|
||||
|
||||
sRgbColor1 = XmlUtils::IntToString(*nRgbColor1, L"%06X");
|
||||
}
|
||||
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
{
|
||||
nRgbColor2 = ((unsigned int)(((BYTE)(vml_fill->m_oColor2->Get_B())
|
||||
| ((unsigned int)((BYTE)(vml_fill->m_oColor2->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)(vml_fill->m_oColor2->Get_R()))<<16)));
|
||||
sRgbColor2 = XmlUtils::IntToString(*nRgbColor2, L"%06X");
|
||||
}
|
||||
|
||||
if (vml_fill->m_rId.IsInit())
|
||||
{
|
||||
//bitmap fill
|
||||
@ -402,37 +427,37 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
{
|
||||
double Width=0, Height = 0;
|
||||
std::wstring sID = vml_fill->m_rId->GetValue();
|
||||
std::wstring pathImage = find_link_by_id(sID,1);
|
||||
|
||||
sImagePath = find_link_by_id(sID, 1);
|
||||
|
||||
if (!pathImage.empty())
|
||||
if (!sImagePath.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
_graphics_utils_::GetResolution(pathImage.c_str(), Width, Height);
|
||||
odf_context()->drawing_context()->set_bitmap_link( sImagePath );
|
||||
_graphics_utils_::GetResolution( sImagePath.c_str(), Width, Height );
|
||||
}
|
||||
odf_context()->drawing_context()->set_image_style_repeat(1);
|
||||
}
|
||||
odf_context()->drawing_context()->end_bitmap_style();
|
||||
}
|
||||
else
|
||||
|
||||
switch (vml_fill->m_oType.GetValue())
|
||||
{
|
||||
switch (vml_fill->m_oType.GetValue())
|
||||
{
|
||||
case SimpleTypes::filltypeGradient :
|
||||
case SimpleTypes::filltypeGradientCenter :
|
||||
case SimpleTypes::filltypeGradientRadial :
|
||||
case SimpleTypes::filltypeGradientUnscaled:
|
||||
{
|
||||
odf_context()->drawing_context()->start_gradient_style();
|
||||
if (SimpleTypes::filltypeGradient == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::linear);
|
||||
if (SimpleTypes::filltypeGradientRadial == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::radial);
|
||||
if (SimpleTypes::filltypeGradientCenter == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::axial);
|
||||
if (SimpleTypes::filltypeGradientUnscaled == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::square);
|
||||
if (SimpleTypes::filltypeGradient == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::linear);
|
||||
if (SimpleTypes::filltypeGradientRadial == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::radial);
|
||||
if (SimpleTypes::filltypeGradientCenter == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::axial);
|
||||
if (SimpleTypes::filltypeGradientUnscaled == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::square);
|
||||
|
||||
_CP_OPT(double) no_set;
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_start(vml_fill->m_oColor->ToString(), no_set);
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_end(vml_fill->m_oColor2->ToString(), no_set);
|
||||
if (sRgbColor1)
|
||||
odf_context()->drawing_context()->set_gradient_start(*sRgbColor1, no_set);
|
||||
if (sRgbColor2)
|
||||
odf_context()->drawing_context()->set_gradient_end(*sRgbColor2, no_set);
|
||||
|
||||
if (vml_fill->m_oFocusPosition.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_center(vml_fill->m_oFocusPosition->GetX(), vml_fill->m_oFocusPosition->GetY());
|
||||
@ -441,23 +466,35 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
}break;
|
||||
case SimpleTypes::filltypePattern:
|
||||
{
|
||||
if (!sImagePath.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(2);
|
||||
|
||||
if (!nRgbColor1)
|
||||
nRgbColor1 = odf_context()->drawing_context()->get_fill_color();
|
||||
|
||||
CBgraFrame bgraFrame;
|
||||
|
||||
bgraFrame.ReColorPatternImage(sImagePath, nRgbColor1.get_value_or(0xffffff), nRgbColor2.get_value_or(0x000000));
|
||||
}
|
||||
else
|
||||
{
|
||||
odf_context()->drawing_context()->start_hatch_style();
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
odf_context()->drawing_context()->set_hatch_line_color(vml_fill->m_oColor2->ToString());
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_hatch_area_color(vml_fill->m_oColor->ToString());
|
||||
if (sRgbColor2)
|
||||
odf_context()->drawing_context()->set_hatch_line_color(*sRgbColor2);
|
||||
if (sRgbColor1)
|
||||
odf_context()->drawing_context()->set_hatch_area_color(*sRgbColor1);
|
||||
else
|
||||
odf_context()->drawing_context()->set_hatch_area_color(L"#ffffff");
|
||||
|
||||
odf_context()->drawing_context()->end_hatch_style();
|
||||
|
||||
}
|
||||
}break;
|
||||
case SimpleTypes::filltypeSolid:
|
||||
default:
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_solid_fill(vml_fill->m_oColor->ToString());
|
||||
if (sImagePath.empty() && sRgbColor1)
|
||||
odf_context()->drawing_context()->set_solid_fill(*sRgbColor1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
if (vml_fill->m_oOpacity.IsInit() && vml_fill->m_oOpacity2.IsInit() )
|
||||
@ -589,7 +626,7 @@ void OoxConverter::convert(OOX::Vml::CStroke *vml_stroke)
|
||||
if (vml_stroke->m_oColor.IsInit())
|
||||
{
|
||||
std::wstring hexColor = vml_stroke->m_oColor->ToString();
|
||||
if (hexColor.length() < 1)hexColor = L"000000";
|
||||
if (hexColor.empty()) hexColor = L"000000";
|
||||
odf_context()->drawing_context()->set_solid_fill(hexColor);
|
||||
}
|
||||
|
||||
@ -643,10 +680,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);
|
||||
@ -815,9 +856,16 @@ void OoxConverter::convert(OOX::Vml::CVmlCommonElements *vml_common)
|
||||
|
||||
if (oRgbColor)
|
||||
{
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
unsigned int nRgbColor = ((unsigned int)(((BYTE)( oRgbColor->Get_B())
|
||||
| ((unsigned int)((BYTE)( oRgbColor->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)( oRgbColor->Get_R()))<<16)));
|
||||
|
||||
odf_context()->drawing_context()->set_fill_color(nRgbColor);
|
||||
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
odf_context()->drawing_context()->set_solid_fill(oRgbColor->ToString().substr(2));//.Right(6));
|
||||
odf_context()->drawing_context()->end_area_properties();
|
||||
|
||||
delete oRgbColor;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
@ -205,11 +215,11 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
|
||||
OOX::Vml::CTextbox *vml = static_cast<OOX::Vml::CTextbox*>(oox_unknown);
|
||||
convert(vml);
|
||||
}break;
|
||||
//case OOX::et_v_background:
|
||||
//{
|
||||
// OOX::Vml::CBackground *vml = static_cast<OOX::Vml::CBackground*>(oox_unknown);
|
||||
// convert(vml);
|
||||
//}break;
|
||||
case OOX::et_v_background:
|
||||
{
|
||||
OOX::Vml::CBackground *vml = static_cast<OOX::Vml::CBackground*>(oox_unknown);
|
||||
convert(vml);
|
||||
}break;
|
||||
case OOX::et_v_path:
|
||||
{
|
||||
OOX::Vml::CPath *vml = static_cast<OOX::Vml::CPath*>(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]);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
@ -1664,21 +1676,28 @@ void DocxConverter::convert(OOX::Logic::CBackground *oox_background, int type)
|
||||
{
|
||||
if (oox_background == NULL) return;
|
||||
|
||||
_CP_OPT(odf_types::color) color;
|
||||
convert ( oox_background->m_oColor.GetPointer(),
|
||||
oox_background->m_oThemeColor.GetPointer(),
|
||||
oox_background->m_oThemeTint.GetPointer(),
|
||||
oox_background->m_oThemeShade.GetPointer(), color);
|
||||
|
||||
odt_context->set_background(color, type);
|
||||
|
||||
odt_context->start_drawings();
|
||||
odt_context->drawing_context()->set_background_state(true);
|
||||
odt_context->drawing_context()->start_drawing();
|
||||
|
||||
if (oox_background->m_oDrawing.IsInit())
|
||||
{
|
||||
//подложка
|
||||
convert(oox_background->m_oDrawing.GetPointer());
|
||||
}
|
||||
else
|
||||
else if (oox_background->m_oBackground.IsInit())
|
||||
{
|
||||
//цветовая подложка
|
||||
_CP_OPT(odf_types::color) color;
|
||||
convert ( oox_background->m_oColor.GetPointer(),
|
||||
oox_background->m_oThemeColor.GetPointer(),
|
||||
oox_background->m_oThemeTint.GetPointer(),
|
||||
oox_background->m_oThemeShade.GetPointer(), color);
|
||||
|
||||
odt_context->set_background(color, type);
|
||||
convert(oox_background->m_oBackground.GetPointer());
|
||||
}
|
||||
odt_context->drawing_context()->end_drawing();
|
||||
odt_context->end_drawings();
|
||||
}
|
||||
|
||||
void DocxConverter::convert(ComplexTypes::Word::CFramePr *oox_frame_pr, odf_writer::style_paragraph_properties * paragraph_properties)
|
||||
@ -2825,51 +2844,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 +2866,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());
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 \
|
||||
|
||||
@ -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 */,
|
||||
|
||||
@ -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;
|
||||
}
|
||||
};
|
||||
@ -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;
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""../../../DesktopEditor/freetype-2.5.2/include""
|
||||
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"
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user