mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-11 02:16:02 +08:00
Compare commits
289 Commits
core/devel
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| a17a04298a | |||
| f7ba686f0c | |||
| c41385e1ae | |||
| f582a9b690 | |||
| b36c2dbaf9 | |||
| 10b9e9e5e8 | |||
| 1beb5440f9 | |||
| 9a9ba4cc62 | |||
| 5b4c6363bb | |||
| 2026d064ef | |||
| 42257ca447 | |||
| 6f2fdcd971 | |||
| 9b4b7a26fd | |||
| 4d688b3922 | |||
| be8d427e26 | |||
| 7e0749ddda | |||
| 9f2324d208 | |||
| 6e258b85d7 | |||
| 24e55018a0 | |||
| 2352ae5d88 | |||
| 2cba43e6f3 | |||
| abcf8d0246 | |||
| c18b955467 | |||
| 7896b75001 | |||
| 7d188b2213 | |||
| 79ead484cc | |||
| be65f18a0e | |||
| 60f61109a1 | |||
| 4201bcecc6 | |||
| 7b7bfbc5dd | |||
| a70255e500 | |||
| 7e9dede9b3 | |||
| 9b7ad03465 | |||
| 3162bb0bfe | |||
| ec95648c43 | |||
| 72ac11ac07 | |||
| f70ea2b74f | |||
| db834666ba | |||
| 6ed0e13178 | |||
| 446e519110 | |||
| fb1fc01963 | |||
| 4651ae1bbb | |||
| 18606e23c6 | |||
| ed6d070d1f | |||
| f00cecbcaf | |||
| c9aee26fd6 | |||
| 32d3c0e65c | |||
| 33aeef2c02 | |||
| 7c97941acc | |||
| 01a4cd2289 | |||
| 202b58fb10 | |||
| b221150797 | |||
| 2084587e9a | |||
| 8332c28ac2 | |||
| 435a11d75c | |||
| 9a5329f5d6 | |||
| 8eecbf5fa5 | |||
| 9e1773df65 | |||
| 39e4140524 | |||
| bd90de857e | |||
| 57f2ec7b96 | |||
| 634098a6fa | |||
| bdbf208f6c | |||
| a652f5d73f | |||
| 1602843aa6 | |||
| cdb7fb8ea6 | |||
| 6387e9fa69 | |||
| 4e8097c93d | |||
| 65254b57b2 | |||
| 95899e23a8 | |||
| 5c8757d346 | |||
| 234e19d68a | |||
| 62145b7204 | |||
| 8bcc6d1501 | |||
| 09ef46f333 | |||
| 1839350526 | |||
| d7587e91b1 | |||
| 7b0a342cf9 | |||
| 3d01b0782e | |||
| fecfcfa7d2 | |||
| 29b5fa513a | |||
| f9a19badbf | |||
| d2630ea73c | |||
| a4a58c4782 | |||
| 29a3d80071 | |||
| 598bb419c0 | |||
| 087da9d2ce | |||
| c505aced48 | |||
| 959d5e5fcd | |||
| 8ee0cf4b2c | |||
| 426342074e | |||
| d2c092fe62 | |||
| a336917338 | |||
| 8925ddeee5 | |||
| 84824631b2 | |||
| dc3ecb1fc0 | |||
| 266cef8c49 | |||
| a5e821cd21 | |||
| cb5d92334e | |||
| f6dbc6b9f0 | |||
| c2c6430495 | |||
| 9ecf5b7834 | |||
| 1d003863dd | |||
| 774561bd00 | |||
| d356a305b9 | |||
| 95c472c15c | |||
| 2dbec241f7 | |||
| f3c66cab50 | |||
| 11e6fc3e06 | |||
| cdf8c0a11b | |||
| ae29cebe35 | |||
| e933a1fb42 | |||
| 5a3f98c502 | |||
| 8677540a82 | |||
| f4ceac5b2b | |||
| 61be4ea100 | |||
| 51c6ce2ba2 | |||
| e13bc44198 | |||
| 56cefcb1be | |||
| 6f860c17e3 | |||
| fb9edc4f81 | |||
| 4eb0a73f3c | |||
| 7929d798c8 | |||
| 4c3d8ca059 | |||
| ad74a8ea6b | |||
| f50dda7c31 | |||
| f78a805fa3 | |||
| bc177269a9 | |||
| 84cab29276 | |||
| d7c7584b4d | |||
| 1346072ab2 | |||
| 3b6b463b1b | |||
| a75daf9d90 | |||
| dc81f97bac | |||
| d194249ffb | |||
| 4ec04c31c5 | |||
| 8774035be9 | |||
| 8cec4ce82e | |||
| 17e46a2c99 | |||
| c5ffcd4b44 | |||
| 51c77c3a85 | |||
| 4326a7d258 | |||
| 38813fd105 | |||
| 19960fa3b5 | |||
| 32121d6d3b | |||
| 2dcef22681 | |||
| ee5a56183e | |||
| b90e3a3cd1 | |||
| f074d1252b | |||
| 30f07d3aa4 | |||
| d27b7b2f56 | |||
| 1dbf3e83ad | |||
| a5f70c9740 | |||
| ab72c8973d | |||
| a204c576ad | |||
| 4a7d40d3fb | |||
| 4f5fb86f87 | |||
| f7f2629e9d | |||
| 048c2fd034 | |||
| 3299c47858 | |||
| 8977e2c792 | |||
| 089e7d3230 | |||
| bd5863a02d | |||
| e0296d5a9a | |||
| e26cf3bf39 | |||
| 8525a1e9f0 | |||
| 2e8c83a668 | |||
| e857496565 | |||
| 143f65ae5a | |||
| f89d75ae92 | |||
| 403507206d | |||
| 7f6431700c | |||
| 7977bcf069 | |||
| 32ad6b46e2 | |||
| bf6bfce051 | |||
| 805c24ff1a | |||
| 2c4bb7c808 | |||
| 15a711396f | |||
| 3d8403346b | |||
| 5700503efe | |||
| d01b1e7d41 | |||
| 584cc6ab80 | |||
| 4b727edde8 | |||
| 9d10c4ddce | |||
| d5026d014d | |||
| ac0b7e4e22 | |||
| 623fe25415 | |||
| c4c9d50aae | |||
| 5d8dda02ec | |||
| bc3461147d | |||
| 80d4e6057b | |||
| 2dc5c2916a | |||
| 5f9631a3c5 | |||
| ef7df69036 | |||
| b3961994d2 | |||
| 927a847607 | |||
| 674cc6c1a2 | |||
| 5d77cf9473 | |||
| 512dad1d24 | |||
| 3d684934f1 | |||
| dd6ac185fb | |||
| 9825b6e32e | |||
| 653008ebfc | |||
| 236e93aa9c | |||
| 164c7faf94 | |||
| 4c07ddbcc7 | |||
| 7be543c3a6 | |||
| ccb47b0bda | |||
| 8aefacd411 | |||
| 6cd5fbcaca | |||
| 7c964b3f9c | |||
| 8c43c781bd | |||
| 7496de06f0 | |||
| fdd443a2d7 | |||
| 037c4046eb | |||
| 4e5ac14ca9 | |||
| dedf74b366 | |||
| 6f2eef1137 | |||
| 9a8d3edbef | |||
| 305ebda78d | |||
| 114050c23e | |||
| 7eee0755bf | |||
| c329f29e9a | |||
| 0f3a02ca7c | |||
| 62d4860873 | |||
| 21666ee309 | |||
| 47ff766e4e | |||
| 50cbc671b3 | |||
| f2d3390bd4 | |||
| fb5af12d7a | |||
| 63655a97e9 | |||
| fdf032d9f8 | |||
| 3b85b58558 | |||
| 00f1f40a1e | |||
| 46c05a4c27 | |||
| f3a510bd58 | |||
| 45231b822c | |||
| e0591675d2 | |||
| 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:
|
||||
|
||||
@ -50,8 +50,8 @@ namespace DocFileFormat
|
||||
|
||||
EncryptionHeader( FileInformationBlock* fib, POLE::Stream* tableStream );
|
||||
private:
|
||||
CRYPT::CryptRC4Data crypt_data_rc4;
|
||||
CRYPT::ECMADecryptor::_cryptData crypt_data_aes;
|
||||
bool bStandard;
|
||||
CRYPT::_rc4CryptData crypt_data_rc4;
|
||||
CRYPT::_ecmaCryptData crypt_data_aes;
|
||||
bool bStandard;
|
||||
};
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -35,11 +35,23 @@
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
struct _guides
|
||||
{
|
||||
unsigned char type;
|
||||
|
||||
unsigned char param_type1;
|
||||
unsigned char param_type2;
|
||||
unsigned char param_type3;
|
||||
|
||||
WORD param1;
|
||||
WORD param2;
|
||||
WORD param3;
|
||||
};
|
||||
class PathParser
|
||||
{
|
||||
public:
|
||||
|
||||
PathParser (const unsigned char* pSegmentInfo, unsigned int pSegmentInfoSize, const unsigned char* pVertices, unsigned int pVerticesSize)
|
||||
PathParser (const unsigned char* pSegmentInfo, unsigned int pSegmentInfoSize, const unsigned char* pVertices, unsigned int pVerticesSize, std::vector<_guides> & guides)
|
||||
{
|
||||
if ((pSegmentInfo != NULL) && (pSegmentInfoSize > 0))
|
||||
{
|
||||
@ -105,31 +117,40 @@ namespace DocFileFormat
|
||||
unsigned short nElemsAlloc = FormatUtils::BytesToUInt16(pVertices, 2, pVerticesSize);
|
||||
unsigned short cb = FormatUtils::BytesToUInt16(pVertices, 4, pVerticesSize);
|
||||
|
||||
if (0xfff0 == cb)
|
||||
{
|
||||
cb = 4;
|
||||
|
||||
for (unsigned short i = 0; i < nElems; ++i)
|
||||
for (unsigned short i = 0; i < nElems; ++i)
|
||||
{
|
||||
POINT point;
|
||||
if (0xfff0 == cb)
|
||||
{
|
||||
POINT point;
|
||||
|
||||
cb = 4;
|
||||
point.x = FormatUtils::BytesToInt16(pVertices + 6, (i * cb), pVerticesSize);
|
||||
point.y = FormatUtils::BytesToInt16(pVertices + 6, (i * cb) + (cb / 2), pVerticesSize);
|
||||
|
||||
m_arPoints.push_back(point);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (unsigned short i = 0; i < nElems; ++i)
|
||||
else
|
||||
{
|
||||
POINT point;
|
||||
|
||||
point.x = FormatUtils::BytesToInt32(pVertices + 6, (i * cb), pVerticesSize);
|
||||
point.y = FormatUtils::BytesToInt32(pVertices + 6, (i * cb) + (cb / 2), pVerticesSize);
|
||||
|
||||
m_arPoints.push_back(point);
|
||||
}
|
||||
|
||||
LONG lMinF = (LONG)0x80000000;
|
||||
if (lMinF <= point.x)
|
||||
{
|
||||
int index = (DWORD)point.x - 0x80000000;
|
||||
if (index >= 0 && index < guides.size())
|
||||
{
|
||||
point.x = guides[index].param3;
|
||||
}
|
||||
}
|
||||
if (lMinF <= point.y)
|
||||
{
|
||||
int index = (DWORD)point.y - 0x80000000;
|
||||
if (index >= 0 && index < guides.size())
|
||||
{
|
||||
point.y = guides[index].param3;
|
||||
}
|
||||
}
|
||||
|
||||
m_arPoints.push_back(point);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,21 +106,20 @@ namespace DocFileFormat
|
||||
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
std::list<OptionEntry> ExtractOptions() const
|
||||
std::vector<OptionEntryPtr> ExtractOptions() const
|
||||
{
|
||||
std::list<OptionEntry> ret;
|
||||
std::vector<OptionEntryPtr> ret;
|
||||
|
||||
//build the list of all option entries of this shape
|
||||
for ( std::vector<Record*>::const_iterator iter = this->Children.begin(); iter != this->Children.end(); iter++ )
|
||||
{
|
||||
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( *iter );
|
||||
|
||||
if ( opt != NULL )
|
||||
if ( opt == NULL ) continue;
|
||||
|
||||
for ( size_t i = 0; i < opt->Options.size(); i++)
|
||||
{
|
||||
for ( std::vector<OptionEntry>::iterator oeIter = opt->Options.begin(); oeIter != opt->Options.end(); oeIter++ )
|
||||
{
|
||||
ret.push_back( *oeIter );
|
||||
}
|
||||
ret.push_back( opt->Options[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -568,18 +568,19 @@ namespace DocFileFormat
|
||||
|
||||
struct OptionEntry
|
||||
{
|
||||
OptionEntry() : pid(PropertyId_left), fBid(false), fComplex(false), op(0), opComplex(NULL)
|
||||
OptionEntry() : pid(PropertyId_left), fBid(false), fComplex(false), op(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
PropertyId pid;
|
||||
bool fBid;
|
||||
bool fComplex;
|
||||
unsigned int op;
|
||||
unsigned char* opComplex;
|
||||
std::shared_ptr<unsigned char> opComplex;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<OptionEntry> OptionEntryPtr;
|
||||
|
||||
class ShapeOptions: public Record
|
||||
{
|
||||
public:
|
||||
@ -587,8 +588,8 @@ namespace DocFileFormat
|
||||
static const unsigned short TYPE_CODE_0xF121 = 0xF121;
|
||||
static const unsigned short TYPE_CODE_0xF122 = 0xF122;
|
||||
|
||||
std::vector<OptionEntry> Options;
|
||||
std::map<PropertyId, OptionEntry> OptionsByID;
|
||||
std::vector<OptionEntryPtr> Options;
|
||||
std::map<PropertyId, OptionEntryPtr> OptionsByID;
|
||||
|
||||
ShapeOptions() : Record()
|
||||
{
|
||||
@ -596,8 +597,8 @@ namespace DocFileFormat
|
||||
|
||||
virtual ~ShapeOptions()
|
||||
{
|
||||
for (std::vector<OptionEntry>::iterator iter = Options.begin(); iter != Options.end(); ++iter)
|
||||
RELEASEARRAYOBJECTS( iter->opComplex );
|
||||
//for (std::vector<OptionEntry>::iterator iter = Options.begin(); iter != Options.end(); ++iter)
|
||||
// RELEASEARRAYOBJECTS( iter->opComplex );
|
||||
}
|
||||
|
||||
ShapeOptions (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance)
|
||||
@ -606,16 +607,16 @@ namespace DocFileFormat
|
||||
|
||||
//instance is the count of properties stored in this record
|
||||
|
||||
OptionEntry entry;
|
||||
//parse the flags and the simple values
|
||||
for (unsigned int i = 0; i < instance; ++i)
|
||||
{
|
||||
OptionEntryPtr entry = std::shared_ptr<OptionEntry>(new OptionEntry());
|
||||
unsigned short flag = Reader->ReadUInt16();
|
||||
|
||||
entry.pid = (PropertyId)FormatUtils::BitmaskToInt (flag, 0x3FFF);
|
||||
entry.fBid = FormatUtils::BitmaskToBool (flag, 0x4000);
|
||||
entry.fComplex = FormatUtils::BitmaskToBool (flag, 0x8000);
|
||||
entry.op = Reader->ReadUInt32();
|
||||
entry->pid = (PropertyId)FormatUtils::BitmaskToInt (flag, 0x3FFF);
|
||||
entry->fBid = FormatUtils::BitmaskToBool (flag, 0x4000);
|
||||
entry->fComplex = FormatUtils::BitmaskToBool (flag, 0x8000);
|
||||
entry->op = Reader->ReadUInt32();
|
||||
|
||||
Options.push_back( entry );
|
||||
}
|
||||
@ -625,21 +626,12 @@ namespace DocFileFormat
|
||||
//of the OptionEntry arry, sorted by pid
|
||||
for (unsigned int i = 0; i < instance; ++i)
|
||||
{
|
||||
if (Options[i].fComplex)
|
||||
{
|
||||
int read_size = (int)Options[i].op + 6 ; //????
|
||||
//todooo !!!! проверить все остальные !! тут размер в зависимости от типа Complex!!!
|
||||
switch(Options[i].pid)
|
||||
{
|
||||
case PropertyId::gtextUNICODE:
|
||||
case PropertyId::gtextFont:
|
||||
read_size = (int)Options[i].op;
|
||||
break;
|
||||
}
|
||||
Options[i].opComplex = Reader->ReadBytes( read_size, true );
|
||||
if (Options[i]->fComplex && Options[i]->op > 0)
|
||||
{
|
||||
Options[i]->opComplex = std::shared_ptr<unsigned char>(Reader->ReadBytes( Options[i]->op, true ));
|
||||
}
|
||||
|
||||
OptionsByID.insert(std::pair<PropertyId, OptionEntry>(Options[i].pid, Options[i]));
|
||||
OptionsByID.insert(std::make_pair(Options[i]->pid, Options[i]));
|
||||
}
|
||||
|
||||
Reader->Seek(( pos + size ), 0/*STREAM_SEEK_SET*/);
|
||||
|
||||
@ -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)
|
||||
{
|
||||
@ -136,14 +136,18 @@ namespace DocFileFormat
|
||||
}
|
||||
return btWin32;
|
||||
}
|
||||
bool ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString)
|
||||
bool VMLPictureMapping::ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString)
|
||||
{
|
||||
newXmlString.clear();
|
||||
std::wstring sTempXmlFile = NSDirectory::CreateTempFileWithUniqueName(
|
||||
NSDirectory::GetTempPath(), L"emb");
|
||||
|
||||
sTempXmlFile += L".xml";
|
||||
|
||||
std::wstring sTempFolder = m_ctx->_doc->m_sTempFolder;
|
||||
if (sTempFolder.empty())
|
||||
{
|
||||
sTempFolder = NSFile::CFileBinary::GetTempPath();
|
||||
}
|
||||
|
||||
std::wstring sTempXmlFile = NSDirectory::CreateTempFileWithUniqueName(sTempFolder, L"emb");
|
||||
|
||||
NSFile::CFileBinary file;
|
||||
file.CreateFileW(sTempXmlFile);
|
||||
file.WriteFile((BYTE*)xmlString.c_str(), xmlString.size());
|
||||
@ -186,6 +190,7 @@ namespace DocFileFormat
|
||||
if (res) break;
|
||||
}
|
||||
}
|
||||
NSFile::CFileBinary::Remove(sTempXmlFile);
|
||||
return res;
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
@ -236,7 +241,7 @@ namespace DocFileFormat
|
||||
std::wstring strHeight = FormatUtils::DoubleToWideString( height.ToPoints() );
|
||||
std::wstring strStyle;
|
||||
|
||||
std::list<OptionEntry> options;
|
||||
std::vector<OptionEntryPtr> options;
|
||||
|
||||
PictureFrameType type;
|
||||
if ((pict->shapeContainer || pict->blipStoreEntry) && pict->shapeContainer->Children.size() > 0)
|
||||
@ -277,9 +282,9 @@ namespace DocFileFormat
|
||||
}
|
||||
//todooo oбъединить с shape_mapping
|
||||
|
||||
std::list<OptionEntry>::iterator end = options.end();
|
||||
for (std::list<OptionEntry>::iterator iter = options.begin(); iter != end; ++iter)
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
OptionEntryPtr & iter = options[i];
|
||||
switch ( iter->pid )
|
||||
{
|
||||
case wzEquationXML:
|
||||
@ -287,7 +292,7 @@ namespace DocFileFormat
|
||||
m_isEquation = true;
|
||||
m_isEmbedded = true;
|
||||
|
||||
m_embeddedData = std::string((char*)iter->opComplex, iter->op);
|
||||
m_embeddedData = std::string((char*)iter->opComplex.get(), iter->op);
|
||||
|
||||
if (ParseEmbeddedEquation( m_embeddedData, m_equationXml))
|
||||
{
|
||||
@ -297,8 +302,13 @@ namespace DocFileFormat
|
||||
case metroBlob:
|
||||
{
|
||||
//встроенная неведомая хуйня
|
||||
m_isEmbedded = true;
|
||||
m_embeddedData = std::string((char*)iter->opComplex, iter->op);
|
||||
m_isEmbedded = true;
|
||||
m_embeddedData = std::string((char*)iter->opComplex.get(), iter->op);
|
||||
|
||||
//if (ParseEmbeddedBlob( m_embeddedData, m_blobXml)) // todoooo
|
||||
//{
|
||||
// m_isEmbedded = false;
|
||||
//}
|
||||
}break;
|
||||
//BORDERS
|
||||
case borderBottomColor:
|
||||
|
||||
@ -46,7 +46,6 @@ namespace DocFileFormat
|
||||
{
|
||||
class OleObject;
|
||||
|
||||
bool ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString );
|
||||
|
||||
class VMLPictureMapping: public PropertiesMapping, public IMapping
|
||||
{
|
||||
@ -58,6 +57,7 @@ namespace DocFileFormat
|
||||
/// Writes a border element
|
||||
void writePictureBorder (const std::wstring & name, const BorderCode* brc);
|
||||
void appendStyleProperty( std::wstring* b, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
bool ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString );
|
||||
protected:
|
||||
/// Copies the picture from the binary stream to the zip archive
|
||||
/// and creates the relationships for the image.
|
||||
|
||||
@ -143,8 +143,9 @@ namespace DocFileFormat
|
||||
ShapeContainer* groupShape = static_cast<ShapeContainer*>(container->Children[0]);
|
||||
GroupShapeRecord* gsr = static_cast<GroupShapeRecord*>(groupShape->Children[0]);
|
||||
Shape* shape = static_cast<Shape*>(groupShape->Children[1]);
|
||||
std::list<OptionEntry> options = groupShape->ExtractOptions();
|
||||
ChildAnchor* anchor = groupShape->FirstChildWithType<ChildAnchor>();
|
||||
|
||||
ChildAnchor* anchor = groupShape->FirstChildWithType<ChildAnchor>();
|
||||
std::vector<OptionEntryPtr> options = groupShape->ExtractOptions();
|
||||
|
||||
m_shapeId = GetShapeID(shape);
|
||||
|
||||
@ -155,14 +156,13 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString(gsr->rcgBounds.size.cx) + L"," + FormatUtils::IntToWideString(gsr->rcgBounds.size.cy)));
|
||||
|
||||
// Write wrap coords
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
for (std::list<OptionEntry>::const_iterator iter = options.begin(); iter != end; ++iter)
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
switch (iter->pid)
|
||||
switch (options[i]->pid)
|
||||
{
|
||||
case pWrapPolygonVertices:
|
||||
case pWrapPolygonVertices:
|
||||
{
|
||||
std::wstring wrapCoords = getWrapCoords(*iter);
|
||||
std::wstring wrapCoords = GetWrapCoords(options[i]);
|
||||
if (wrapCoords.length())
|
||||
m_pXmlWriter->WriteAttribute(L"wrapcoords", wrapCoords);
|
||||
}
|
||||
@ -226,9 +226,9 @@ namespace DocFileFormat
|
||||
bool freeform = true;
|
||||
std::wstring sShapeId;
|
||||
|
||||
std::list<OptionEntry> options = pContainer->ExtractOptions();
|
||||
ChildAnchor* pAnchor = pContainer->FirstChildWithType<ChildAnchor>();
|
||||
ClientAnchor* clientAnchor = pContainer->FirstChildWithType<ClientAnchor>();
|
||||
std::vector<OptionEntryPtr> options = pContainer->ExtractOptions();
|
||||
ChildAnchor* pAnchor = pContainer->FirstChildWithType<ChildAnchor>();
|
||||
ClientAnchor* clientAnchor = pContainer->FirstChildWithType<ClientAnchor>();
|
||||
|
||||
WriteBeginShapeNode (pShape);
|
||||
|
||||
@ -294,13 +294,17 @@ namespace DocFileFormat
|
||||
|
||||
std::wstring sTextboxStyle;
|
||||
|
||||
std::wstring adjValues[8];
|
||||
ShadowStyleBooleanProperties shadowBoolean(0);
|
||||
std::vector<std::wstring> arrInscribe;
|
||||
|
||||
OptionEntryPtr opSegmentInfo;
|
||||
OptionEntryPtr opVerticles;
|
||||
OptionEntryPtr opInscribe;
|
||||
OptionEntryPtr opConnectAngles;
|
||||
OptionEntryPtr opConnectLocs;
|
||||
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
for (std::list<OptionEntry>::const_iterator iter = options.begin(); iter != end; ++iter)
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
OptionEntryPtr & iter = options[i];
|
||||
switch (iter->pid)
|
||||
{
|
||||
//BOOLEANS
|
||||
@ -335,19 +339,16 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case protectionBooleans:
|
||||
{
|
||||
ProtectionBooleanProperties booleans(iter->op);
|
||||
}
|
||||
break;
|
||||
|
||||
case diagramBooleans:
|
||||
{
|
||||
DiagramBooleanProperties booleans(iter->op);
|
||||
}
|
||||
break;
|
||||
|
||||
case groupShapeBooleans:
|
||||
{
|
||||
GroupShapeBooleanProperties booleans(iter->op);
|
||||
@ -357,56 +358,80 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// GEOMETRY
|
||||
|
||||
// GEOMETRY
|
||||
case shapePath :
|
||||
{
|
||||
bHavePath = true;
|
||||
}break;
|
||||
case pVertices:
|
||||
{
|
||||
opVerticles = iter;
|
||||
}break;
|
||||
case pSegmentInfo:
|
||||
{
|
||||
opSegmentInfo = iter;
|
||||
}break;
|
||||
case pGuides:
|
||||
{
|
||||
GetGuides(iter);
|
||||
}break;
|
||||
case pConnectionSites:
|
||||
{
|
||||
opConnectLocs = iter;
|
||||
}break;
|
||||
case pConnectionSitesDir:
|
||||
{
|
||||
opConnectAngles = iter;
|
||||
}break;
|
||||
case pInscribe:
|
||||
{
|
||||
opInscribe = iter;
|
||||
}break;
|
||||
case adjustValue:
|
||||
{
|
||||
adjValues[0] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,1);
|
||||
m_nAdjValues[0] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues,1);
|
||||
}
|
||||
break;
|
||||
|
||||
case adjust2Value:
|
||||
{
|
||||
adjValues[1] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,2);
|
||||
m_nAdjValues[1] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 2);
|
||||
}
|
||||
break;
|
||||
|
||||
case adjust3Value:
|
||||
{
|
||||
adjValues[2] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,3);
|
||||
m_nAdjValues[2] = (int)iter->op;
|
||||
nAdjValues =(std::max)(nAdjValues, 3);
|
||||
}break;
|
||||
case adjust4Value:
|
||||
{
|
||||
adjValues[3] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,4);
|
||||
m_nAdjValues[3] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 4);
|
||||
}break;
|
||||
case adjust5Value:
|
||||
{
|
||||
adjValues[4] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,5);
|
||||
m_nAdjValues[4] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 5);
|
||||
}break;
|
||||
case adjust6Value:
|
||||
{
|
||||
adjValues[5] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,6);
|
||||
m_nAdjValues[5] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 6);
|
||||
}break;
|
||||
case adjust7Value:
|
||||
{
|
||||
adjValues[6] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,7);
|
||||
m_nAdjValues[6] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 7);
|
||||
}break;
|
||||
case adjust8Value:
|
||||
{
|
||||
adjValues[7] = FormatUtils::IntToWideString( (int)iter->op );
|
||||
nAdjValues = (std::max)(nAdjValues,8);
|
||||
m_nAdjValues[7] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 8);
|
||||
}break;
|
||||
case pWrapPolygonVertices:
|
||||
{
|
||||
std::wstring wrapCoords = getWrapCoords(*iter);
|
||||
std::wstring wrapCoords = GetWrapCoords(iter);
|
||||
|
||||
if (!wrapCoords.empty())
|
||||
{
|
||||
@ -421,13 +446,6 @@ namespace DocFileFormat
|
||||
{
|
||||
yCoord = iter->op;
|
||||
}break;
|
||||
case pGuides:
|
||||
{
|
||||
}break;
|
||||
case pInscribe:
|
||||
{
|
||||
arrInscribe = GetTextRectangles(*iter);
|
||||
}break;
|
||||
// OUTLINE
|
||||
case lineColor:
|
||||
{
|
||||
@ -497,7 +515,7 @@ namespace DocFileFormat
|
||||
}break;
|
||||
case fillShadeColors:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"colors", getFillColorString( iter->opComplex, iter->op ));
|
||||
appendValueAttribute(&m_fill, L"colors", getFillColorString( iter->opComplex.get(), iter->op ));
|
||||
}break;
|
||||
case fillFocus:
|
||||
{
|
||||
@ -602,7 +620,7 @@ namespace DocFileFormat
|
||||
case pibName:
|
||||
{
|
||||
std::wstring name;
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>(&name, iter->opComplex, iter->op, ENCODING_UTF16);
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>(&name, iter->opComplex.get(), iter->op, ENCODING_UTF16);
|
||||
if (!name.empty())
|
||||
appendValueAttribute(&m_imagedata, L"o:title", FormatUtils::XmlEncode(name));
|
||||
}break;
|
||||
@ -676,10 +694,10 @@ namespace DocFileFormat
|
||||
hasTextbox = true;
|
||||
nLTxID = (((iter->op) >> 16) & 0xFFFF);
|
||||
}break;
|
||||
case dxTextLeft: {ndxTextLeft = (int)iter->op;break;}
|
||||
case dyTextTop: {ndyTextTop = (int)iter->op;break;}
|
||||
case dxTextRight: {ndxTextRight = (int)iter->op;break;}
|
||||
case dyTextBottom: {ndyTextBottom = (int)iter->op;break;}
|
||||
case dxTextLeft: {ndxTextLeft = (int)iter->op; break;}
|
||||
case dyTextTop: {ndyTextTop = (int)iter->op; break;}
|
||||
case dxTextRight: {ndxTextRight = (int)iter->op; break;}
|
||||
case dyTextBottom: {ndyTextBottom = (int)iter->op; break;}
|
||||
case txflTextFlow:
|
||||
{
|
||||
switch(iter->op)
|
||||
@ -700,7 +718,7 @@ namespace DocFileFormat
|
||||
// Word Art
|
||||
case gtextUNICODE:
|
||||
{
|
||||
std::wstring text = NSStringExt::CConverter::GetUnicodeFromUTF16((unsigned short*)iter->opComplex, (iter->op)/2);
|
||||
std::wstring text = NSStringExt::CConverter::GetUnicodeFromUTF16((unsigned short*)iter->opComplex.get(), (iter->op)/2);
|
||||
|
||||
text = FormatUtils::XmlEncode(text);
|
||||
|
||||
@ -713,7 +731,7 @@ namespace DocFileFormat
|
||||
}break;
|
||||
case gtextFont:
|
||||
{
|
||||
std::wstring font = NSStringExt::CConverter::GetUnicodeFromUTF16((unsigned short*)iter->opComplex, (iter->op)/2);
|
||||
std::wstring font = NSStringExt::CConverter::GetUnicodeFromUTF16((unsigned short*)iter->opComplex.get(), (iter->op)/2);
|
||||
int i = font.size();
|
||||
while (i > 0)
|
||||
{
|
||||
@ -764,31 +782,31 @@ namespace DocFileFormat
|
||||
appendStyleProperty(&m_textPathStyle, L"font-weight", L"bold");
|
||||
}
|
||||
}break;
|
||||
// PATH
|
||||
case shapePath :
|
||||
{
|
||||
bHavePath = true;
|
||||
|
||||
std::wstring path = ParsePath(options);
|
||||
|
||||
if (false == path.empty())
|
||||
m_pXmlWriter->WriteAttribute (L"path", path);
|
||||
}break;
|
||||
default:
|
||||
default:
|
||||
{
|
||||
int val = iter->op;
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
if (false == bHavePath) // фигура может быть задана только наборами вершин и индексов
|
||||
if (opVerticles && opSegmentInfo)
|
||||
{
|
||||
std::wstring path = ParsePath(options);
|
||||
const unsigned char* pVP = opVerticles->opComplex.get();
|
||||
unsigned int nVP = opVerticles->op;
|
||||
const unsigned char* pSI = opSegmentInfo->opComplex.get();
|
||||
unsigned int nSI = opSegmentInfo->op;
|
||||
|
||||
PathParser oParser (pSI, nSI, pVP, nVP, m_arrGuides);
|
||||
std::wstring path = oParser.GetVmlPath();
|
||||
|
||||
if (false == path.empty())
|
||||
m_pXmlWriter->WriteAttribute (L"path", path);
|
||||
}
|
||||
|
||||
if (freeform && (xCoord == 0 || yCoord == 0 ))
|
||||
{
|
||||
xCoord = 21600;
|
||||
yCoord = 21600;
|
||||
}
|
||||
if ( !filled )
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"filled", L"f" );
|
||||
@ -804,10 +822,10 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute(L"o:allowincell", L"f");
|
||||
}
|
||||
|
||||
if ( ( xCoord > 0 ) && ( yCoord > 0 ) )
|
||||
if ( xCoord > 0 && yCoord > 0 )
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString( xCoord ) + L"," + FormatUtils::IntToWideString( yCoord ) ));
|
||||
}
|
||||
}
|
||||
|
||||
int nCode = 0;
|
||||
if (pShape->GetShapeType())
|
||||
@ -819,17 +837,17 @@ namespace DocFileFormat
|
||||
{
|
||||
if (nAdjValues)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute(L"arcsize", adjValues[0]);
|
||||
m_pXmlWriter->WriteAttribute(L"arcsize", m_nAdjValues[0]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nAdjValues)
|
||||
if (nAdjValues > 0)
|
||||
{
|
||||
std::wstring adjTag = adjValues[0];
|
||||
std::wstring adjTag = std::to_wstring(m_nAdjValues[0]);
|
||||
|
||||
for (int i = 1; i < nAdjValues; ++i)
|
||||
adjTag += std::wstring(L",") + adjValues[i];
|
||||
adjTag += L"," + std::to_wstring(m_nAdjValues[i]);
|
||||
|
||||
m_pXmlWriter->WriteAttribute(L"adj", adjTag);
|
||||
}
|
||||
@ -982,10 +1000,24 @@ namespace DocFileFormat
|
||||
}
|
||||
if (freeform)
|
||||
{
|
||||
if (arrInscribe.size())
|
||||
if (opInscribe || opConnectAngles || opConnectLocs)
|
||||
{
|
||||
std::vector<std::wstring> arrInscribe = GetTextRectangles(opInscribe);
|
||||
std::wstring strConnectAngles = GetConnectAngles(opConnectAngles);
|
||||
std::wstring strConnectLocs = GetConnectLocs(opConnectLocs);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"v:path", true);
|
||||
m_pXmlWriter->WriteAttribute(L"textboxrect", arrInscribe[0]);
|
||||
if (!arrInscribe.empty())
|
||||
m_pXmlWriter->WriteAttribute(L"textboxrect", arrInscribe[0]);
|
||||
if (!strConnectAngles.empty() || !strConnectLocs.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute(L"o:connecttype", L"custom");
|
||||
if (!strConnectLocs.empty())
|
||||
m_pXmlWriter->WriteAttribute(L"o:connectlocs", strConnectLocs);
|
||||
if (!strConnectAngles.empty())
|
||||
m_pXmlWriter->WriteAttribute(L"o:connectangles", strConnectAngles);
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"", true);
|
||||
}
|
||||
}
|
||||
@ -1182,11 +1214,13 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
/// Build the VML wrapcoords string for a given pWrapPolygonVertices
|
||||
std::wstring VMLShapeMapping::getWrapCoords(const OptionEntry& pWrapPolygonVertices) const
|
||||
std::wstring VMLShapeMapping::GetWrapCoords(const OptionEntryPtr& pWrapPolygonVertices) const
|
||||
{
|
||||
if (!pWrapPolygonVertices) return L"";
|
||||
|
||||
std::wstring coords;
|
||||
|
||||
MemoryStream oStream(pWrapPolygonVertices.opComplex, pWrapPolygonVertices.op);
|
||||
MemoryStream oStream(pWrapPolygonVertices->opComplex.get(), pWrapPolygonVertices->op);
|
||||
std::list<int> arrVertices;
|
||||
|
||||
unsigned short nElems = oStream.ReadUInt16();
|
||||
@ -1498,7 +1532,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
void VMLShapeMapping::AppendOptionsToStyle (std::wstring* oStyle, const std::list<OptionEntry>& options, int zIndex) const
|
||||
void VMLShapeMapping::AppendOptionsToStyle (std::wstring* oStyle, const std::vector<OptionEntryPtr>& options, int zIndex) const
|
||||
{
|
||||
bool bRelH = false;
|
||||
bool bRelV = false;
|
||||
@ -1508,9 +1542,9 @@ namespace DocFileFormat
|
||||
|
||||
bool bZIndex = false;
|
||||
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
for (std::list<OptionEntry>::const_iterator iter = options.begin(); iter != end; ++iter)
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
const OptionEntryPtr & iter = options[i];
|
||||
switch (iter->pid)
|
||||
{
|
||||
// POSITIONING
|
||||
@ -1616,15 +1650,16 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//
|
||||
std::wstring VMLShapeMapping::buildStyle (const Shape* shape, const ChildAnchor* anchor, const std::list<OptionEntry>& options, int zIndex) const
|
||||
std::wstring VMLShapeMapping::buildStyle (const Shape* shape, const ChildAnchor* anchor, const std::vector<OptionEntryPtr>& options, int zIndex) const
|
||||
{
|
||||
std::wstring style;
|
||||
|
||||
// Check if some properties are set that cause the dimensions to be twisted
|
||||
bool twistDimensions = false;
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
for (std::list<OptionEntry>::const_iterator iter = options.begin(); iter != end; ++iter)
|
||||
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
const OptionEntryPtr & iter = options[i];
|
||||
|
||||
if (geometryTextBooleanProperties == iter->pid)
|
||||
{
|
||||
GeometryTextBooleanProperties props(iter->op);
|
||||
@ -1860,61 +1895,210 @@ namespace DocFileFormat
|
||||
|
||||
return wrapType;
|
||||
}
|
||||
|
||||
std::wstring VMLShapeMapping::ParsePath (const std::list<OptionEntry>& options) const
|
||||
std::wstring VMLShapeMapping::GetConnectAngles(const OptionEntryPtr& opAngles) const
|
||||
{
|
||||
const unsigned char* pVP = NULL;
|
||||
unsigned int nVP = 0;
|
||||
const unsigned char* pSI = NULL;
|
||||
unsigned int nSI = 0;
|
||||
if (!opAngles) return L"";
|
||||
if (!opAngles->opComplex) return L"";
|
||||
|
||||
std::list<OptionEntry>::const_iterator end = options.end();
|
||||
for (std::list<OptionEntry>::const_iterator iter = options.begin(); iter != end; ++iter)
|
||||
MemoryStream reader(opAngles->opComplex.get(), opAngles->op);
|
||||
|
||||
unsigned short nElems = reader.ReadUInt16();
|
||||
unsigned short nElemsAlloc = reader.ReadUInt16();
|
||||
unsigned short nElemSize = reader.ReadUInt16();
|
||||
|
||||
bool bTruncated = false;
|
||||
|
||||
if (0xFFF0 == nElemSize)
|
||||
{
|
||||
nElemSize = 4;
|
||||
bTruncated = true;
|
||||
}
|
||||
|
||||
long dwSize = nElems * nElemSize;
|
||||
|
||||
if (opAngles->op - 6 != (dwSize))
|
||||
{
|
||||
bool b = false;
|
||||
}
|
||||
if (nElemSize < 1) return L"";
|
||||
|
||||
int count = dwSize / nElemSize;
|
||||
|
||||
std::wstring angles;
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
if (iter->pid == pVertices)
|
||||
{
|
||||
pVP = iter->opComplex;
|
||||
nVP = iter->op;
|
||||
}
|
||||
|
||||
if (iter->pid == pSegmentInfo)
|
||||
{
|
||||
pSI = iter->opComplex;
|
||||
nSI = iter->op;
|
||||
}
|
||||
DWORD v = reader.ReadUInt32();
|
||||
double val = (double)((WORD)(v >> 16) + ((WORD)(v) / 65536.0));
|
||||
angles += std::to_wstring((int)val) + (i < (count - 1) ? L"," : L"");
|
||||
}
|
||||
return angles;
|
||||
}
|
||||
int VMLShapeMapping::UpdateFromGuides(const int val) const
|
||||
{
|
||||
int new_val = val;
|
||||
LONG lMinF = (LONG)0x80000000;
|
||||
if (lMinF <= val)
|
||||
{
|
||||
int index = (DWORD)val - 0x80000000;
|
||||
|
||||
if (index >= 0 && index < m_arrGuides.size())
|
||||
{
|
||||
new_val = m_arrGuides[index].param3;
|
||||
}
|
||||
|
||||
PathParser oParser (pSI, nSI, pVP, nVP);
|
||||
return oParser.GetVmlPath();
|
||||
}
|
||||
return new_val;
|
||||
}
|
||||
void VMLShapeMapping::GetGuides( const OptionEntryPtr& opGuides )
|
||||
{
|
||||
if (!opGuides) return;
|
||||
if (!opGuides->opComplex) return;
|
||||
|
||||
MemoryStream reader(opGuides->opComplex.get(), opGuides->op);
|
||||
|
||||
unsigned short nElems = reader.ReadUInt16();
|
||||
unsigned short nElemsAlloc = reader.ReadUInt16();
|
||||
unsigned short nElemSize = reader.ReadUInt16();
|
||||
|
||||
bool bTruncated = false;
|
||||
|
||||
if (0xFFF0 == nElemSize)
|
||||
{
|
||||
nElemSize = 4;
|
||||
bTruncated = true;
|
||||
}
|
||||
long dwSize = nElems * nElemSize;
|
||||
|
||||
if (opGuides->op - 6 != (dwSize))
|
||||
{
|
||||
bool b = false;
|
||||
}
|
||||
int count = dwSize / nElemSize; //1x (int or short)
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
_guides g;
|
||||
WORD flags = reader.ReadUInt16();
|
||||
|
||||
g.type = flags & 0x1FFF;
|
||||
|
||||
g.param_type1 = (unsigned char)(flags & 0x04);
|
||||
g.param_type2 = (unsigned char)(flags & 0x02);
|
||||
g.param_type3 = (unsigned char)(flags & 0x01);
|
||||
|
||||
g.param1 = reader.ReadUInt16();
|
||||
g.param2 = reader.ReadUInt16();
|
||||
g.param3 = reader.ReadUInt16();
|
||||
|
||||
m_arrGuides.push_back(g);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
std::vector<std::wstring> VMLShapeMapping::GetTextRectangles(const OptionEntry& inscribe) const
|
||||
std::wstring VMLShapeMapping::GetConnectLocs( const OptionEntryPtr& opLocs ) const
|
||||
{
|
||||
MemoryStream reader(inscribe.opComplex, inscribe.op + 6);
|
||||
if (!opLocs) return L"";
|
||||
if (!opLocs->opComplex) return L"";
|
||||
|
||||
unsigned short elems = reader.ReadUInt16();
|
||||
unsigned short allocElems = reader.ReadUInt16();
|
||||
unsigned short cb = reader.ReadUInt16();
|
||||
|
||||
MemoryStream reader(opLocs->opComplex.get(), opLocs->op);
|
||||
|
||||
unsigned short nElems = reader.ReadUInt16();
|
||||
unsigned short nElemsAlloc = reader.ReadUInt16();
|
||||
unsigned short nElemSize = reader.ReadUInt16();
|
||||
|
||||
bool bTruncated = false;
|
||||
|
||||
if (0xFFF0 == nElemSize)
|
||||
{
|
||||
nElemSize = 4;
|
||||
bTruncated = true;
|
||||
}
|
||||
|
||||
long dwSize = nElems * nElemSize;
|
||||
|
||||
if (opLocs->op - 6 != (dwSize))
|
||||
{
|
||||
bool b = false;
|
||||
}
|
||||
int count = dwSize / nElemSize; //2x (int or short)
|
||||
|
||||
std::wstring locs;
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
POINT pt;
|
||||
|
||||
if (bTruncated)
|
||||
{
|
||||
pt.x = reader.ReadInt16();
|
||||
pt.y = reader.ReadInt16();
|
||||
}
|
||||
else
|
||||
{
|
||||
pt.x = reader.ReadInt32();
|
||||
pt.y = reader.ReadInt32();
|
||||
}
|
||||
|
||||
pt.x = UpdateFromGuides(pt.x);
|
||||
pt.y = UpdateFromGuides(pt.y);
|
||||
|
||||
locs += std::to_wstring(pt.x) + L"," + std::to_wstring(pt.y) + (i < (count - 1) ? L";" : L"");
|
||||
}
|
||||
|
||||
return locs;
|
||||
}
|
||||
|
||||
std::vector<std::wstring> VMLShapeMapping::GetTextRectangles( const OptionEntryPtr& opInscribe ) const
|
||||
{
|
||||
std::vector<std::wstring> rectangles;
|
||||
|
||||
if (!opInscribe) return rectangles;
|
||||
if (!opInscribe->opComplex) return rectangles;
|
||||
|
||||
if (16 != cb) return rectangles; // TODO: доделать
|
||||
MemoryStream reader(opInscribe->opComplex.get(), opInscribe->op);
|
||||
|
||||
int count = (inscribe.op) / 16;
|
||||
unsigned short nElems = reader.ReadUInt16();
|
||||
unsigned short nElemsAlloc = reader.ReadUInt16();
|
||||
unsigned short nElemSize = reader.ReadUInt16();
|
||||
|
||||
bool bTruncated = false;
|
||||
|
||||
if (0xFFF0 == nElemSize)
|
||||
{
|
||||
nElemSize = 4;
|
||||
bTruncated = true;
|
||||
}
|
||||
|
||||
long dwSize = nElems * nElemSize;
|
||||
|
||||
if (opInscribe->op - 6 != (dwSize))
|
||||
{
|
||||
bool b = false;
|
||||
}
|
||||
int count = dwSize / nElemSize; //4x (int or short)
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
RECT rc;
|
||||
|
||||
rc.top = reader.ReadInt32();
|
||||
rc.left = reader.ReadInt32();
|
||||
rc.right = reader.ReadInt32();
|
||||
rc.bottom = reader.ReadInt32();
|
||||
if (bTruncated)
|
||||
{
|
||||
rc.top = reader.ReadInt16();
|
||||
rc.left = reader.ReadInt16();
|
||||
rc.right = reader.ReadInt16();
|
||||
rc.bottom = reader.ReadInt16();
|
||||
}
|
||||
else
|
||||
{
|
||||
rc.top = reader.ReadInt32();
|
||||
rc.left = reader.ReadInt32();
|
||||
rc.right = reader.ReadInt32();
|
||||
rc.bottom = reader.ReadInt32();
|
||||
}
|
||||
rc.top = UpdateFromGuides(rc.top);
|
||||
rc.left = UpdateFromGuides(rc.left);
|
||||
rc.right = UpdateFromGuides(rc.right);
|
||||
rc.bottom = UpdateFromGuides(rc.bottom);
|
||||
|
||||
std::wstringstream sstream;
|
||||
sstream << boost::wformat(L"%d,%d,%d,%d") % rc.top % rc.left % rc.right % rc.bottom;
|
||||
rectangles.push_back(sstream.str());
|
||||
rectangles.push_back( std::to_wstring(rc.top) + L"," + std::to_wstring(rc.left) + L"," +
|
||||
std::to_wstring(rc.right) + L"," + std::to_wstring(rc.bottom));
|
||||
}
|
||||
|
||||
return rectangles;
|
||||
|
||||
@ -77,17 +77,10 @@ namespace DocFileFormat
|
||||
|
||||
void WritePrimitiveProps(DrawingPrimitive * primitive, bool root);
|
||||
|
||||
// Converts a group of shapes
|
||||
void WriteGroup(const GroupContainer* pContainer);
|
||||
// Converts a single shape
|
||||
void WriteShape (const ShapeContainer* pContainer);
|
||||
|
||||
/// Generates a string id for the given shape
|
||||
std::wstring GenShapeId(const Shape* pShape) const;
|
||||
/// Build the VML wrapcoords string for a given pWrapPolygonVertices
|
||||
std::wstring getWrapCoords( const OptionEntry& pWrapPolygonVertices ) const;
|
||||
/// Copies the picture from the binary stream to the zip archive
|
||||
/// and creates the relationships for the image.
|
||||
bool copyPicture( const BlipStoreEntry* bse );
|
||||
std::wstring GetTargetExt( Global::BlipType _type ) const;
|
||||
|
||||
@ -98,21 +91,22 @@ namespace DocFileFormat
|
||||
|
||||
std::wstring getTextboxAnchor( unsigned int anchor ) const;
|
||||
|
||||
void AppendOptionsToStyle( std::wstring* style, const std::list<OptionEntry>& options, int zIndex ) const;
|
||||
std::wstring buildStyle ( const Shape* shape, const ChildAnchor* anchor, const std::vector<OptionEntryPtr>& options, int zIndex ) const;
|
||||
void AppendOptionsToStyle ( std::wstring* style, const std::vector<OptionEntryPtr>& options, int zIndex ) const;
|
||||
|
||||
std::wstring buildStyle ( const Shape* shape, const ChildAnchor* anchor, const std::list<OptionEntry>& options, int zIndex ) const;
|
||||
int UpdateFromGuides(const int val) const;
|
||||
|
||||
std::wstring getLineStyle ( unsigned int p ) const;
|
||||
std::wstring getArrowStyle ( unsigned int op ) const;
|
||||
std::wstring getArrowLength ( unsigned int op ) const;
|
||||
std::wstring getArrowWidth ( unsigned int op ) const;
|
||||
std::wstring getFillMethod ( unsigned int p ) const;
|
||||
std::wstring getFillColorString( const unsigned char* p, unsigned int size ) const;
|
||||
/// Returns the OpenXML fill type of a fill effect
|
||||
|
||||
std::wstring getFillType ( unsigned int p ) const;
|
||||
std::wstring getShadowType ( unsigned int p ) const;
|
||||
/// Returns the OpenXML wrap type of the shape
|
||||
|
||||
std::wstring getWrapType (const Spa* pSpa) const;
|
||||
std::wstring ParsePath (const std::list<OptionEntry>& options) const;
|
||||
|
||||
void WriteBeginShapeNode (const Shape* pShape);
|
||||
void WriteEndShapeNode (const Shape* pShape);
|
||||
@ -121,9 +115,15 @@ namespace DocFileFormat
|
||||
std::wstring GetLineFrom (const ChildAnchor* pAnchor) const;
|
||||
std::wstring GetLineTo (const ChildAnchor* pAnchor) const;
|
||||
|
||||
std::vector<std::wstring> GetTextRectangles(const OptionEntry& inscribe) const;
|
||||
std::wstring GetWrapCoords ( const OptionEntryPtr& pOpt ) const;
|
||||
std::vector<std::wstring> GetTextRectangles ( const OptionEntryPtr& pOpt ) const;
|
||||
std::wstring GetConnectAngles ( const OptionEntryPtr& pOpt ) const;
|
||||
std::wstring GetConnectLocs ( const OptionEntryPtr& pOpt ) const;
|
||||
void GetGuides ( const OptionEntryPtr& pOpt );
|
||||
|
||||
private:
|
||||
int m_nAdjValues[8];
|
||||
std::vector<_guides> m_arrGuides;
|
||||
|
||||
bool m_isInlineShape;
|
||||
Spa* m_pSpa;
|
||||
IMapping* m_pCaller;
|
||||
|
||||
@ -86,6 +86,7 @@ namespace DocFileFormat
|
||||
friend class Table;
|
||||
friend class TableRow;
|
||||
friend class VMLShapeMapping;
|
||||
friend class VMLPictureMapping;
|
||||
friend class OpenXmlPackage;
|
||||
friend class TextboxMapping;
|
||||
|
||||
|
||||
@ -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,62 @@
|
||||
<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\BinReader\Readers.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\XlsxSerializer.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\DocFormatTest.cpp"
|
||||
>
|
||||
@ -382,10 +438,22 @@
|
||||
RelativePath="..\..\Common\FileDownloader\FileDownloader_win.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\OfficeFileFormatChecker2.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
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
|
||||
@ -38,80 +38,61 @@ namespace Writers
|
||||
{
|
||||
class ChartWriter
|
||||
{
|
||||
class ChartElem
|
||||
struct _chartElem
|
||||
{
|
||||
public:
|
||||
std::wstring content;
|
||||
std::wstring filename;
|
||||
int index;
|
||||
std::wstring content;
|
||||
std::wstring filename;
|
||||
int index;
|
||||
};
|
||||
std::vector<ChartElem*> m_aCharts;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
int nChartCount;
|
||||
std::vector<_chartElem> m_aCharts;
|
||||
public:
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
ChartWriter(std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
int nEmbeddedCount;
|
||||
|
||||
ChartWriter(std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
nChartCount = 0;
|
||||
nEmbeddedCount = 1000;
|
||||
}
|
||||
~ChartWriter()
|
||||
{
|
||||
for(int i = 0, length = m_aCharts.size(); i < length; ++i)
|
||||
{
|
||||
delete m_aCharts[i];
|
||||
}
|
||||
}
|
||||
bool IsEmpty()
|
||||
{
|
||||
return 0 == m_aCharts.size();
|
||||
}
|
||||
void Write()
|
||||
bool Write()
|
||||
{
|
||||
if(false == IsEmpty())
|
||||
if(IsEmpty()) return false;
|
||||
|
||||
OOX::CPath pathChartDir = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("charts");
|
||||
|
||||
for(size_t i = 0; i < m_aCharts.size(); ++i)
|
||||
{
|
||||
OOX::CPath pathChartDir = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("charts");
|
||||
NSDirectory::CreateDirectory(pathChartDir.GetPath());
|
||||
_chartElem & elem = m_aCharts[i];
|
||||
|
||||
for(int i = 0, length = m_aCharts.size(); i < length; ++i)
|
||||
{
|
||||
ChartElem* elem = m_aCharts[i];
|
||||
OOX::CPath filePath = pathChartDir + FILE_SEPARATOR_STR + elem.filename;
|
||||
|
||||
OOX::CPath filePath = pathChartDir + FILE_SEPARATOR_STR + elem->filename;
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n");
|
||||
oFile.WriteStringUTF8(elem->content);
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
std::wstring sRelPath = L"/word/charts/" + elem->filename;
|
||||
m_oContentTypesWriter.AddOverride(sRelPath, L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml");
|
||||
}
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n");
|
||||
oFile.WriteStringUTF8(elem.content);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
void AddChart(std::wstring& content, std::wstring& sRelsName, std::wstring& sFileName, int& index)
|
||||
void AddChart(std::wstring& content, std::wstring& sRelsName, std::wstring& sFileName, int index)
|
||||
{
|
||||
ChartElem* pChartElem = new ChartElem();
|
||||
pChartElem->content = content;
|
||||
pChartElem->index = nChartCount + 1;
|
||||
nChartCount++;
|
||||
pChartElem->filename = L"chart" + std::to_wstring(pChartElem->index) + L".xml";
|
||||
_chartElem oChartElem;
|
||||
|
||||
sRelsName = L"charts/" + pChartElem->filename;
|
||||
sFileName = pChartElem->filename;
|
||||
index = pChartElem->index;
|
||||
oChartElem.content = content;
|
||||
oChartElem.index = index;
|
||||
|
||||
oChartElem.filename = L"chart" + std::to_wstring(oChartElem.index) + L".xml";
|
||||
|
||||
sRelsName = L"charts/" + oChartElem.filename;
|
||||
sFileName = oChartElem.filename;
|
||||
|
||||
m_aCharts.push_back(pChartElem);
|
||||
}
|
||||
int getChartCount()
|
||||
{
|
||||
return nChartCount;
|
||||
}
|
||||
void setChartCount(int val)
|
||||
{
|
||||
nChartCount = val;
|
||||
m_aCharts.push_back(oChartElem);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -46,20 +46,19 @@ namespace Writers
|
||||
class CommentsWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
public:
|
||||
std::wstring m_sComment;
|
||||
std::wstring m_sCommentExt;
|
||||
std::wstring m_sPeople;
|
||||
public:
|
||||
CommentsWriter(std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
std::wstring m_sComment;
|
||||
std::wstring m_sCommentExt;
|
||||
std::wstring m_sPeople;
|
||||
|
||||
CommentsWriter(std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void setElements(std::wstring& sComment, std::wstring& sCommentExt, std::wstring& sPeople)
|
||||
{
|
||||
m_sComment = sComment;
|
||||
m_sCommentExt = sCommentExt;
|
||||
m_sPeople = sPeople;
|
||||
m_sComment = sComment;
|
||||
m_sCommentExt = sCommentExt;
|
||||
m_sPeople = sPeople;
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
@ -67,42 +66,30 @@ namespace Writers
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("comments.xml");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(g_string_comment_Start);
|
||||
oFile.WriteStringUTF8(m_sComment);
|
||||
oFile.WriteStringUTF8(g_string_comment_End);
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
m_oContentTypesWriter.AddOverride(std::wstring(_T("/word/comments.xml")), std::wstring(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml")));
|
||||
|
||||
//Rels
|
||||
//m_oDocumentRelsWriter.AddRels(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"), _T("comments.xml"));
|
||||
}
|
||||
if(false == m_sCommentExt.empty())
|
||||
{
|
||||
CFile oFile;
|
||||
oFile.CreateFile(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("commentsExtended.xml"));
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("commentsExtended.xml"));
|
||||
oFile.WriteStringUTF8(g_string_commentExt_Start);
|
||||
oFile.WriteStringUTF8(m_sCommentExt);
|
||||
oFile.WriteStringUTF8(g_string_commentExt_End);
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
m_oContentTypesWriter.AddOverride(std::wstring(_T("/word/commentsExtended.xml")), std::wstring(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml")));
|
||||
}
|
||||
if(false == m_sPeople.empty())
|
||||
{
|
||||
CFile oFile;
|
||||
oFile.CreateFile(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("people.xml"));
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("people.xml"));
|
||||
oFile.WriteStringUTF8(g_string_people_Start);
|
||||
oFile.WriteStringUTF8(m_sPeople);
|
||||
oFile.WriteStringUTF8(g_string_people_End);
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
m_oContentTypesWriter.AddOverride(std::wstring(_T("/word/people.xml")), std::wstring(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml")));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,80 +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
|
||||
*
|
||||
*/
|
||||
#ifndef CONTENT_TYPES_WRITER
|
||||
#define CONTENT_TYPES_WRITER
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
static std::wstring g_string_ct_Start = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">";
|
||||
static std::wstring g_string_ct_Ext = L"<Default Extension=\"bin\" ContentType=\"application/vnd.openxmlformats-officedocument.oleObject\"/><Default Extension=\"bmp\" ContentType=\"image/bmp\"/><Default Extension=\"jpg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpeg\" ContentType=\"image/jpeg\"/><Default Extension=\"jpe\" ContentType=\"image/jpeg\"/><Default Extension=\"png\" ContentType=\"image/png\"/><Default Extension=\"gif\" ContentType=\"image/gif\"/><Default Extension=\"emf\" ContentType=\"image/x-emf\"/><Default Extension=\"wmf\" ContentType=\"image/x-wmf\"/><Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/><Default Extension=\"xml\" ContentType=\"application/xml\"/><Default Extension=\"xlsx\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"/>";
|
||||
static std::wstring g_string_ct_Override = L"<Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/><Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/><Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/><Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/><Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/><Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/><Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/><Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/>";
|
||||
static std::wstring g_string_ct_End = L"</Types>";
|
||||
|
||||
class ContentTypesWriter
|
||||
{
|
||||
XmlUtils::CStringWriter m_oWriter;
|
||||
std::wstring m_sDir;
|
||||
XmlUtils::CStringWriter m_oAdditional;
|
||||
public:
|
||||
ContentTypesWriter(std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
m_oWriter.WriteString(g_string_ct_Start);
|
||||
m_oWriter.WriteString(g_string_ct_Ext);
|
||||
m_oWriter.WriteString(g_string_ct_Override);
|
||||
m_oWriter.Write(m_oAdditional);
|
||||
m_oWriter.WriteString(g_string_ct_End);
|
||||
|
||||
OOX::CPath filePath = m_sDir + L"/[Content_Types].xml";
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
}
|
||||
void AddOverride(const std::wstring& PartName, const std::wstring& ContentType)
|
||||
{
|
||||
std::wstring sOverride = L"<Override PartName=\"" + PartName+ L"\" ContentType=\"" + ContentType + L"\"/>";
|
||||
m_oAdditional.WriteString(sOverride);
|
||||
}
|
||||
void AddOverrideRaw(const std::wstring& sXml)
|
||||
{
|
||||
m_oAdditional.WriteString(sXml);
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef CONTENT_TYPES_WRITER
|
||||
@ -39,15 +39,16 @@ namespace Writers
|
||||
class DefaultThemeWriter
|
||||
{
|
||||
public:
|
||||
DefaultThemeWriter()
|
||||
std::wstring m_sContent;
|
||||
|
||||
DefaultThemeWriter( )
|
||||
{
|
||||
}
|
||||
void Write(std::wstring sThemeFilePath)
|
||||
{
|
||||
std::wstring s_Common;
|
||||
|
||||
s_Common = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?> \
|
||||
<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"> \
|
||||
if (m_sContent.empty())
|
||||
{
|
||||
m_sContent = _T("<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\
|
||||
<a:themeElements> \
|
||||
<a:clrScheme name=\"Office\"> \
|
||||
<a:dk1> \
|
||||
@ -87,7 +88,7 @@ namespace Writers
|
||||
<a:srgbClr val=\"800080\"/> \
|
||||
</a:folHlink> \
|
||||
</a:clrScheme> ");
|
||||
s_Common +=
|
||||
m_sContent +=
|
||||
_T("<a:fontScheme name=\"Office\"> \
|
||||
<a:majorFont> \
|
||||
<a:latin typeface=\"Cambria\"/> \
|
||||
@ -158,7 +159,7 @@ s_Common +=
|
||||
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
|
||||
</a:minorFont> \
|
||||
</a:fontScheme>");
|
||||
s_Common +=
|
||||
m_sContent +=
|
||||
_T("<a:fmtScheme name=\"Office\"> \
|
||||
<a:fillStyleLst> \
|
||||
<a:solidFill> \
|
||||
@ -329,13 +330,14 @@ s_Common +=
|
||||
<a:objectDefaults/> \
|
||||
<a:extraClrSchemeLst/> \
|
||||
</a:theme>");
|
||||
|
||||
}
|
||||
|
||||
OOX::CPath fileName = sThemeFilePath;
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(fileName.GetPath());
|
||||
oFile.WriteStringUTF8(s_Common);
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(fileName.GetPath());
|
||||
oFile.WriteStringUTF8(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
|
||||
oFile.WriteStringUTF8(m_sContent);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
};
|
||||
|
||||
@ -56,8 +56,8 @@ namespace Writers
|
||||
|
||||
OOX::CPath fileName = m_sDir + FILE_SEPARATOR_STR + _T("_rels") + FILE_SEPARATOR_STR + _T(".rels");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(fileName.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(fileName.GetPath());
|
||||
oFile.WriteStringUTF8(s_Common);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#define DOCUMENT_WRITER
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "../BinWriter/BinReaderWriterDefines.h";
|
||||
#include "../BinWriter/BinReaderWriterDefines.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
@ -51,8 +51,8 @@ namespace Writers
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") +FILE_SEPARATOR_STR + _T("document.xml");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:document xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/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\" mc:Ignorable=\"w14 wp14\">")));
|
||||
|
||||
@ -61,7 +61,7 @@ namespace Writers
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:body>")));
|
||||
oFile.WriteStringUTF8(m_oContent.GetData());
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:sectPr >")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:sectPr>")));
|
||||
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
|
||||
oFile.WriteStringUTF8(m_oSecPr.GetData());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("</w:sectPr>")));
|
||||
@ -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())
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
*/
|
||||
#ifndef FILE_WRITER
|
||||
#define FILE_WRITER
|
||||
#include "../../DesktopEditor/common/Path.h"
|
||||
|
||||
#include "NumberingWriter.h"
|
||||
#include "fontTableWriter.h"
|
||||
@ -45,19 +46,21 @@
|
||||
#include "webSettingsWriter.h"
|
||||
#include "DefaultThemeWriter.h"
|
||||
|
||||
namespace BinDocxRW {
|
||||
namespace BinDocxRW
|
||||
{
|
||||
class CComments;
|
||||
}
|
||||
|
||||
namespace NSBinPptxRW
|
||||
{
|
||||
class CDrawingConverter;
|
||||
}
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
class FileWriter
|
||||
{
|
||||
public:
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
std::wstring m_sThemePath;
|
||||
bool m_bSaveChartAsImg;
|
||||
|
||||
ContentTypesWriter m_oContentTypesWriter;
|
||||
public:
|
||||
FontTableWriter m_oFontTableWriter;
|
||||
DocumentWriter m_oDocumentWriter;
|
||||
MediaWriter m_oMediaWriter;
|
||||
@ -71,35 +74,57 @@ namespace Writers
|
||||
ChartWriter m_oChartWriter;
|
||||
DocumentRelsWriter m_oDocumentRelsWriter;
|
||||
WebSettingsWriter m_oWebSettingsWriter;
|
||||
DefaultThemeWriter m_oDefaultTheme;
|
||||
|
||||
int m_nDocPrIndex;
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
public:
|
||||
FileWriter(std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath):
|
||||
m_pDrawingConverter(pDrawingConverter),m_sThemePath(sThemePath),m_bSaveChartAsImg(bSaveChartAsImg),
|
||||
m_oContentTypesWriter(sDirOutput), m_oFontTableWriter(sDirOutput, sFontDir, bNoFontDir),
|
||||
m_oHeaderFooterWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oFootnotesWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oEndnotesWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oMediaWriter(sDirOutput),
|
||||
m_oStylesWriter(sDirOutput, nVersion),
|
||||
m_oNumberingWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oDocumentWriter(sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oSettingWriter(sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oCommentsWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oChartWriter(sDirOutput, m_oContentTypesWriter),
|
||||
m_oDocumentRelsWriter(sDirOutput),
|
||||
m_oWebSettingsWriter(sDirOutput),
|
||||
DefaultThemeWriter m_oTheme;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
bool m_bSaveChartAsImg;
|
||||
std::wstring m_sThemePath;
|
||||
int m_nDocPrIndex;
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
|
||||
FileWriter (std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
: m_pDrawingConverter(pDrawingConverter), m_sThemePath(sThemePath), m_bSaveChartAsImg(bSaveChartAsImg),
|
||||
m_oFontTableWriter (sDirOutput, sFontDir, bNoFontDir),
|
||||
m_oHeaderFooterWriter (sDirOutput),
|
||||
m_oFootnotesWriter (sDirOutput),
|
||||
m_oEndnotesWriter (sDirOutput),
|
||||
m_oMediaWriter (sDirOutput),
|
||||
m_oStylesWriter (sDirOutput, nVersion),
|
||||
m_oNumberingWriter (sDirOutput),
|
||||
m_oDocumentWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oSettingWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oCommentsWriter (sDirOutput),
|
||||
m_oChartWriter (sDirOutput),
|
||||
m_oDocumentRelsWriter (sDirOutput),
|
||||
m_oWebSettingsWriter (sDirOutput),
|
||||
m_nDocPrIndex(0),
|
||||
m_pComments(NULL)
|
||||
{
|
||||
}
|
||||
public: int getNextDocPr()
|
||||
{
|
||||
m_nDocPrIndex++;
|
||||
return m_nDocPrIndex;
|
||||
}
|
||||
int getNextDocPr()
|
||||
{
|
||||
m_nDocPrIndex++;
|
||||
return m_nDocPrIndex;
|
||||
}
|
||||
|
||||
void Write()
|
||||
{
|
||||
m_oCommentsWriter.Write();
|
||||
m_oChartWriter.Write();
|
||||
m_oStylesWriter.Write();
|
||||
m_oNumberingWriter.Write();
|
||||
m_oFontTableWriter.Write();
|
||||
m_oHeaderFooterWriter.Write();
|
||||
m_oFootnotesWriter.Write();
|
||||
m_oEndnotesWriter.Write();
|
||||
//Setting пишем после HeaderFooter, чтобы заполнить evenAndOddHeaders
|
||||
m_oSettingWriter.Write();
|
||||
m_oWebSettingsWriter.Write();
|
||||
//Document пишем после HeaderFooter, чтобы заполнить sectPr
|
||||
m_oDocumentWriter.Write();
|
||||
//Rels и ContentTypes пишем в конце
|
||||
m_oDocumentRelsWriter.Write();
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef FILE_WRITER
|
||||
|
||||
@ -33,6 +33,7 @@
|
||||
#define HEADER_FOOTER_WRITER
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
@ -54,10 +55,10 @@ namespace Writers
|
||||
{
|
||||
return m_sFilename.empty();
|
||||
}
|
||||
std::wstring m_sFilename;
|
||||
ContentWriter Header;
|
||||
std::wstring rId;
|
||||
SimpleTypes::EHdrFtr eType;
|
||||
std::wstring m_sFilename;
|
||||
ContentWriter Header;
|
||||
std::wstring rId;
|
||||
SimpleTypes::EHdrFtr eType;
|
||||
};
|
||||
static std::wstring g_string_hdr_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:hdr xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/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\" mc:Ignorable=\"w14 wp14\">");
|
||||
static std::wstring g_string_hdr_End = _T("</w:hdr>");
|
||||
@ -74,31 +75,31 @@ namespace Writers
|
||||
class HeaderFooterWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
public:
|
||||
std::vector<HdrFtrItem*> m_aHeaders;
|
||||
std::vector<HdrFtrItem*> m_aFooters;
|
||||
public:
|
||||
HeaderFooterWriter( std::wstring sDir, ContentTypesWriter& oContentTypesWriter) : m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
|
||||
HeaderFooterWriter( std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
~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);
|
||||
@ -108,8 +109,8 @@ namespace Writers
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
|
||||
if(bHeader)
|
||||
oFile.WriteStringUTF8(g_string_hdr_Start);
|
||||
@ -121,43 +122,33 @@ namespace Writers
|
||||
else
|
||||
oFile.WriteStringUTF8(g_string_ftr_End);
|
||||
oFile.CloseFile();
|
||||
|
||||
//Content_Types
|
||||
m_oContentTypesWriter.AddOverride(L"/word/" + sFilename, L"application/vnd.openxmlformats-officedocument.wordprocessingml." + sHeader + L"+xml");
|
||||
|
||||
//Rels
|
||||
//return m_oDocumentRelsWriter.AddRels(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/") + sHeader, sFilename);
|
||||
}
|
||||
};
|
||||
class FootnotesWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
public:
|
||||
ContentWriter m_oNotesWriter;
|
||||
FootnotesWriter( std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
|
||||
FootnotesWriter( std::wstring sDir ):m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
if(!IsEmpty())
|
||||
{
|
||||
std::wstring sFilename = getFilename();
|
||||
if(IsEmpty()) return;
|
||||
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + sFilename;
|
||||
std::wstring sFilename = getFilename();
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath);
|
||||
oFile.WriteStringUTF8(g_string_footnotes_Start);
|
||||
oFile.WriteStringUTF8(m_oNotesWriter.m_oContent.GetData());
|
||||
oFile.WriteStringUTF8(g_string_footnotes_End);
|
||||
oFile.CloseFile();
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
//ContentType
|
||||
m_oContentTypesWriter.AddOverride(L"/word/" + sFilename, L"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml");
|
||||
}
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW (filePath);
|
||||
oFile.WriteStringUTF8 (g_string_footnotes_Start);
|
||||
oFile.WriteStringUTF8 (m_oNotesWriter.m_oContent.GetData());
|
||||
oFile.WriteStringUTF8 (g_string_footnotes_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
std::wstring getFilename()
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return _T("footnotes.xml");
|
||||
}
|
||||
@ -168,33 +159,29 @@ namespace Writers
|
||||
};
|
||||
class EndnotesWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
ContentWriter m_oNotesWriter;
|
||||
EndnotesWriter( std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
|
||||
EndnotesWriter( std::wstring sDir ) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
if(!IsEmpty())
|
||||
{
|
||||
std::wstring sFilename = getFilename();
|
||||
if(IsEmpty()) return;
|
||||
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
|
||||
std::wstring sFilename = getFilename();
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath);
|
||||
oFile.WriteStringUTF8(g_string_endnotes_Start);
|
||||
oFile.WriteStringUTF8(m_oNotesWriter.m_oContent.GetData());
|
||||
oFile.WriteStringUTF8(g_string_endnotes_End);
|
||||
oFile.CloseFile();
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
//ContentType
|
||||
m_oContentTypesWriter.AddOverride(_T("/word/") + sFilename, _T("application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"));
|
||||
}
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath);
|
||||
oFile.WriteStringUTF8(g_string_endnotes_Start);
|
||||
oFile.WriteStringUTF8(m_oNotesWriter.m_oContent.GetData());
|
||||
oFile.WriteStringUTF8(g_string_endnotes_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
std::wstring getFilename()
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return _T("endnotes.xml");
|
||||
}
|
||||
|
||||
@ -32,7 +32,6 @@
|
||||
#ifndef NUMBERING_WRITER
|
||||
#define NUMBERING_WRITER
|
||||
|
||||
#include "ContentTypesWriter.h"
|
||||
#include "DocumentRelsWriter.h"
|
||||
|
||||
namespace Writers
|
||||
@ -43,13 +42,12 @@ namespace Writers
|
||||
class NumberingWriter
|
||||
{
|
||||
XmlUtils::CStringWriter m_oWriter;
|
||||
std::wstring m_sDir;
|
||||
ContentTypesWriter& m_oContentTypesWriter;
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
XmlUtils::CStringWriter m_oANum;
|
||||
XmlUtils::CStringWriter m_oNumList;
|
||||
public:
|
||||
NumberingWriter( std::wstring sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
|
||||
|
||||
NumberingWriter( std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
bool IsEmpty()
|
||||
@ -58,26 +56,20 @@ namespace Writers
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
if(false == IsEmpty())
|
||||
{
|
||||
m_oWriter.WriteString(g_string_n_Start);
|
||||
m_oWriter.Write(m_oANum);
|
||||
m_oWriter.Write(m_oNumList);
|
||||
m_oWriter.WriteString(g_string_n_End);
|
||||
if(IsEmpty()) return;
|
||||
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("numbering.xml");
|
||||
m_oWriter.WriteString(g_string_n_Start);
|
||||
m_oWriter.Write(m_oANum);
|
||||
m_oWriter.Write(m_oNumList);
|
||||
m_oWriter.WriteString(g_string_n_End);
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("numbering.xml");
|
||||
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
|
||||
//ContentType
|
||||
m_oContentTypesWriter.AddOverride( std::wstring(_T("/word/numbering.xml")), std::wstring(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml")));
|
||||
//Rels
|
||||
//m_oDocumentRelsWriter.AddRels(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"), _T("numbering.xml"));
|
||||
}
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -34,6 +34,8 @@
|
||||
|
||||
#include "../../Common/DocxFormat/Source/XML/Utils.h"
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
namespace BinDocxRW {
|
||||
|
||||
class SectPr
|
||||
@ -339,9 +341,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"/>";
|
||||
}
|
||||
@ -876,7 +878,7 @@ public:
|
||||
pCStringWriter->WriteString(CellPr);
|
||||
pCStringWriter->WriteString(L"</w:tcPr>");
|
||||
}
|
||||
for(int i = 0, length = TblStylePr.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)TblStylePr.size(); i < length; ++i)
|
||||
{
|
||||
pCStringWriter->WriteString(TblStylePr[i]);
|
||||
}
|
||||
@ -1241,7 +1243,7 @@ public:
|
||||
}
|
||||
~docLvl()
|
||||
{
|
||||
for(int i = 0,length = Text.size(); i < length; i++)
|
||||
for(int i = 0,length = (int)Text.size(); i < length; i++)
|
||||
{
|
||||
delete Text[i];
|
||||
}
|
||||
@ -1297,7 +1299,7 @@ public:
|
||||
if(bText)
|
||||
{
|
||||
std::wstring sText;
|
||||
for(int i = 0, length = Text.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)Text.size(); i < length; ++i)
|
||||
{
|
||||
docLvlText* item = Text[i];
|
||||
if(item->bText)
|
||||
@ -1360,7 +1362,7 @@ public:
|
||||
}
|
||||
~docANum()
|
||||
{
|
||||
for(int i = 0, length = Lvls.size(); i < length; i++)
|
||||
for(int i = 0, length = (int)Lvls.size(); i < length; i++)
|
||||
{
|
||||
delete Lvls[i];
|
||||
}
|
||||
@ -1380,7 +1382,7 @@ public:
|
||||
std::wstring sCorrectNumStyleLink = XmlUtils::EncodeXmlString(NumStyleLink);
|
||||
oWriterANum.WriteString(L"<w:numStyleLink w:val=\"" + sCorrectNumStyleLink + L"\"/>");
|
||||
}
|
||||
for(int i = 0, length = Lvls.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)Lvls.size(); i < length; ++i)
|
||||
{
|
||||
Lvls[i]->Write(oWriterANum, i);
|
||||
}
|
||||
@ -1453,7 +1455,8 @@ public:
|
||||
std::vector<std::wstring> aItems;
|
||||
std::wstring sCurItem;
|
||||
bool bDQuot = false;
|
||||
for(int i = 0, length = fld.length(); i < length; ++i)
|
||||
|
||||
for(int i = 0, length = (int)fld.length(); i < length; ++i)
|
||||
{
|
||||
wchar_t sCurLetter = fld[i];
|
||||
if('\"' == sCurLetter)
|
||||
@ -1476,7 +1479,8 @@ public:
|
||||
}
|
||||
if(sCurItem.length() > 0)
|
||||
aItems.push_back(sCurItem);
|
||||
for(int i = 0, length = aItems.size(); i < length; ++i)
|
||||
|
||||
for(int i = 0, length = (int)aItems.size(); i < length; ++i)
|
||||
{
|
||||
std::wstring item = aItems[i];
|
||||
if(bNextLink)
|
||||
@ -1500,7 +1504,7 @@ public:
|
||||
res = new WriteHyperlink();
|
||||
boost::algorithm::trim(sLink);
|
||||
|
||||
int nAnchorIndex = sLink.find(L"#");
|
||||
int nAnchorIndex = (int)sLink.find(L"#");
|
||||
if(-1 != nAnchorIndex)
|
||||
{
|
||||
res->href = sLink.substr(0, nAnchorIndex);
|
||||
@ -1589,7 +1593,7 @@ public:
|
||||
}
|
||||
~CComment()
|
||||
{
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
for(size_t i = 0; i <replies.size(); ++i)
|
||||
{
|
||||
delete replies[i];
|
||||
}
|
||||
@ -1597,32 +1601,37 @@ public:
|
||||
}
|
||||
int getCount()
|
||||
{
|
||||
return replies.size() + 1;
|
||||
return (int)replies.size() + 1;
|
||||
}
|
||||
void setFormatStart(int IdFormatStart)
|
||||
{
|
||||
bIdFormat = true;
|
||||
IdFormat = IdFormatStart;
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i < replies.size(); ++i)
|
||||
{
|
||||
CComment* pComment = replies[i];
|
||||
CComment* pComment = replies[i];
|
||||
pComment->bIdFormat = true;
|
||||
pComment->IdFormat = IdFormatStart + i + 1;
|
||||
pComment->IdFormat = (int)(IdFormatStart + i + 1);
|
||||
}
|
||||
}
|
||||
std::wstring writeRef(const std::wstring& sBefore, const std::wstring& sRef, const std::wstring& sAfter)
|
||||
{
|
||||
std::wstring sRes;
|
||||
sRes += (writeRef(this, sBefore, sRef, sAfter));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i< replies.size(); ++i)
|
||||
{
|
||||
sRes += (writeRef(replies[i], sBefore, sRef, sAfter));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeTemplates(funcArg fReadFunction)
|
||||
{
|
||||
std::wstring sRes;
|
||||
sRes += (fReadFunction(this));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i < replies.size(); ++i)
|
||||
sRes += (fReadFunction(replies[i]));
|
||||
return sRes;
|
||||
}
|
||||
@ -1708,7 +1717,7 @@ public:
|
||||
|
||||
bool bFirst = true;
|
||||
int nPrevIndex = 0;
|
||||
for(int i = 0, length = sText.length(); i < length; i++)
|
||||
for(size_t i = 0; i < sText.length(); i++)
|
||||
{
|
||||
wchar_t cToken = sText[i];
|
||||
if('\n' == cToken)
|
||||
@ -1717,7 +1726,7 @@ public:
|
||||
nPrevIndex = i + 1;
|
||||
}
|
||||
}
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, sText.length(), bFirst, sRes);
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, (int)sText.length(), bFirst, sRes);
|
||||
}
|
||||
sRes += L"</w:comment>";
|
||||
return sRes;
|
||||
@ -1736,7 +1745,7 @@ w15:paraIdParent=\"" + pComment->m_sParaIdParent + L"\" w15:done=\"" + sDone + L
|
||||
else
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->m_sParaId + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
//расставляем paraIdParent
|
||||
for(int i = 0, length = pComment->replies.size(); i < length; i++)
|
||||
for(size_t i = 0; i < pComment->replies.size(); i++)
|
||||
pComment->replies[i]->m_sParaIdParent = pComment->m_sParaId;
|
||||
}
|
||||
return sRes;
|
||||
@ -1782,7 +1791,7 @@ public:
|
||||
{
|
||||
m_mapComments[pComment->IdOpen] = pComment;
|
||||
addAuthor(pComment);
|
||||
for(int i = 0, length = pComment->replies.size(); i < length; i++)
|
||||
for(size_t i = 0; i < pComment->replies.size(); i++)
|
||||
addAuthor(pComment->replies[i]);
|
||||
}
|
||||
}
|
||||
@ -1866,7 +1875,7 @@ public:
|
||||
}
|
||||
~CDrawingPropertyWrap()
|
||||
{
|
||||
for(int i = 0, length = Points.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < Points.size(); ++i)
|
||||
delete Points[i];
|
||||
Points.clear();
|
||||
}
|
||||
@ -1874,7 +1883,12 @@ public:
|
||||
class CDrawingProperty
|
||||
{
|
||||
public:
|
||||
long DataPos;
|
||||
bool bObject;
|
||||
std::wstring sObjectProgram;
|
||||
long nObjectId;
|
||||
BYTE nObjectType;
|
||||
|
||||
long DataPos;
|
||||
long DataLength;
|
||||
BYTE Type;
|
||||
bool BehindDoc;
|
||||
@ -1907,8 +1921,8 @@ public:
|
||||
int m_nDocPr;
|
||||
std::wstring sGraphicFramePr;
|
||||
std::wstring sDocPr;
|
||||
|
||||
CDrawingPropertyWrap DrawingPropertyWrap;
|
||||
|
||||
CDrawingPropertyWrap DrawingPropertyWrap;
|
||||
|
||||
bool bDataPos;
|
||||
bool bDataLength;
|
||||
@ -1942,6 +1956,10 @@ public:
|
||||
CDrawingProperty(int nDocPr)
|
||||
{
|
||||
m_nDocPr = nDocPr;
|
||||
|
||||
bObject = false;
|
||||
nObjectType = 0;
|
||||
nObjectId = 0;
|
||||
bDataPos = false;
|
||||
bDataLength = false;
|
||||
bType = false;
|
||||
@ -2055,7 +2073,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
int nSimplePos = 0;
|
||||
if(bBSimplePos && BSimplePos)
|
||||
nSimplePos = 1;
|
||||
int nRelativeHeight = 0;
|
||||
unsigned long nRelativeHeight = 0;
|
||||
if(bRelativeHeight)
|
||||
nRelativeHeight = RelativeHeight;
|
||||
int nBehindDoc = 0;
|
||||
@ -2211,7 +2229,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
sXml += L"<wp:start x=\"" + std::to_wstring(emuX) + L"\" y=\"" + std::to_wstring(emuY) + L"\"/>";
|
||||
}
|
||||
|
||||
for(int i = 0, length = DrawingPropertyWrap.Points.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < DrawingPropertyWrap.Points.size(); ++i)
|
||||
{
|
||||
CDrawingPropertyWrapPoint* pWrapPoint = DrawingPropertyWrap.Points[i];
|
||||
if(pWrapPoint->bX && pWrapPoint->bY)
|
||||
|
||||
113
ASCOfficeDocxFile2/BinReader/Readers.cpp
Normal file
113
ASCOfficeDocxFile2/BinReader/Readers.cpp
Normal file
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* (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 "Readers.h"
|
||||
|
||||
|
||||
namespace BinDocxRW {
|
||||
|
||||
Binary_HdrFtrTableReader::Binary_HdrFtrTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter, CComments* pComments):Binary_CommonReader(poBufferedStream),m_oFileWriter(oFileWriter),m_oHeaderFooterWriter(oFileWriter.m_oHeaderFooterWriter),m_pComments(pComments)
|
||||
{
|
||||
}
|
||||
int Binary_HdrFtrTableReader::Read()
|
||||
{
|
||||
return ReadTable(&Binary_HdrFtrTableReader::ReadHdrFtrContent, this);
|
||||
}
|
||||
int Binary_HdrFtrTableReader::ReadHdrFtrContent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSerHdrFtrTypes::Header == type || c_oSerHdrFtrTypes::Footer == type )
|
||||
{
|
||||
nCurType = type;
|
||||
res = Read1(length, &Binary_HdrFtrTableReader::ReadHdrFtrFEO, this, poResult);
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
}
|
||||
int Binary_HdrFtrTableReader::ReadHdrFtrFEO(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSerHdrFtrTypes::HdrFtr_First == type || c_oSerHdrFtrTypes::HdrFtr_Even == type || c_oSerHdrFtrTypes::HdrFtr_Odd == type )
|
||||
{
|
||||
nCurHeaderType = type;
|
||||
res = Read1(length, &Binary_HdrFtrTableReader::ReadHdrFtrItem, this, poResult);
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
}
|
||||
int Binary_HdrFtrTableReader::ReadHdrFtrItem(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSerHdrFtrTypes::HdrFtr_Content == type )
|
||||
{
|
||||
Writers::HdrFtrItem* poHdrFtrItem = NULL;
|
||||
switch(nCurHeaderType)
|
||||
{
|
||||
case c_oSerHdrFtrTypes::HdrFtr_First:poHdrFtrItem = new Writers::HdrFtrItem(SimpleTypes::hdrftrFirst);break;
|
||||
case c_oSerHdrFtrTypes::HdrFtr_Even:poHdrFtrItem = new Writers::HdrFtrItem(SimpleTypes::hdrftrEven);break;
|
||||
case c_oSerHdrFtrTypes::HdrFtr_Odd:poHdrFtrItem = new Writers::HdrFtrItem(SimpleTypes::hdrftrDefault);break;
|
||||
}
|
||||
if(NULL != poHdrFtrItem)
|
||||
{
|
||||
if(nCurType == c_oSerHdrFtrTypes::Header)
|
||||
{
|
||||
m_oHeaderFooterWriter.m_aHeaders.push_back(poHdrFtrItem);
|
||||
poHdrFtrItem->m_sFilename = L"header" + std::to_wstring((int)m_oHeaderFooterWriter.m_aHeaders.size()) + L".xml";
|
||||
}
|
||||
else
|
||||
{
|
||||
m_oHeaderFooterWriter.m_aFooters.push_back(poHdrFtrItem);
|
||||
poHdrFtrItem->m_sFilename = L"footer" + std::to_wstring((int)m_oHeaderFooterWriter.m_aFooters.size()) + L".xml";
|
||||
}
|
||||
m_oFileWriter.m_pDrawingConverter->SetDstContentRels();
|
||||
Binary_DocumentTableReader oBinary_DocumentTableReader(m_oBufferedStream, m_oFileWriter, poHdrFtrItem->Header, m_pComments);
|
||||
res = Read1(length, &Binary_HdrFtrTableReader::ReadHdrFtrItemContent, this, &oBinary_DocumentTableReader);
|
||||
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") +
|
||||
FILE_SEPARATOR_STR + _T("_rels")+
|
||||
FILE_SEPARATOR_STR + poHdrFtrItem->m_sFilename + _T(".rels");
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->SaveDstContentRels(fileRelsPath.GetPath());
|
||||
}
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
}
|
||||
int Binary_HdrFtrTableReader::ReadHdrFtrItemContent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
Binary_DocumentTableReader* pBinary_DocumentTableReader = static_cast<Binary_DocumentTableReader*>(poResult);
|
||||
return pBinary_DocumentTableReader->ReadDocumentContent(type, length, NULL);
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -42,9 +42,9 @@ namespace Writers
|
||||
|
||||
class SettingWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
XmlUtils::CStringWriter m_oSettingWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
std::wstring m_sDir;
|
||||
XmlUtils::CStringWriter m_oSettingWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
public:
|
||||
SettingWriter(std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir),m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
{
|
||||
@ -54,8 +54,8 @@ namespace Writers
|
||||
Prepare();
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"settings.xml";
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(g_string_set_Start);
|
||||
oFile.WriteStringUTF8(m_oSettingWriter.GetData());
|
||||
oFile.WriteStringUTF8(g_string_set_Default);
|
||||
@ -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)
|
||||
|
||||
@ -58,7 +58,6 @@ namespace Writers
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
|
||||
m_oWriter.WriteString(g_string_st_Start);
|
||||
m_oWriter.WriteString(std::wstring(_T("<w:docDefaults>")));
|
||||
m_oWriter.WriteString(std::wstring(_T("<w:rPrDefault>")));
|
||||
@ -81,8 +80,8 @@ namespace Writers
|
||||
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("styles.xml");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "../../DesktopEditor/fontengine/FontManager.h"
|
||||
#include "../../DesktopEditor/fontengine/ApplicationFonts.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
@ -48,8 +49,8 @@ namespace Writers
|
||||
CFontManager* m_pFontManager;
|
||||
public:
|
||||
std::map<std::wstring, int> m_mapFonts;
|
||||
public:
|
||||
FontTableWriter(std::wstring sDir, std::wstring sFontDir, bool bNoFontDir):m_sDir(sDir)
|
||||
|
||||
FontTableWriter(std::wstring sDir, std::wstring sFontDir, bool bNoFontDir):m_sDir(sDir)
|
||||
{
|
||||
m_pFontManager = NULL;
|
||||
if(!bNoFontDir)
|
||||
@ -102,8 +103,8 @@ namespace Writers
|
||||
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("fontTable.xml");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(filePath.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
|
||||
oFile.WriteStringUTF8(m_oWriter.GetData());
|
||||
oFile.CloseFile();
|
||||
@ -121,7 +122,7 @@ namespace Writers
|
||||
CFontInfo* pFontInfo = m_pFontManager->GetFontInfoByParams(oFontSelectFormat);
|
||||
if(NULL != pFontInfo)
|
||||
{
|
||||
for(int i = 0; i < 10; ++i)
|
||||
for (size_t i = 0; i < 10; ++i)
|
||||
{
|
||||
BYTE cElem = pFontInfo->m_aPanose[i];
|
||||
if(0 != cElem)
|
||||
|
||||
@ -54,8 +54,8 @@ namespace Writers
|
||||
|
||||
OOX::CPath fileName = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("webSettings.xml");
|
||||
|
||||
CFile oFile;
|
||||
oFile.CreateFile(fileName.GetPath());
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(fileName.GetPath());
|
||||
oFile.WriteStringUTF8(s_Common);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
|
||||
@ -33,13 +33,11 @@
|
||||
#define BINEQUATIONWRITER_H
|
||||
|
||||
#include "BinReaderWriterDefines.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/Common/SimpleTypes_OMath.h"
|
||||
#include "../../Common/DocxFormat/Source/MathEquation/OutputDev.h"
|
||||
#include <stack>
|
||||
|
||||
/*namespace BinDocxRW
|
||||
{
|
||||
class BinaryCommonWriter;
|
||||
}*/
|
||||
namespace MathEquation
|
||||
{
|
||||
class EquationRun
|
||||
@ -117,11 +115,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;
|
||||
|
||||
@ -463,7 +463,8 @@ extern int g_nCurFormatVersion;
|
||||
FldSimple = 11,
|
||||
Del = 12,
|
||||
Ins = 13,
|
||||
Background = 14
|
||||
Background = 14,
|
||||
Sdt = 15
|
||||
};}
|
||||
namespace c_oSerDocTableType{enum c_oSerDocTableType
|
||||
{
|
||||
@ -477,7 +478,8 @@ extern int g_nCurFormatVersion;
|
||||
Cell = 6,
|
||||
Cell_Pr = 7,
|
||||
Cell_Content = 8,
|
||||
tblGridChange = 9
|
||||
tblGridChange = 9,
|
||||
Sdt = 10
|
||||
};}
|
||||
namespace c_oSerRunType{enum c_oSerRunType
|
||||
{
|
||||
@ -910,7 +912,8 @@ extern int g_nCurFormatVersion;
|
||||
namespace c_oSer_FldSimpleType{ enum c_oSer_FldSimpleType
|
||||
{
|
||||
Content = 0,
|
||||
Instr = 1
|
||||
Instr = 1,
|
||||
FFData = 2
|
||||
};}
|
||||
namespace c_oSer_ColorThemeType{ enum c_oSer_ColorThemeType
|
||||
{
|
||||
@ -997,6 +1000,79 @@ extern int g_nCurFormatVersion;
|
||||
Title = 3,
|
||||
Descr = 4
|
||||
};}
|
||||
namespace c_oSerEmbedded{enum c_oSerEmbedded
|
||||
{
|
||||
Type = 0,
|
||||
Data = 1,
|
||||
Program = 2
|
||||
};}
|
||||
namespace c_oSerSdt{enum c_oSerSdt
|
||||
{
|
||||
Pr = 0,
|
||||
EndPr = 1,
|
||||
Content = 2,
|
||||
Type = 3,
|
||||
Alias = 4,
|
||||
ComboBox = 5,
|
||||
LastValue = 6,
|
||||
SdtListItem = 7,
|
||||
DisplayText = 8,
|
||||
Value = 9,
|
||||
DataBinding = 10,
|
||||
PrefixMappings = 11,
|
||||
StoreItemID = 12,
|
||||
XPath = 13,
|
||||
PrDate = 14,
|
||||
FullDate = 15,
|
||||
Calendar = 16,
|
||||
DateFormat = 17,
|
||||
Lid = 18,
|
||||
StoreMappedDataAs = 19,
|
||||
DocPartList = 20,
|
||||
DocPartObj = 21,
|
||||
DocPartCategory = 22,
|
||||
DocPartGallery = 23,
|
||||
DocPartUnique = 24,
|
||||
DropDownList = 25,
|
||||
Id = 26,
|
||||
Label = 27,
|
||||
Lock = 28,
|
||||
PlaceHolder = 29,
|
||||
RPr = 30,
|
||||
ShowingPlcHdr = 31,
|
||||
TabIndex = 32,
|
||||
Tag = 33,
|
||||
Temporary = 34,
|
||||
MultiLine = 35
|
||||
};}
|
||||
namespace c_oSerFFData{enum c_oSerFFData
|
||||
{
|
||||
CalcOnExit = 0,
|
||||
CheckBox = 1,
|
||||
DDList = 2,
|
||||
Enabled = 3,
|
||||
EntryMacro = 4,
|
||||
ExitMacro = 5,
|
||||
HelpText = 6,
|
||||
Label = 7,
|
||||
Name = 8,
|
||||
StatusText = 9,
|
||||
TabIndex = 10,
|
||||
TextInput = 11,
|
||||
CBChecked = 12,
|
||||
CBDefault = 13,
|
||||
CBSize = 14,
|
||||
CBSizeAuto = 15,
|
||||
DLDefault = 16,
|
||||
DLResult = 17,
|
||||
DLListEntry = 18,
|
||||
HTType = 19,
|
||||
HTVal = 20,
|
||||
TIDefault = 21,
|
||||
TIFormat = 22,
|
||||
TIMaxLength = 23,
|
||||
TIType = 24,
|
||||
};}
|
||||
}
|
||||
|
||||
#endif // #ifndef DOCX_BIN_READER_WRITER_DEFINES
|
||||
|
||||
@ -35,9 +35,9 @@
|
||||
namespace BinDocxRW
|
||||
{
|
||||
BinaryHeaderFooterTableWriter::BinaryHeaderFooterTableWriter(ParamsWriter& oParamsWriter, OOX::IFileContainer* oDocumentRels, std::map<int, bool>* mapIgnoreComments):
|
||||
m_oBcw(oParamsWriter), m_oParamsWriter(oParamsWriter), m_poTheme(oParamsWriter.m_poTheme), m_oFontProcessor(*oParamsWriter.m_pFontProcessor), m_oSettings(oParamsWriter.m_oSettings),m_pOfficeDrawingConverter(oParamsWriter.m_pOfficeDrawingConverter), m_oDocumentRels(oDocumentRels),m_mapIgnoreComments(mapIgnoreComments)
|
||||
m_oBcw(oParamsWriter), m_oParamsWriter(oParamsWriter), m_poTheme(oParamsWriter.m_poTheme), m_oFontProcessor(*oParamsWriter.m_pFontProcessor), m_oSettings(oParamsWriter.m_oSettings), m_pOfficeDrawingConverter(oParamsWriter.m_pOfficeDrawingConverter), m_oDocumentRels(oDocumentRels),m_mapIgnoreComments(mapIgnoreComments)
|
||||
{
|
||||
};
|
||||
}
|
||||
void BinaryHeaderFooterTableWriter::Write()
|
||||
{
|
||||
int nStart = m_oBcw.WriteItemWithLengthStart();
|
||||
@ -57,11 +57,11 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
m_oBcw.WriteItemWithLengthEnd(nStart);
|
||||
};
|
||||
}
|
||||
void BinaryHeaderFooterTableWriter::WriteHdrFtrContent(std::vector<OOX::CHdrFtr*>& aHdrFtrs, std::vector<SimpleTypes::EHdrFtr>& aHdrFtrTypes, std::vector<OOX::Logic::CSectionProperty*>& aHdrSectPrs, bool bHdr)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
for(int i = 0, length = aHdrFtrs.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < aHdrFtrs.size(); ++i)
|
||||
{
|
||||
OOX::CHdrFtr* pHdrFtr = aHdrFtrs[i];
|
||||
SimpleTypes::EHdrFtr eType = aHdrFtrTypes[i];
|
||||
@ -69,26 +69,28 @@ namespace BinDocxRW
|
||||
BYTE byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_Odd;
|
||||
switch(eType)
|
||||
{
|
||||
case SimpleTypes::hdrftrFirst: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_First;break;
|
||||
case SimpleTypes::hdrftrEven: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_Even;break;
|
||||
default: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_Odd;break;
|
||||
case SimpleTypes::hdrftrFirst: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_First; break;
|
||||
case SimpleTypes::hdrftrEven: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_Even; break;
|
||||
default: byteHdrFtrType = c_oSerHdrFtrTypes::HdrFtr_Odd; break;
|
||||
}
|
||||
nCurPos = m_oBcw.WriteItemStart(byteHdrFtrType);
|
||||
WriteHdrFtrItem(pSectPr, pHdrFtr, bHdr);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void BinaryHeaderFooterTableWriter::WriteHdrFtrItem(OOX::Logic::CSectionProperty* pSectPr, OOX::CHdrFtr* pHdrFtr, bool bHdr)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
//Content
|
||||
ParamsDocumentWriter oParamsDocumentWriter(pHdrFtr, pHdrFtr->m_oReadPath.GetPath());
|
||||
m_oParamsWriter.m_pCurRels = oParamsDocumentWriter.m_pRels;
|
||||
m_oParamsWriter.m_sCurDocumentPath = oParamsDocumentWriter.m_sDocumentPath;
|
||||
BinaryDocumentTableWriter oBinaryDocumentTableWriter(m_oParamsWriter, oParamsDocumentWriter, m_mapIgnoreComments, NULL);
|
||||
oBinaryDocumentTableWriter.prepareOfficeDrawingConverter(m_pOfficeDrawingConverter, oParamsDocumentWriter.m_sDocumentPath, pHdrFtr->m_arrShapeTypes);
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerHdrFtrTypes::HdrFtr_Content);
|
||||
oBinaryDocumentTableWriter.WriteDocumentContent(pHdrFtr->m_arrItems);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
};
|
||||
{
|
||||
int nCurPos = 0;
|
||||
//Content
|
||||
ParamsDocumentWriter oParamsDocumentWriter(pHdrFtr);
|
||||
m_oParamsWriter.m_pCurRels = oParamsDocumentWriter.m_pRels;
|
||||
|
||||
BinaryDocumentTableWriter oBinaryDocumentTableWriter(m_oParamsWriter, oParamsDocumentWriter, m_mapIgnoreComments, NULL);
|
||||
|
||||
oBinaryDocumentTableWriter.prepareOfficeDrawingConverter(m_pOfficeDrawingConverter, oParamsDocumentWriter.m_pRels, pHdrFtr->m_arrShapeTypes);
|
||||
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerHdrFtrTypes::HdrFtr_Content);
|
||||
oBinaryDocumentTableWriter.WriteDocumentContent(pHdrFtr->m_arrItems);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -43,10 +43,16 @@ int BinDocxRW::g_nCurFormatVersion = 0;
|
||||
|
||||
BinDocxRW::CDocxSerializer::CDocxSerializer()
|
||||
{
|
||||
m_pParamsWriter = NULL;
|
||||
m_pCurFileWriter = NULL;
|
||||
m_bIsNoBase64Save = false;
|
||||
m_bSaveChartAsImg = false;
|
||||
m_pParamsWriter = NULL;
|
||||
m_pCurFileWriter = NULL;
|
||||
|
||||
m_bIsNoBase64Save = false;
|
||||
m_bSaveChartAsImg = false;
|
||||
}
|
||||
BinDocxRW::CDocxSerializer::~CDocxSerializer()
|
||||
{
|
||||
RELEASEOBJECT(m_pParamsWriter);
|
||||
RELEASEOBJECT(m_pCurFileWriter);
|
||||
}
|
||||
bool BinDocxRW::CDocxSerializer::ConvertDocxToDoct(const std::wstring& sSrcFileName, const std::wstring& sDstFileName, const std::wstring& sTmpDir, const std::wstring& sXMLOptions)
|
||||
{
|
||||
@ -61,7 +67,7 @@ bool BinDocxRW::CDocxSerializer::ConvertDocxToDoct(const std::wstring& sSrcFileN
|
||||
|
||||
if(S_OK == oCOfficeUtils.ExtractToDirectory(sSrcFileName, strDirSrc, NULL, 0))
|
||||
if(saveToFile(strEditorBin, strDirSrc, sXMLOptions))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, -1))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@ -88,7 +94,7 @@ bool BinDocxRW::CDocxSerializer::ConvertDoctToDocx(const std::wstring& sSrcFileN
|
||||
|
||||
if(loadFromFile(sEditorBin, strDirDst, sXMLOptions, sThemePath, sMediaPath, sEmbedPath))
|
||||
{
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, -1))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, true))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -106,6 +112,7 @@ bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, co
|
||||
CFontManager* pFontManager = pFontPicker->get_FontManager();
|
||||
DocWrapper::FontProcessor fp;
|
||||
fp.setFontManager(pFontManager);
|
||||
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
oDrawingConverter.SetFontManager(pFontManager);
|
||||
NSBinPptxRW::CBinaryFileWriter& oBufferedStream = *oDrawingConverter.m_pBinaryWriter;
|
||||
@ -136,10 +143,13 @@ bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, co
|
||||
m_pParamsWriter = new ParamsWriter(&oBufferedStream, &fp, &oDrawingConverter, pEmbeddedFontsManager);
|
||||
|
||||
BinaryFileWriter oBinaryFileWriter(*m_pParamsWriter);
|
||||
|
||||
oBinaryFileWriter.intoBindoc(sDstPath);
|
||||
|
||||
BYTE* pbBinBuffer = oBufferedStream.GetBuffer();
|
||||
int nBinBufferLen = oBufferedStream.GetPosition();
|
||||
|
||||
|
||||
if (m_bIsNoBase64Save)
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
@ -207,6 +217,7 @@ bool BinDocxRW::CDocxSerializer::CreateDocxFolders(std::wstring strDirectory, st
|
||||
bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath)
|
||||
{
|
||||
bool bResultOk = false;
|
||||
RELEASEOBJECT(m_pCurFileWriter);
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
if(oFile.OpenFile(sSrcFileName))
|
||||
@ -219,7 +230,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
//проверяем формат
|
||||
bool bValidFormat = false;
|
||||
std::wstring sSignature(g_sFormatSignature);
|
||||
int nSigLength = sSignature.length();
|
||||
int nSigLength = (int)sSignature.length();
|
||||
if(nBase64DataSize > nSigLength)
|
||||
{
|
||||
std::string sCurSig((char*)pBase64Data, nSigLength);
|
||||
@ -263,7 +274,8 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
|
||||
if(false != Base64::Base64Decode((const char*)(pBase64Data + nIndex), nBase64DataSize - nIndex, pData, &nDataSize))
|
||||
{
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
|
||||
NSBinPptxRW::CBinaryFileReader& oBufferedStream = *oDrawingConverter.m_pReader;
|
||||
oBufferedStream.Init(pData, 0, nDataSize);
|
||||
|
||||
@ -276,24 +288,26 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
{
|
||||
g_nCurFormatVersion = nVersion = nTempVersion;
|
||||
}
|
||||
}
|
||||
}
|
||||
oDrawingConverter.SetMainDocument(this);
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedPath);
|
||||
|
||||
m_pCurFileWriter = new Writers::FileWriter(sDstPath, m_sFontDir, false, nVersion, m_bSaveChartAsImg, &oDrawingConverter, sThemePath);
|
||||
|
||||
//папка с картинками
|
||||
//папка с картинками
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
std::wstring sFileInDir = strFileInDir.c_str();
|
||||
|
||||
oDrawingConverter.SetSourceFileDir(sFileInDir);
|
||||
//default theme
|
||||
m_pCurFileWriter->m_oDefaultTheme.Write(sThemePath);
|
||||
|
||||
BinaryFileReader oBinaryFileReader(sFileInDir, oBufferedStream, *m_pCurFileWriter);
|
||||
oBinaryFileReader.ReadFile();
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
OOX::CContentTypes oContentTypes;
|
||||
//themes
|
||||
m_pCurFileWriter->m_oTheme.Write(sThemePath);
|
||||
|
||||
OOX::CContentTypes *pContentTypes = oDrawingConverter.GetContentTypes();
|
||||
//docProps
|
||||
OOX::CPath pathDocProps = sDstPath + FILE_SEPARATOR_STR + _T("docProps");
|
||||
NSDirectory::CreateDirectory(pathDocProps.GetPath());
|
||||
@ -304,14 +318,14 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
if (pApp)
|
||||
{
|
||||
pApp->SetApplication(_T("OnlyOffice"));
|
||||
pApp->SetAppVersion(_T("3.0000"));
|
||||
pApp->SetAppVersion(_T("4.3000"));
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
pApp->SetSharedDoc(false);
|
||||
pApp->SetHyperlinksChanged(false);
|
||||
|
||||
pApp->write(pathDocProps + FILE_SEPARATOR_STR + _T("app.xml"), DocProps, oContentTypes);
|
||||
pApp->write(pathDocProps + FILE_SEPARATOR_STR + _T("app.xml"), DocProps, *pContentTypes);
|
||||
delete pApp;
|
||||
}
|
||||
OOX::CCore* pCore = new OOX::CCore();
|
||||
@ -319,34 +333,15 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
{
|
||||
pCore->SetCreator(_T(""));
|
||||
pCore->SetLastModifiedBy(_T(""));
|
||||
pCore->write(pathDocProps + FILE_SEPARATOR_STR + _T("core.xml"), DocProps, oContentTypes);
|
||||
pCore->write(pathDocProps + FILE_SEPARATOR_STR + _T("core.xml"), DocProps, *pContentTypes);
|
||||
delete pCore;
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
m_pCurFileWriter->m_oContentTypesWriter.AddOverrideRaw(oDrawingConverter.GetContentTypes());
|
||||
m_pCurFileWriter->Write();
|
||||
pContentTypes->Write(sDstPath);
|
||||
|
||||
m_pCurFileWriter->m_oCommentsWriter.Write();
|
||||
m_pCurFileWriter->m_oChartWriter.Write();
|
||||
m_pCurFileWriter->m_oStylesWriter.Write();
|
||||
m_pCurFileWriter->m_oNumberingWriter.Write();
|
||||
m_pCurFileWriter->m_oFontTableWriter.Write();
|
||||
m_pCurFileWriter->m_oHeaderFooterWriter.Write();
|
||||
m_pCurFileWriter->m_oFootnotesWriter.Write();
|
||||
m_pCurFileWriter->m_oEndnotesWriter.Write();
|
||||
//Setting пишем после HeaderFooter, чтобы заполнить evenAndOddHeaders
|
||||
m_pCurFileWriter->m_oSettingWriter.Write();
|
||||
m_pCurFileWriter->m_oWebSettingsWriter.Write();
|
||||
//Document пишем после HeaderFooter, чтобы заполнить sectPr
|
||||
m_pCurFileWriter->m_oDocumentWriter.Write();
|
||||
//Rels и ContentTypes пишем в конце
|
||||
m_pCurFileWriter->m_oDocumentRelsWriter.Write();
|
||||
m_pCurFileWriter->m_oContentTypesWriter.Write();
|
||||
|
||||
//CSerializer oSerializer = CSerializer();
|
||||
//if(false != oSerializer.Write(oBufferedStream, sDirectoryOut))
|
||||
//{
|
||||
bResultOk = true;
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
RELEASEARRAYOBJECTS(pBase64Data);
|
||||
@ -371,11 +366,6 @@ bool BinDocxRW::CDocxSerializer::getBinaryContent(const std::wstring& bsTxConten
|
||||
|
||||
XmlUtils::CXmlLiteReader oReader;
|
||||
|
||||
// std::wstring bsTxContentTemp = _T("<root xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/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\">");
|
||||
//
|
||||
// bsTxContentTemp += bsTxContent;
|
||||
// bsTxContentTemp + _T("</root>");
|
||||
|
||||
std::wstring sBegin(_T("<root xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/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\">"));
|
||||
|
||||
std::wstring sEnd(_T("</root>"));
|
||||
@ -397,7 +387,8 @@ bool BinDocxRW::CDocxSerializer::getBinaryContent(const std::wstring& bsTxConten
|
||||
|
||||
BinDocxRW::BinaryCommonWriter oBinaryCommonWriter(oParamsWriter);
|
||||
int nCurPos = oBinaryCommonWriter.WriteItemWithLengthStart();
|
||||
BinDocxRW::ParamsDocumentWriter oParams(oParamsWriter.m_pCurRels, oParamsWriter.m_sCurDocumentPath);
|
||||
BinDocxRW::ParamsDocumentWriter oParams(oParamsWriter.m_pCurRels);
|
||||
|
||||
BinDocxRW::BinaryDocumentTableWriter oBinaryDocumentTableWriter(oParamsWriter, oParams, &oParamsWriter.m_mapIgnoreComments, NULL);
|
||||
oBinaryDocumentTableWriter.WriteDocumentContent(oSdtContent.m_arrItems);
|
||||
oBinaryCommonWriter.WriteItemWithLengthEnd(nCurPos);
|
||||
@ -419,7 +410,8 @@ bool BinDocxRW::CDocxSerializer::getBinaryContentElem(OOX::EElementType eElemTyp
|
||||
|
||||
BinDocxRW::BinaryCommonWriter oBinaryCommonWriter(oParamsWriter);
|
||||
int nCurPos = oBinaryCommonWriter.WriteItemWithLengthStart();
|
||||
BinDocxRW::ParamsDocumentWriter oParams(oParamsWriter.m_pCurRels, oParamsWriter.m_sCurDocumentPath);
|
||||
|
||||
BinDocxRW::ParamsDocumentWriter oParams(oParamsWriter.m_pCurRels);
|
||||
BinDocxRW::BinaryDocumentTableWriter oBinaryDocumentTableWriter(oParamsWriter, oParams, &oParamsWriter.m_mapIgnoreComments, NULL);
|
||||
if(OOX::et_m_oMathPara == eElemType)
|
||||
{
|
||||
@ -431,6 +423,11 @@ bool BinDocxRW::CDocxSerializer::getBinaryContentElem(OOX::EElementType eElemTyp
|
||||
OOX::Logic::COMath* pMath = static_cast<OOX::Logic::COMath*>(pElem);
|
||||
oBinaryDocumentTableWriter.WriteMathArgNodes(pMath->m_arrItems);
|
||||
}
|
||||
else if(OOX::et_w_sdtContent == eElemType)
|
||||
{
|
||||
OOX::Logic::CSdtContent* pContent = static_cast<OOX::Logic::CSdtContent*>(pElem);
|
||||
oBinaryDocumentTableWriter.WriteDocumentContent(pContent->m_arrItems);
|
||||
}
|
||||
oBinaryCommonWriter.WriteItemWithLengthEnd(nCurPos);
|
||||
|
||||
oParamsWriter.m_pCBufferedStream = pBufferedStreamOld;
|
||||
|
||||
@ -51,14 +51,16 @@ namespace BinDocxRW
|
||||
class CDocxSerializer
|
||||
{
|
||||
public:
|
||||
std::wstring m_sFontDir;
|
||||
std::wstring m_sEmbeddedFontsDir;
|
||||
bool m_bIsNoBase64Save;
|
||||
bool m_bSaveChartAsImg;
|
||||
ParamsWriter* m_pParamsWriter;
|
||||
Writers::FileWriter* m_pCurFileWriter;
|
||||
public:
|
||||
std::wstring m_sFontDir;
|
||||
std::wstring m_sEmbeddedFontsDir;
|
||||
bool m_bIsNoBase64Save;
|
||||
bool m_bSaveChartAsImg;
|
||||
ParamsWriter* m_pParamsWriter;
|
||||
Writers::FileWriter* m_pCurFileWriter;
|
||||
|
||||
CDocxSerializer();
|
||||
virtual ~CDocxSerializer();
|
||||
|
||||
bool ConvertDocxToDoct(const std::wstring& sSrcFileName, const std::wstring& sDstFileName, const std::wstring& sTmpDir, const std::wstring& sXMLOptions);
|
||||
bool ConvertDoctToDocx(const std::wstring& sSrcFileName, const std::wstring& sDstFileName, const std::wstring& sTmpDir, const std::wstring& sXMLOptions);
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ namespace DocWrapper {
|
||||
{
|
||||
//подбор перенесен в js
|
||||
return;
|
||||
for (int i = 0; i < fontTable->m_arrFonts.size(); ++i)
|
||||
for (size_t i = 0; i < fontTable->m_arrFonts.size(); ++i)
|
||||
addToFontMap(*fontTable->m_arrFonts[i]);
|
||||
}
|
||||
|
||||
@ -80,24 +80,24 @@ namespace DocWrapper {
|
||||
return fontName;
|
||||
}
|
||||
|
||||
std::wstring FontProcessor::getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::String>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, OOX::CTheme* pTheme)
|
||||
std::wstring FontProcessor::getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::String>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, PPTX::Theme* pTheme)
|
||||
{
|
||||
CFontSelectFormat oFontSelectFormat;
|
||||
std::wstring sFontName;
|
||||
if(NULL != pTheme && oScheme.IsInit() && oScheme->m_oFontScheme.IsInit())
|
||||
{
|
||||
//берем шрифт из темы
|
||||
//берем шрифт из темы
|
||||
const SimpleTypes::Spreadsheet::EFontScheme eFontScheme = oScheme->m_oFontScheme->GetValue();
|
||||
if(SimpleTypes::Spreadsheet::fontschemeMajor == eFontScheme)
|
||||
sFontName = pTheme->GetMajorFont();
|
||||
sFontName = pTheme->themeElements.fontScheme.majorFont.latin.typeface;
|
||||
else if(SimpleTypes::Spreadsheet::fontschemeMinor == eFontScheme)
|
||||
sFontName = pTheme->GetMinorFont();
|
||||
sFontName = pTheme->themeElements.fontScheme.minorFont.latin.typeface;
|
||||
}
|
||||
if(sFontName.empty() && oRFont.IsInit() && oRFont->m_sVal.IsInit())
|
||||
sFontName = oRFont->ToString2();
|
||||
if(sFontName.empty())
|
||||
sFontName = std::wstring(gc_sNoNameFont);
|
||||
//подбор перенесен в js
|
||||
//подбор перенесен в js
|
||||
return sFontName;
|
||||
|
||||
oFontSelectFormat.wsName = new std::wstring(sFontName);
|
||||
|
||||
@ -30,26 +30,29 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
//#include "../stdafx.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
#include "../../DesktopEditor/fontengine/ApplicationFonts.h"
|
||||
|
||||
//#include "DocWrapper/Base.h"
|
||||
namespace NSCommon{
|
||||
template<class Type> class nullable;
|
||||
}
|
||||
namespace ComplexTypes{
|
||||
namespace Spreadsheet{
|
||||
namespace ComplexTypes
|
||||
{
|
||||
namespace Spreadsheet
|
||||
{
|
||||
class String;
|
||||
}
|
||||
}
|
||||
namespace PPTX
|
||||
{
|
||||
class Theme;
|
||||
}
|
||||
namespace OOX
|
||||
{
|
||||
class CFont;
|
||||
class CFontTable;
|
||||
class CTheme;
|
||||
namespace Spreadsheet
|
||||
{
|
||||
class CFont;
|
||||
@ -61,9 +64,10 @@ namespace OOX
|
||||
}
|
||||
}
|
||||
|
||||
namespace DocWrapper {
|
||||
|
||||
class FontProcessor {
|
||||
namespace DocWrapper
|
||||
{
|
||||
class FontProcessor
|
||||
{
|
||||
CFontManager* m_pFontManager;
|
||||
std::map<std::wstring, std::wstring> fontMap;
|
||||
|
||||
@ -76,7 +80,7 @@ namespace DocWrapper {
|
||||
void setFontTable(OOX::CFontTable* fontTable);
|
||||
|
||||
std::wstring getFont(const std::wstring& name);
|
||||
std::wstring getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::String>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, OOX::CTheme* pTheme);
|
||||
std::wstring getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::String>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, PPTX::Theme* pTheme);
|
||||
private:
|
||||
void addToFontMap(OOX::CFont& font);
|
||||
};
|
||||
|
||||
@ -85,17 +85,17 @@ namespace BinXlsxRW{
|
||||
}
|
||||
bool CXlsxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedDir)
|
||||
{
|
||||
NSBinPptxRW::CDrawingConverter oOfficeDrawingConverter;
|
||||
oOfficeDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oOfficeDrawingConverter.SetEmbedDstPath(sEmbedDir);
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedDir);
|
||||
|
||||
//папка с бинарников
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
|
||||
oOfficeDrawingConverter.SetSourceFileDir(strFileInDir, 2);
|
||||
oDrawingConverter.SetSourceFileDir(strFileInDir, 2);
|
||||
|
||||
BinXlsxRW::BinaryFileReader oBinaryFileReader;
|
||||
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oOfficeDrawingConverter, sXMLOptions);
|
||||
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oDrawingConverter, sXMLOptions);
|
||||
return true;
|
||||
}
|
||||
bool CXlsxSerializer::saveToFile(const std::wstring& sDstFileName, const std::wstring& sSrcPath, const std::wstring& sXMLOptions)
|
||||
@ -139,105 +139,76 @@ namespace BinXlsxRW{
|
||||
RELEASEOBJECT(pFontPicker);
|
||||
return true;
|
||||
}
|
||||
bool CXlsxSerializer::loadChart(const std::wstring& sChartPath, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize)
|
||||
bool CXlsxSerializer::saveChart(NSBinPptxRW::CBinaryFileReader* pReader, long lLength, const std::wstring& sFilepath, const long& lChartNumber)
|
||||
{
|
||||
if (NULL == pReader) return false;
|
||||
if (NULL == m_pExternalDrawingConverter) return false;
|
||||
bool bRes = false;
|
||||
//todo передать нормальный oRootPath
|
||||
OOX::CPath oRootPath;
|
||||
OOX::Spreadsheet::CChartSpace oChart(oRootPath, sChartPath);
|
||||
if(NULL != m_pExternalDrawingConverter)
|
||||
|
||||
m_pExternalDrawingConverter->SetDstContentRels();
|
||||
|
||||
//получаем sThemePath из bsFilename предполагая что папка theme находится на уровень выше bsFilename
|
||||
std::wstring sThemePath;
|
||||
std::wstring sEmbedingPath;
|
||||
std::wstring sContentTypePath;
|
||||
|
||||
int nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR);
|
||||
nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1);
|
||||
if(-1 != nIndex)
|
||||
{
|
||||
long nStartPos = oBufferedStream.GetPosition();
|
||||
BinXlsxRW::BinaryCommonWriter oBcw(oBufferedStream);
|
||||
|
||||
std::wstring sOldRelsPath = m_pExternalDrawingConverter->GetRelsPath();
|
||||
m_pExternalDrawingConverter->SetRelsPath(sChartPath);
|
||||
|
||||
BinXlsxRW::BinaryChartWriter oBinaryChartWriter(oBufferedStream, m_pExternalDrawingConverter);
|
||||
oBinaryChartWriter.WriteCT_ChartSpace(oChart);
|
||||
|
||||
m_pExternalDrawingConverter->SetRelsPath(sOldRelsPath);
|
||||
|
||||
long nEndPos = oBufferedStream.GetPosition();
|
||||
lDataSize = nEndPos - nStartPos;
|
||||
bRes = true;
|
||||
std::wstring sFilepathLeft = sFilepath.substr(0, nIndex + 1);
|
||||
sThemePath = sFilepathLeft + L"theme";
|
||||
sEmbedingPath = sFilepathLeft + L"embeddings";
|
||||
}
|
||||
return bRes;
|
||||
}
|
||||
bool CXlsxSerializer::saveChart(NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, const std::wstring& sFilepath, const std::wstring& sContentTypePath, std::wstring** sContentTypeElement, const long& lChartNumber)
|
||||
{
|
||||
bool bRes = false;
|
||||
*sContentTypeElement = NULL;
|
||||
if(NULL != m_pExternalDrawingConverter)
|
||||
{
|
||||
m_pExternalDrawingConverter->SetDstContentRels();
|
||||
|
||||
//получаем sThemePath из bsFilename предполагая что папка theme находится на уровень выше bsFilename
|
||||
std::wstring sThemePath;
|
||||
std::wstring sEmbedingPath;
|
||||
|
||||
int nIndex = sFilepath.rfind(FILE_SEPARATOR_CHAR);
|
||||
nIndex = sFilepath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1);
|
||||
if(-1 != nIndex)
|
||||
{
|
||||
std::wstring sFilepathLeft = sFilepath.substr(0, nIndex + 1);
|
||||
sThemePath = sFilepathLeft + L"theme";
|
||||
sEmbedingPath = sFilepathLeft + L"embeddings";
|
||||
}
|
||||
if (pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX) sContentTypePath = L"/word/charts/";
|
||||
else if (pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_XLSX) sContentTypePath = L"/xl/charts/";
|
||||
else sContentTypePath = L"/ppt/charts/";
|
||||
|
||||
//todo theme path
|
||||
BinXlsxRW::SaveParams oSaveParams(sThemePath);
|
||||
OOX::Spreadsheet::CChartSpace oChartSpace;
|
||||
BinXlsxRW::BinaryChartReader oBinaryChartReader(oBufferedStream, oSaveParams, m_pExternalDrawingConverter);
|
||||
|
||||
oBinaryChartReader.ReadCT_ChartSpace(lLength, &oChartSpace.m_oChartSpace);
|
||||
BinXlsxRW::SaveParams oSaveParams(sThemePath, m_pExternalDrawingConverter->GetContentTypes());
|
||||
OOX::Spreadsheet::CChartSpace oChartSpace;
|
||||
BinXlsxRW::BinaryChartReader oBinaryChartReader(*pReader, oSaveParams, m_pExternalDrawingConverter);
|
||||
|
||||
oBinaryChartReader.ReadCT_ChartSpace(lLength, &oChartSpace.m_oChartSpace);
|
||||
|
||||
if(oChartSpace.isValid())
|
||||
if(oChartSpace.isValid())
|
||||
{
|
||||
//save xlsx embedded for chart
|
||||
if(pReader->m_nDocumentType != XMLWRITER_DOC_TYPE_XLSX && !sEmbedingPath.empty())
|
||||
{
|
||||
//todo не делать embeddings, если пишем xlsx
|
||||
//save xlsx
|
||||
if(!sEmbedingPath.empty())
|
||||
{
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(lChartNumber) + L".xlsx";
|
||||
std::wstring sXlsxPath = sEmbedingPath + FILE_SEPARATOR_STR + sXlsxFilename;
|
||||
writeChartXlsx(sXlsxPath, oChartSpace);
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(lChartNumber) + L".xlsx";
|
||||
std::wstring sXlsxPath = sEmbedingPath + FILE_SEPARATOR_STR + sXlsxFilename;
|
||||
writeChartXlsx(sXlsxPath, oChartSpace);
|
||||
|
||||
std::wstring sChartsWorksheetRelsName = L"../embeddings/" + sXlsxFilename;
|
||||
long rId;
|
||||
std::wstring bstrChartsWorksheetRelType = OOX::Spreadsheet::FileTypes::ChartsWorksheet.RelationType();
|
||||
m_pExternalDrawingConverter->WriteRels(bstrChartsWorksheetRelType, sChartsWorksheetRelsName, std::wstring(), &rId);
|
||||
std::wstring sChartsWorksheetRelsName = L"../embeddings/" + sXlsxFilename;
|
||||
long rId;
|
||||
std::wstring bstrChartsWorksheetRelType = OOX::FileTypes::MicrosoftOfficeExcelWorksheet.RelationType();
|
||||
m_pExternalDrawingConverter->WriteRels(bstrChartsWorksheetRelType, sChartsWorksheetRelsName, std::wstring(), &rId);
|
||||
|
||||
oChartSpace.m_oChartSpace.m_externalData = new OOX::Spreadsheet::CT_ExternalData();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id = new std::wstring();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(L"rId");
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(std::to_wstring(rId));
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate = new OOX::Spreadsheet::CT_Boolean();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate->m_val = new bool(false);
|
||||
}
|
||||
|
||||
std::wstring strFilepath = sFilepath;
|
||||
std::wstring strDir = NSSystemPath::GetDirectoryName(strFilepath);
|
||||
std::wstring strFilename = NSSystemPath::GetFileName(strFilepath);
|
||||
|
||||
OOX::CPath pathRelsDir = strDir + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
OOX::CSystemUtility::CreateDirectories(pathRelsDir.GetPath());
|
||||
|
||||
oChartSpace.write2(sFilepath);
|
||||
|
||||
OOX::CPath pathRelsFile = pathRelsDir + FILE_SEPARATOR_STR + strFilename + _T(".rels");
|
||||
m_pExternalDrawingConverter->SaveDstContentRels(pathRelsFile.GetPath());
|
||||
|
||||
std::wstring sContentType(sContentTypePath);
|
||||
sContentType += strFilename;
|
||||
|
||||
std::wstring sContent = L"<Override PartName=\"" + sContentType + L"\" ContentType=\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\"/>";
|
||||
sContent += oSaveParams.sAdditionalContentTypes;
|
||||
|
||||
(*sContentTypeElement) = new std::wstring(sContent);
|
||||
|
||||
bRes = true;
|
||||
oChartSpace.m_oChartSpace.m_externalData = new OOX::Spreadsheet::CT_ExternalData();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id = new std::wstring();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(L"rId");
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(std::to_wstring(rId));
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate = new OOX::Spreadsheet::CT_Boolean();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate->m_val = new bool(false);
|
||||
}
|
||||
|
||||
std::wstring strFilepath = sFilepath;
|
||||
std::wstring strDir = NSSystemPath::GetDirectoryName(strFilepath);
|
||||
std::wstring strFilename = NSSystemPath::GetFileName(strFilepath);
|
||||
|
||||
OOX::CPath pathRelsDir = strDir + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
OOX::CSystemUtility::CreateDirectories(pathRelsDir.GetPath());
|
||||
|
||||
oChartSpace.write2(sFilepath);
|
||||
|
||||
OOX::CPath pathRelsFile = pathRelsDir + FILE_SEPARATOR_STR + strFilename + _T(".rels");
|
||||
m_pExternalDrawingConverter->SaveDstContentRels(pathRelsFile.GetPath());
|
||||
|
||||
pReader->m_pRels->m_pManager->m_pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml", sContentTypePath, strFilename);
|
||||
|
||||
bRes = true;
|
||||
}
|
||||
return bRes;
|
||||
}
|
||||
@ -255,28 +226,28 @@ namespace BinXlsxRW{
|
||||
}
|
||||
void CXlsxSerializer::writeChartXlsx(const std::wstring& sDstFile, const OOX::Spreadsheet::CChartSpace& oChart)
|
||||
{
|
||||
//анализируем chart
|
||||
//анализируем chart
|
||||
BinXlsxRW::ChartWriter helper;
|
||||
helper.parseChart(oChart.m_oChartSpace.m_chart);
|
||||
//создаем temp
|
||||
//создаем temp
|
||||
std::wstring sTempDir = NSSystemPath::GetDirectoryName(sDstFile) + FILE_SEPARATOR_STR + NSSystemPath::GetFileName(sDstFile) + L"_TEMP";
|
||||
NSDirectory::CreateDirectory(sTempDir);
|
||||
OOX::CPath oPath(sTempDir.c_str());
|
||||
//шиблонные папки
|
||||
//шиблонные папки
|
||||
std::wstring sXmlOptions = _T("");
|
||||
std::wstring sMediaPath;// will be filled by 'CreateXlsxFolders' method
|
||||
std::wstring sEmbedPath; // will be filled by 'CreateXlsxFolders' method
|
||||
CreateXlsxFolders (sXmlOptions, sTempDir, sMediaPath, sEmbedPath);
|
||||
//заполняем Xlsx
|
||||
//заполняем Xlsx
|
||||
OOX::Spreadsheet::CXlsx oXlsx;
|
||||
helper.toXlsx(oXlsx);
|
||||
//write
|
||||
std::wstring sAdditionalContentTypes;
|
||||
oXlsx.Write(oPath, sAdditionalContentTypes);
|
||||
//write
|
||||
OOX::CContentTypes oContentTypes;
|
||||
oXlsx.Write(oPath, oContentTypes);
|
||||
//zip
|
||||
COfficeUtils oOfficeUtils(NULL);
|
||||
oOfficeUtils.CompressFileOrDirectory(sTempDir, sDstFile, -1);
|
||||
//clean
|
||||
oOfficeUtils.CompressFileOrDirectory(sTempDir, sDstFile, true);
|
||||
//clean
|
||||
NSDirectory::DeleteDirectory(sTempDir);
|
||||
}
|
||||
};
|
||||
|
||||
@ -59,13 +59,12 @@ namespace BinXlsxRW {
|
||||
CXlsxSerializer();
|
||||
~CXlsxSerializer();
|
||||
|
||||
void CreateXlsxFolders (const std::wstring& sXmlOptions, const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath);
|
||||
static void CreateXlsxFolders (const std::wstring& sXmlOptions, const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath);
|
||||
|
||||
bool loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedPath);
|
||||
bool saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions);
|
||||
|
||||
bool loadChart (const std::wstring& sChartPath, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize);
|
||||
bool saveChart (NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, const std::wstring& sFilename, const std::wstring& sContentTypePath, std::wstring** sContentTypeElement, const long& lChartNumber);
|
||||
bool saveChart (NSBinPptxRW::CBinaryFileReader* pReader, long lLength, const std::wstring& sFilename, const long& lChartNumber);
|
||||
|
||||
void setFontDir (const std::wstring& sFontDir);
|
||||
void setEmbeddedFontsDir(const std::wstring& sEmbeddedFontsDir);
|
||||
|
||||
@ -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 \
|
||||
@ -42,15 +42,15 @@ SOURCES += \
|
||||
../../XlsxSerializerCom/Reader/CommonWriter.cpp \
|
||||
../../XlsxSerializerCom/Reader/CSVReader.cpp \
|
||||
../../XlsxSerializerCom/Writer/CSVWriter.cpp \
|
||||
../../OfficeCryptReader/source/ECMACryptReader.cpp \
|
||||
../../OfficeCryptReader/source/CryptTransform.cpp
|
||||
../../OfficeCryptReader/source/ECMACryptFile.cpp \
|
||||
../../OfficeCryptReader/source/CryptTransform.cpp \
|
||||
../BinReader/Readers.cpp
|
||||
|
||||
HEADERS += ../DocWrapper/DocxSerializer.h \
|
||||
../DocWrapper/FontProcessor.h \
|
||||
../DocWrapper/XlsxSerializer.h \
|
||||
../BinReader/ChartWriter.h \
|
||||
../BinReader/CommentsWriter.h \
|
||||
../BinReader/ContentTypesWriter.h \
|
||||
../BinReader/DocumentRelsWriter.h \
|
||||
../BinReader/DocumentWriter.h \
|
||||
../BinReader/FileWriter.h \
|
||||
@ -78,5 +78,5 @@ HEADERS += ../DocWrapper/DocxSerializer.h \
|
||||
../../Common/FileDownloader/FileDownloader.h \
|
||||
../BinReader/DefaultThemeWriter.h \
|
||||
../DocWrapper/ChartWriter.h \
|
||||
../../OfficeCryptReader/source/ECMACryptReader.h \
|
||||
../../OfficeCryptReader/source/ECMACryptFile.h \
|
||||
../../OfficeCryptReader/source/CryptTransform.h
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
17C1FEB11ACC42C4006B99B3 /* Common.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F1F1AC4549B00BEA2EA /* Common.h */; };
|
||||
17C1FEB21ACC42C4006B99B3 /* XlsxSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F131AC4546100BEA2EA /* XlsxSerializer.h */; };
|
||||
17C1FEB31ACC42C4006B99B3 /* CSVReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F271AC4549B00BEA2EA /* CSVReader.h */; };
|
||||
17C1FEB41ACC42C4006B99B3 /* ContentTypesWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EED1AC4544900BEA2EA /* ContentTypesWriter.h */; };
|
||||
17C1FEB51ACC42C4006B99B3 /* HeaderFooterWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF41AC4544900BEA2EA /* HeaderFooterWriter.h */; };
|
||||
17C1FEB61ACC42C4006B99B3 /* webSettingsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EFB1AC4544900BEA2EA /* webSettingsWriter.h */; };
|
||||
17C1FEB71ACC42C4006B99B3 /* SettingWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF91AC4544900BEA2EA /* SettingWriter.h */; };
|
||||
@ -43,6 +42,7 @@
|
||||
17C1FEBC1ACC42C4006B99B3 /* DocxSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F0F1AC4546100BEA2EA /* DocxSerializer.h */; };
|
||||
17C1FEBD1ACC42C4006B99B3 /* FileWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF21AC4544900BEA2EA /* FileWriter.h */; };
|
||||
17C1FEBE1ACC42C4006B99B3 /* CSVWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F301AC4549B00BEA2EA /* CSVWriter.h */; };
|
||||
690FE0851E9BBD68004B26D0 /* Readers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 690FE0841E9BBD68004B26D0 /* Readers.cpp */; };
|
||||
69414A301CB51666003E771B /* ChartWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69414A2E1CB51666003E771B /* ChartWriter.cpp */; };
|
||||
69414A311CB51666003E771B /* ChartWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 69414A2F1CB51666003E771B /* ChartWriter.h */; };
|
||||
6967917C1D9E8AEE002CA4BA /* BinEquationWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 696791781D9E8AEE002CA4BA /* BinEquationWriter.h */; };
|
||||
@ -58,7 +58,6 @@
|
||||
17C1FEC21ACC42C4006B99B3 /* libASCOfficeDocxFile2Lib_ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libASCOfficeDocxFile2Lib_ios.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
17E17EEB1AC4544900BEA2EA /* ChartWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChartWriter.h; sourceTree = "<group>"; };
|
||||
17E17EEC1AC4544900BEA2EA /* CommentsWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommentsWriter.h; sourceTree = "<group>"; };
|
||||
17E17EED1AC4544900BEA2EA /* ContentTypesWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentTypesWriter.h; sourceTree = "<group>"; };
|
||||
17E17EF01AC4544900BEA2EA /* DocumentRelsWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentRelsWriter.h; sourceTree = "<group>"; };
|
||||
17E17EF11AC4544900BEA2EA /* DocumentWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentWriter.h; sourceTree = "<group>"; };
|
||||
17E17EF21AC4544900BEA2EA /* FileWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileWriter.h; sourceTree = "<group>"; };
|
||||
@ -91,6 +90,7 @@
|
||||
17E17F2E1AC4549B00BEA2EA /* BinaryReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryReader.h; sourceTree = "<group>"; };
|
||||
17E17F2F1AC4549B00BEA2EA /* CSVWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSVWriter.cpp; sourceTree = "<group>"; };
|
||||
17E17F301AC4549B00BEA2EA /* CSVWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSVWriter.h; sourceTree = "<group>"; };
|
||||
690FE0841E9BBD68004B26D0 /* Readers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Readers.cpp; sourceTree = "<group>"; };
|
||||
69414A2E1CB51666003E771B /* ChartWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChartWriter.cpp; sourceTree = "<group>"; };
|
||||
69414A2F1CB51666003E771B /* ChartWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChartWriter.h; sourceTree = "<group>"; };
|
||||
696791781D9E8AEE002CA4BA /* BinEquationWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BinEquationWriter.h; path = ../../BinWriter/BinEquationWriter.h; sourceTree = "<group>"; };
|
||||
@ -145,7 +145,6 @@
|
||||
children = (
|
||||
17E17EEB1AC4544900BEA2EA /* ChartWriter.h */,
|
||||
17E17EEC1AC4544900BEA2EA /* CommentsWriter.h */,
|
||||
17E17EED1AC4544900BEA2EA /* ContentTypesWriter.h */,
|
||||
17A765271B0F3DC30046BC0B /* DefaultThemeWriter.h */,
|
||||
17E17EF01AC4544900BEA2EA /* DocumentRelsWriter.h */,
|
||||
17E17EF11AC4544900BEA2EA /* DocumentWriter.h */,
|
||||
@ -159,6 +158,7 @@
|
||||
17E17EF91AC4544900BEA2EA /* SettingWriter.h */,
|
||||
17E17EFA1AC4544900BEA2EA /* StylesWriter.h */,
|
||||
17E17EFB1AC4544900BEA2EA /* webSettingsWriter.h */,
|
||||
690FE0841E9BBD68004B26D0 /* Readers.cpp */,
|
||||
);
|
||||
name = BinReader;
|
||||
path = ../../BinReader;
|
||||
@ -277,7 +277,6 @@
|
||||
17C1FEB31ACC42C4006B99B3 /* CSVReader.h in Headers */,
|
||||
6967917D1D9E8AEE002CA4BA /* BinReaderWriterDefines.h in Headers */,
|
||||
69414A311CB51666003E771B /* ChartWriter.h in Headers */,
|
||||
17C1FEB41ACC42C4006B99B3 /* ContentTypesWriter.h in Headers */,
|
||||
17C1FEB51ACC42C4006B99B3 /* HeaderFooterWriter.h in Headers */,
|
||||
17C1FEB61ACC42C4006B99B3 /* webSettingsWriter.h in Headers */,
|
||||
17C1FEB71ACC42C4006B99B3 /* SettingWriter.h in Headers */,
|
||||
@ -350,6 +349,7 @@
|
||||
69414A301CB51666003E771B /* ChartWriter.cpp in Sources */,
|
||||
6967917E1D9E8AEE002CA4BA /* BinWriters.cpp in Sources */,
|
||||
17C1FE9C1ACC42C4006B99B3 /* XlsxSerializer.cpp in Sources */,
|
||||
690FE0851E9BBD68004B26D0 /* Readers.cpp in Sources */,
|
||||
17C1FE9D1ACC42C4006B99B3 /* FontProcessor.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -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,839 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\DesktopEditor\freetype-2.5.2\builds\windows\vc2005\freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "font_engine", "..\DesktopEditor\fontengine\font_engine_vs2005.vcproj", "{C739151F-5384-41DF-A1A6-F089E2C1AD56}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
|
||||
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mng", "..\DesktopEditor\cximage\mng\mng_vs2005.vcproj", "{40A69F40-063E-43FD-8543-455495D8733E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\DesktopEditor\cximage\png\png_vs2005.vcproj", "{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg", "..\DesktopEditor\cximage\jpeg\Jpeg_vs2005.vcproj", "{818753F2-DBB9-4D3B-898A-A604309BE470}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpsd", "..\DesktopEditor\cximage\libpsd\libpsd_vs2005.vcproj", "{9A037A69-D1DF-4505-AB2A-6CB3641C476E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdcr", "..\DesktopEditor\cximage\raw\libdcr_vs2005.vcproj", "{DF861D33-9BC1-418C-82B1-581F590FE169}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RtfFormatLib", "..\ASCOfficeRtfFile\RtfFormatLib\Win32\RtfFormatLib.vcproj", "{AF2D00A7-A351-4700-AE88-C1D9ADE29345}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatLib", "..\ASCOfficeDocFile\DocFormatLib\Win32\DocFormatLib.vcproj", "{C5371405-338F-4B70-83BD-2A5CDF64F383}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TxtFormatLib", "..\ASCOfficeTxtFile\TxtXmlFormatLib\Win32\TxtXmlFormatLib.vcproj", "{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig2", "..\DesktopEditor\raster\JBig2\win32\jbig2.vcproj", "{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTFormatLib", "..\ASCOfficePPTFile\PPTFormatLib\Win32\PPTFormatLib.vcproj", "{7B27E40E-F70A-4A74-A77C-0944D7931D15}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeUtilsLib", "..\OfficeUtils\win32\OfficeUtilsLib.vcproj", "{F8274B05-168E-4D6E-B843-AA7510725363}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "X2tTest", "..\X2tConverter\test\win32Test\X2tTest.vcproj", "{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383} = {C5371405-338F-4B70-83BD-2A5CDF64F383}
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA} = {CBEDD0D1-10A8-45C1-AF81-8492F40964CA}
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15} = {7B27E40E-F70A-4A74-A77C-0944D7931D15}
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345} = {AF2D00A7-A351-4700-AE88-C1D9ADE29345}
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417} = {DACBE6CA-E089-47D1-8CE7-C7DB59C15417}
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429} = {50E20601-4A8D-4AFB-8870-63828D328429}
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD} = {E5A67556-44DA-4481-8F87-0A3AEDBD20DD}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E} = {BEE01B53-244A-44E6-8947-ED9342D9247E}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1}
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormat", "..\ASCOfficeXlsFile2\source\win32\XlsFormat.vcproj", "{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsXlsxConverter", "..\ASCOfficeXlsFile2\source\win32\XlsXlsxConverter.vcproj", "{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\ASCOfficeOdfFile\win32\cpcommon.vcproj", "{609ED938-3CA8-4BED-B363-25096D4C4812}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatReaderLib", "..\ASCOfficeOdfFile\win32\cpodf.vcproj", "{50E20601-4A8D-4AFB-8870-63828D328429}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml_wrapper", "..\ASCOfficeOdfFile\win32\cpxml.vcproj", "{41BED424-4EAF-4053-8A5F-1E2A387D53D1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\ASCOfficeOdfFile\win32\formulasconvert.vcproj", "{94954A67-A853-43B1-A727-6EF2774C5A6A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatWriterLib", "..\ASCOfficeOdfFileW\source\win32\OdfFormat.vcproj", "{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Oox2OdfConverter", "..\ASCOfficeOdfFileW\source\win32\Oox2OdfConverter.vcproj", "{BEE01B53-244A-44E6-8947-ED9342D9247E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\OfficeCryptReader\win32\ECMACryptReader.vcproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\Common\3dParty\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "agg2d", "..\DesktopEditor\agg-2.4\agg_vs2005.vcproj", "{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\DesktopEditor\xml\build\vs2005\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
DLL-Import Debug|Win32 = DLL-Import Debug|Win32
|
||||
DLL-Import Debug|x64 = DLL-Import Debug|x64
|
||||
DLL-Import Release|Win32 = DLL-Import Release|Win32
|
||||
DLL-Import Release|x64 = DLL-Import Release|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
ReleaseASC|Win32 = ReleaseASC|Win32
|
||||
ReleaseASC|x64 = ReleaseASC|x64
|
||||
ReleaseOpenSource|Win32 = ReleaseOpenSource|Win32
|
||||
ReleaseOpenSource|x64 = ReleaseOpenSource|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{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}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.DLL-Import Release|x64.Build.0 = Release|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|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|Win32.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|x64.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|x64.Build.0 = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|x64.Build.0 = ReleaseOpenSource|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}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.DLL-Import Release|x64.Build.0 = Release|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|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|Win32.ActiveCfg = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|x64.ActiveCfg = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|x64.Build.0 = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.ActiveCfg = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|x64.ActiveCfg = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|x64.Build.0 = Release Singlethreaded|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.Build.0 = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.ActiveCfg = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.Build.0 = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.ActiveCfg = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.Build.0 = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.Build.0 = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.ActiveCfg = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.Build.0 = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.Build.0 = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.ActiveCfg = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.Build.0 = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.Build.0 = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.ActiveCfg = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.Build.0 = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.Build.0 = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.ActiveCfg = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.Build.0 = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.Build.0 = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.ActiveCfg = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.Build.0 = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.Build.0 = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.ActiveCfg = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.Build.0 = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.Build.0 = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.ActiveCfg = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.Build.0 = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.Build.0 = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.ActiveCfg = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.Build.0 = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.Build.0 = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.ActiveCfg = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Debug|x64.Build.0 = Debug|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Release|Win32.Build.0 = Release|Win32
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Release|x64.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.Release|x64.Build.0 = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{AF2D00A7-A351-4700-AE88-C1D9ADE29345}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.Build.0 = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.Build.0 = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.Build.0 = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Debug|x64.Build.0 = Debug|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Release|Win32.Build.0 = Release|Win32
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Release|x64.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.Release|x64.Build.0 = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{DACBE6CA-E089-47D1-8CE7-C7DB59C15417}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.Build.0 = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Debug|x64.Build.0 = Debug|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Release|Win32.Build.0 = Release|Win32
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Release|x64.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.Release|x64.Build.0 = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{7B27E40E-F70A-4A74-A77C-0944D7931D15}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.Build.0 = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Debug|x64.Build.0 = Debug|x64
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Debug|x64.ActiveCfg = Debug|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.DLL-Import Release|x64.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Release|Win32.Build.0 = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.Release|x64.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseASC|Win32.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseASC|Win32.Build.0 = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseASC|x64.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{355A22F4-1394-4B82-B2F1-FF0ECFB9E3EF}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.Build.0 = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.Build.0 = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|x64.Build.0 = Debug|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|Win32.Build.0 = Release|Win32
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|x64.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|x64.Build.0 = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|Win32.Build.0 = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Debug|x64.Build.0 = Debug|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Release|Win32.Build.0 = Release|Win32
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Release|x64.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.Release|x64.Build.0 = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Debug|x64.Build.0 = Debug|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Release|Win32.Build.0 = Release|Win32
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Release|x64.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.Release|x64.Build.0 = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|Win32.Build.0 = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|Win32.Build.0 = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|Win32.Build.0 = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|x64.Build.0 = Debug|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Debug|x64.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.DLL-Import Release|x64.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|x64.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseASC|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseASC|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseASC|x64.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.Build.0 = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Debug|Win32.ActiveCfg = DLL-Import Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Debug|Win32.Build.0 = DLL-Import Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Debug|x64.ActiveCfg = DLL-Import Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Debug|x64.Build.0 = DLL-Import Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Release|Win32.ActiveCfg = DLL-Import Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Release|Win32.Build.0 = DLL-Import Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Release|x64.ActiveCfg = DLL-Import Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DLL-Import Release|x64.Build.0 = DLL-Import Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.Build.0 = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.Build.0 = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{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|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|Win32.Build.0 = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|x64.Build.0 = Release|x64
|
||||
{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|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseASC|Win32.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseASC|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseASC|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@ -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,22 @@
|
||||
*/
|
||||
// OdfFileTest.cpp
|
||||
|
||||
#include "../../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/SystemUtility/FileSystem/Directory.h"
|
||||
#include "../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../src/ConvertOO2OOX.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 +54,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 docx
|
||||
|
||||
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 +68,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))
|
||||
if (S_OK != oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), dstPath.c_str(), true))
|
||||
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,9 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdi32.lib"
|
||||
AdditionalDependencies="gdi32.lib Rpcrt4.lib"
|
||||
ShowProgress="0"
|
||||
Version=""
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
@ -329,22 +331,10 @@
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Name="Common"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="OdfFileTest.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\3dParty\pole\pole.cpp"
|
||||
>
|
||||
@ -369,7 +359,43 @@
|
||||
/>
|
||||
</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>
|
||||
<File
|
||||
RelativePath="OdfFileTest.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
||||
@ -34,18 +34,15 @@
|
||||
#include <boost/optional/optional_io.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
namespace cpdoccore
|
||||
/// внешнее объявление для Optional, используем boost::optional
|
||||
|
||||
template <class T>
|
||||
struct optional
|
||||
{
|
||||
/// внешнее объявление для Optional, используем boost::optional
|
||||
|
||||
template <class T>
|
||||
struct optional
|
||||
{
|
||||
typedef T Base;
|
||||
typedef boost::optional<T> Type;
|
||||
};
|
||||
typedef T Base;
|
||||
typedef boost::optional<T> Type;
|
||||
};
|
||||
|
||||
|
||||
#define _CP_OPT(V) optional<V>::Type
|
||||
#define _CP_OPT(V) optional<V>::Type
|
||||
|
||||
}
|
||||
|
||||
@ -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 += ../include
|
||||
INCLUDEPATH += ../../DesktopEditor/freetype-2.5.2/include
|
||||
|
||||
@ -46,7 +46,6 @@
|
||||
#include "../odf/style_text_properties.h"
|
||||
#include "../odf/style_table_properties.h"
|
||||
#include "../odf/style_graphic_properties.h"
|
||||
#include "../odf/datatypes/style_ref.h"
|
||||
|
||||
#include "docx_package.h"
|
||||
#include "oox_rels.h"
|
||||
@ -569,7 +568,8 @@ mc:Ignorable=\"w14 wp14\">";
|
||||
|
||||
strm << L"<w:abstractNum w:abstractNumId=\"" << abstractNumId << "\">";
|
||||
numIds.push_back(abstractNumId);
|
||||
for (int i = 0; i < (std::min)( content.size(), (size_t)9); i++)
|
||||
|
||||
for (size_t i = 0; i < (std::min)( content.size(), (size_t)9); i++)
|
||||
{
|
||||
start_text_list_style(inst->get_text_list_style()->get_style_name());
|
||||
content[i]->docx_convert(*this);
|
||||
@ -1195,7 +1195,7 @@ void docx_conversion_context::process_headers_footers()
|
||||
// проходим по всем page layout
|
||||
BOOST_FOREACH(const odf_reader::style_master_page* page, pageLayouts.master_pages())
|
||||
{
|
||||
const std::wstring & styleName = page->style_master_page_attlist_.style_name_.get_value_or( odf_types::style_ref(L"") ).style_name();
|
||||
const std::wstring & styleName = page->attlist_.style_name_.get_value_or( L"" );
|
||||
const std::wstring masterPageNameLayout =context.pageLayoutContainer().page_layout_name_by_style(styleName);
|
||||
add_page_properties(masterPageNameLayout);
|
||||
|
||||
@ -1296,7 +1296,7 @@ void docx_conversion_context::start_text_changes (std::wstring id)
|
||||
|
||||
if (state.type == 2)
|
||||
{
|
||||
for (int i = 0 ; i < state.content.size(); i++)
|
||||
for (size_t i = 0 ; i < state.content.size(); i++)
|
||||
{
|
||||
output_stream() << L"<w:del" << format_change << L" w:id=\"" << boost::lexical_cast<std::wstring>(current_id_changes++) << L"\">";
|
||||
|
||||
|
||||
@ -53,7 +53,6 @@ namespace cpdoccore {
|
||||
|
||||
namespace odf_types
|
||||
{
|
||||
class style_ref;
|
||||
class length_or_percent;
|
||||
}
|
||||
namespace odf_reader
|
||||
|
||||
@ -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]");
|
||||
|
||||
@ -47,12 +47,12 @@ docx_content_types_file::docx_content_types_file()
|
||||
content()->add_default(L"jpg", L"image/jpeg");
|
||||
content()->add_default(L"png", L"image/png");
|
||||
//
|
||||
content()->add_override(L"/_rels/.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/word/_rels/document.xml.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/word/document.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml");
|
||||
content()->add_override(L"/word/settings.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml");
|
||||
content()->add_override(L"/word/styles.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml");
|
||||
content()->add_override(L"/word/fontTable.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml");
|
||||
//content()->add_override(L"/word/_rels/document.xml.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
//content()->add_override(L"/_rels/.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/docProps/app.xml", L"application/vnd.openxmlformats-officedocument.extended-properties+xml");
|
||||
content()->add_override(L"/docProps/core.xml", L"application/vnd.openxmlformats-package.core-properties+xml");
|
||||
}
|
||||
|
||||
@ -49,6 +49,8 @@ struct _rect
|
||||
|
||||
struct drawing_object_description
|
||||
{
|
||||
bool bNotes_;
|
||||
|
||||
oox::RelsType type_;
|
||||
|
||||
std::wstring name_;
|
||||
|
||||
@ -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,
|
||||
@ -166,8 +166,7 @@ std::wstring mediaitems::detectImageFileExtension(std::wstring &fileName)
|
||||
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, bool & isInternal, std::wstring & ref)
|
||||
{
|
||||
bool isMediaInternal = is_internal(href, odf_packet_);
|
||||
|
||||
bool isMediaInternal = true;
|
||||
std::wstring sub_path = L"media/";
|
||||
|
||||
std::wstring inputFileName;
|
||||
@ -175,10 +174,13 @@ std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, b
|
||||
{
|
||||
sub_path = L"charts/";
|
||||
}
|
||||
if ( type == typeMsObject || type == typeOleObject)
|
||||
else if ( type == typeMsObject || type == typeOleObject)
|
||||
{
|
||||
sub_path = L"embeddings/";
|
||||
}
|
||||
else
|
||||
isMediaInternal = is_internal(href, odf_packet_);
|
||||
|
||||
int number=0;
|
||||
|
||||
if ( type == typeChart) number = count_charts + 1;
|
||||
|
||||
@ -139,7 +139,7 @@ void oox_chart_series::setValues(int ind, std::vector<std::wstring> & values)
|
||||
if (ind == 0) values_[ind].strRef_.present = true;
|
||||
else values_[ind].numRef_.present = true;
|
||||
|
||||
for (int i = 0; i < values.size(); i++)
|
||||
for (size_t i = 0; i < values.size(); i++)
|
||||
{
|
||||
boost::algorithm::trim(values[i]);
|
||||
if (ind == 0)
|
||||
@ -240,7 +240,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].numRef_.num_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].numRef_.num_cache[j];
|
||||
|
||||
@ -275,7 +275,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
CP_XML_ATTR(L"val", values_[i].numRef_.num_cache_count);
|
||||
}
|
||||
|
||||
for (int j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].numRef_.num_cache[j];
|
||||
|
||||
@ -312,7 +312,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].strRef_.str_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].strRef_.str_cache[j];
|
||||
|
||||
@ -336,7 +336,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].strRef_.str_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].strRef_.str_cache[j];
|
||||
CP_XML_NODE(L"c:pt")
|
||||
@ -405,7 +405,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
}
|
||||
|
||||
bool bEmpty_dPt = true;
|
||||
for (int i = 0 ; i < content_.points_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.points_.size(); i++)
|
||||
{
|
||||
if (content_.points_[i].bEnabled)
|
||||
{
|
||||
@ -415,9 +415,9 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
}
|
||||
|
||||
int indPoint = 0;
|
||||
for (int i = 0 ; !bEmpty_dPt && i < content_.points_.size(); i++)
|
||||
for (size_t i = 0 ; !bEmpty_dPt && i < content_.points_.size(); i++)
|
||||
{
|
||||
for (int j = 0 ; j < content_.points_[i].repeated_; j++)
|
||||
for (size_t j = 0 ; j < content_.points_[i].repeated_; j++)
|
||||
{
|
||||
CP_XML_NODE(L"c:dPt")
|
||||
{
|
||||
|
||||
@ -144,7 +144,8 @@ void styles_context::docx_serialize_table_style(std::wostream & strm, std::wstri
|
||||
}
|
||||
namespace oox
|
||||
{
|
||||
math_context::math_context(odf_reader::fonts_container & fonts, bool graphic) : base_font_size_(12), fonts_container_(fonts)
|
||||
math_context::math_context(odf_reader::fonts_container & fonts, bool graphic) :
|
||||
base_font_size_(12), fonts_container_(fonts)
|
||||
{
|
||||
graphRPR_ = graphic;
|
||||
|
||||
|
||||
@ -35,9 +35,65 @@
|
||||
#include "oox_drawing.h"
|
||||
#include <cpdoccore/xml/simple_xml_writer.h>
|
||||
|
||||
#include "../odf/svg_parser.h"
|
||||
#include "../odf/datatypes/custom_shape_types_convert.h"
|
||||
|
||||
using namespace cpdoccore;
|
||||
|
||||
namespace svg_path
|
||||
{
|
||||
void oox_serialize(std::wostream & strm, std::vector<_polyline> & path)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
for (size_t i = 0; i < path.size(); i++)
|
||||
{
|
||||
oox_serialize(strm, path[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize(std::wostream & strm, _polyline & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(val.command)
|
||||
{
|
||||
if (val.command == L"a:ArcTo")
|
||||
{
|
||||
if (val.points.size() > 0)
|
||||
{
|
||||
CP_XML_ATTR(L"wR", (int)(val.points[0].x.get()));
|
||||
CP_XML_ATTR(L"hR", (int)(val.points[0].y.get()));
|
||||
}
|
||||
if (val.points.size() > 1)
|
||||
{
|
||||
CP_XML_ATTR(L"stAng", (int)(val.points[1].x.get() * 60000));
|
||||
CP_XML_ATTR(L"swAng", (int)(val.points[1].y.get() * 60000));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < val.points.size(); i++)
|
||||
{
|
||||
oox_serialize(CP_XML_STREAM(), val.points[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize(std::wostream & strm, _point & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pt")
|
||||
{
|
||||
if (val.x)CP_XML_ATTR(L"x", (int)(val.x.get()));
|
||||
if (val.y)CP_XML_ATTR(L"y", (int)(val.y.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
static const std::wstring _ooxShapeType[]=
|
||||
@ -53,41 +109,6 @@ static const std::wstring _ooxShapeType[]=
|
||||
L"polygon",
|
||||
};
|
||||
|
||||
void svg_path::oox_serialize(std::wostream & strm, std::vector<svg_path::_polyline> & path)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
BOOST_FOREACH(svg_path::_polyline & p, path)
|
||||
{
|
||||
oox_serialize(strm, p);
|
||||
}
|
||||
}
|
||||
}
|
||||
void svg_path::oox_serialize(std::wostream & strm, svg_path::_polyline const & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(val.command)
|
||||
{
|
||||
BOOST_FOREACH(svg_path::_point const & p, val.points)
|
||||
{
|
||||
oox_serialize(CP_XML_STREAM(), p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void svg_path::oox_serialize(std::wostream & strm, svg_path::_point const & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pt")
|
||||
{
|
||||
if (val.x)CP_XML_ATTR(L"x", (int)(val.x.get()));
|
||||
if (val.y)CP_XML_ATTR(L"y", (int)(val.y.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace oox {
|
||||
|
||||
@ -107,7 +128,7 @@ void oox_serialize_ln(std::wostream & strm, const std::vector<odf_reader::_prope
|
||||
_CP_OPT(std::wstring) strStrokeColor;
|
||||
_CP_OPT(int) iStroke;
|
||||
_CP_OPT(double) dStrokeWidth;
|
||||
_CP_OPT(double) dStrokeOpacity;
|
||||
_CP_OPT(double) dStrokeOpacity;
|
||||
_CP_OPT(bool) bWordArt;
|
||||
|
||||
odf_reader::GetProperty(prop, L"wordArt", bWordArt);
|
||||
@ -146,15 +167,23 @@ void oox_serialize_ln(std::wostream & strm, const std::vector<odf_reader::_prope
|
||||
{
|
||||
if (fill != L"a:noFill")
|
||||
{
|
||||
if (color.length() < 1 && always_draw) color = L"000000";
|
||||
else if (color.length() <1 ) color = L"ffffff";
|
||||
if ( color.empty() )
|
||||
{
|
||||
if (always_draw) color = L"000000";
|
||||
else color = L"ffffff";
|
||||
}
|
||||
|
||||
CP_XML_NODE(L"a:srgbClr")
|
||||
{
|
||||
CP_XML_ATTR(L"val",color);
|
||||
|
||||
if (dStrokeOpacity) CP_XML_NODE(L"a:alpha"){CP_XML_ATTR(L"val", *dStrokeOpacity);}
|
||||
|
||||
if (dStrokeOpacity)
|
||||
{
|
||||
CP_XML_NODE(L"a:alpha")
|
||||
{
|
||||
CP_XML_ATTR(L"val", (int)(*dStrokeOpacity * 1000));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -182,69 +211,33 @@ void oox_serialize_ln(std::wostream & strm, const std::vector<odf_reader::_prope
|
||||
}
|
||||
void oox_serialize_aLst(std::wostream & strm, const std::vector<odf_reader::_property> & prop)
|
||||
{
|
||||
_CP_OPT(int) iShapeIndex;
|
||||
_CP_OPT(bool) bWordArt;
|
||||
|
||||
odf_reader::GetProperty(prop, L"wordArt" , bWordArt);
|
||||
odf_reader::GetProperty(prop, L"odf-custom-draw-index" , iShapeIndex);
|
||||
|
||||
int count_values = 0, min_value = 0, max_value = 0;
|
||||
|
||||
if (!bWordArt && iShapeIndex)
|
||||
{
|
||||
count_values = _OO_OOX_custom_shapes[*iShapeIndex].count_values;
|
||||
min_value = _OO_OOX_custom_shapes[*iShapeIndex].min;
|
||||
max_value = _OO_OOX_custom_shapes[*iShapeIndex].max;
|
||||
}
|
||||
else if (iShapeIndex)
|
||||
{
|
||||
count_values = _OO_OOX_wordart[*iShapeIndex].count_values;
|
||||
min_value = _OO_OOX_wordart[*iShapeIndex].min;
|
||||
max_value = _OO_OOX_wordart[*iShapeIndex].max;
|
||||
}
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:avLst")
|
||||
{
|
||||
_CP_OPT(std::wstring) strVal;
|
||||
if (odf_reader::GetProperty(prop,L"draw-modifiers",strVal) && iShapeIndex)
|
||||
_CP_OPT(bool) bModifiers;
|
||||
_CP_OPT(std::wstring) strModifiers;
|
||||
odf_reader::GetProperty(prop, L"bModifiers", bModifiers);
|
||||
odf_reader::GetProperty(prop, L"oox-draw-modifiers", strModifiers);
|
||||
if (strModifiers)
|
||||
{
|
||||
std::vector< std::wstring > values;
|
||||
boost::algorithm::split(values, strVal.get(), boost::algorithm::is_any_of(L" "), boost::algorithm::token_compress_on);
|
||||
boost::algorithm::split(values, strModifiers.get(), boost::algorithm::is_any_of(L" "), boost::algorithm::token_compress_on);
|
||||
|
||||
if( count_values >0 && values.size()>0 && count_values < 3)//временное ограниечение .. хз как там свойства путаются
|
||||
{//если не заданы доп свойства - нефиг мучится
|
||||
int i=1;
|
||||
if (!values.empty() && values.back().empty()) values.pop_back();
|
||||
|
||||
_CP_OPT(int) iMax,iMin;
|
||||
odf_reader::GetProperty(prop,L"draw-modifiers-min",iMin);
|
||||
odf_reader::GetProperty(prop,L"draw-modifiers-max",iMax);
|
||||
values.resize(count_values);
|
||||
|
||||
BOOST_FOREACH(std::wstring & v, values)
|
||||
for (size_t i = 0; i < values.size(); i++)
|
||||
{
|
||||
if (values[i].empty()) continue;
|
||||
CP_XML_NODE(L"a:gd")
|
||||
{
|
||||
CP_XML_NODE(L"a:gd")
|
||||
{
|
||||
if (values.size() >1)
|
||||
CP_XML_ATTR(L"name",(L"adj" + boost::lexical_cast<std::wstring>(i++)));
|
||||
else
|
||||
CP_XML_ATTR(L"name",L"adj");
|
||||
double val=0;
|
||||
if (v.length()>0)val= boost::lexical_cast<double>(v);
|
||||
|
||||
if (iMin && iMax && iShapeIndex)
|
||||
{
|
||||
if (min_value < max_value)
|
||||
{
|
||||
double W = *iMax - *iMin;
|
||||
val = (val- (*iMin))/W * (max_value - min_value) + min_value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CP_XML_ATTR(L"fmla",L"val " + boost::lexical_cast<std::wstring>(static_cast<int>(val)));
|
||||
}
|
||||
if (values.size() > 1 || bModifiers)
|
||||
//весьма странное .. для некоторых модификаторов (напр math...) нужно указывать множественность их
|
||||
CP_XML_ATTR(L"name", L"adj" + std::to_wstring(i+1));
|
||||
else
|
||||
CP_XML_ATTR(L"name", L"adj");
|
||||
|
||||
CP_XML_ATTR(L"fmla", L"val " + values[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -337,37 +330,39 @@ void _oox_drawing::serialize_bodyPr(std::wostream & strm, const std::wstring & n
|
||||
|
||||
void _oox_drawing::serialize_shape(std::wostream & strm)
|
||||
{
|
||||
_CP_OPT(std::wstring) strVal;
|
||||
_CP_OPT(double) dVal;
|
||||
_CP_OPT(int) iOoxShapeIndex;
|
||||
_CP_OPT(bool) bWordArt, bOoxShape;
|
||||
_CP_OPT(std::wstring) sCustomPath;
|
||||
|
||||
odf_reader::GetProperty(additional, L"wordArt", bWordArt);
|
||||
odf_reader::GetProperty(additional, L"oox-geom-index", iOoxShapeIndex);
|
||||
odf_reader::GetProperty(additional, L"oox-geom", bOoxShape);
|
||||
|
||||
std::wstring shapeType;
|
||||
_CP_OPT(bool) bWordArt;
|
||||
|
||||
odf_reader::GetProperty(additional,L"wordArt", bWordArt);
|
||||
odf_reader::GetProperty(additional, L"custom_path", sCustomPath);
|
||||
|
||||
std::wstring shapeGeomPreset;
|
||||
|
||||
if (sub_type == 7)//custom
|
||||
{
|
||||
_CP_OPT(int) iVal;
|
||||
odf_reader::GetProperty(additional, L"odf-custom-draw-index",iVal);
|
||||
|
||||
if (iVal)
|
||||
shapeType = _OO_OOX_custom_shapes[*iVal].oox;
|
||||
else
|
||||
if (iOoxShapeIndex)
|
||||
shapeGeomPreset = _OO_OOX_custom_shapes[*iOoxShapeIndex].oox;
|
||||
else if (sCustomPath)
|
||||
sub_type = 6; //path
|
||||
|
||||
if (shapeType == L"textBox")
|
||||
if (shapeGeomPreset == L"textBox")
|
||||
{
|
||||
sub_type = 1;
|
||||
shapeType = L"rect";
|
||||
shapeGeomPreset = L"rect";
|
||||
}
|
||||
}
|
||||
else if (sub_type < 9 && sub_type >= 0)
|
||||
{
|
||||
shapeType = _ooxShapeType[sub_type];
|
||||
shapeGeomPreset = _ooxShapeType[sub_type]; //odf -> oox
|
||||
}
|
||||
|
||||
if (bWordArt) sub_type = 1;
|
||||
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
if (sub_type == 6 || sub_type == 8)
|
||||
@ -386,36 +381,44 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
|
||||
CP_XML_ATTR(L"t", 0);
|
||||
}
|
||||
//<a:rect b="b" l="0" r="r" t="0"/>
|
||||
if (odf_reader::GetProperty(additional, L"custom_path", strVal))
|
||||
{
|
||||
_CP_OPT(int) w, h;
|
||||
odf_reader::GetProperty(additional, L"custom_path_w", w);
|
||||
odf_reader::GetProperty(additional, L"custom_path_h", h);
|
||||
_CP_OPT(int) w, h;
|
||||
odf_reader::GetProperty(additional, L"custom_path_w", w);
|
||||
odf_reader::GetProperty(additional, L"custom_path_h", h);
|
||||
|
||||
CP_XML_NODE(L"a:pathLst")
|
||||
{
|
||||
CP_XML_NODE(L"a:path")
|
||||
{
|
||||
CP_XML_ATTR(L"w", w ? *w : cx);
|
||||
CP_XML_ATTR(L"h", h ? *h : cy);
|
||||
|
||||
CP_XML_STREAM() << strVal.get();
|
||||
|
||||
CP_XML_NODE(L"a:pathLst")
|
||||
{
|
||||
CP_XML_NODE(L"a:path")
|
||||
{
|
||||
CP_XML_ATTR(L"w", w ? *w : cx);
|
||||
CP_XML_ATTR(L"h", h ? *h : cy);
|
||||
|
||||
if (sCustomPath)
|
||||
{
|
||||
CP_XML_STREAM() << *sCustomPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (shapeType.length() < 1)
|
||||
if (shapeGeomPreset.empty())
|
||||
{
|
||||
shapeType = L"rect";
|
||||
sub_type = 2;
|
||||
shapeGeomPreset = L"rect";
|
||||
sub_type = 2;
|
||||
}
|
||||
CP_XML_NODE(L"a:prstGeom")//автофигура
|
||||
{
|
||||
CP_XML_ATTR(L"prst", shapeType);
|
||||
if (!bWordArt) oox_serialize_aLst(CP_XML_STREAM(), additional);
|
||||
CP_XML_ATTR(L"prst", shapeGeomPreset);
|
||||
if (!bWordArt)
|
||||
{
|
||||
if (std::wstring::npos != shapeGeomPreset.find(L"mathPlus"))
|
||||
{
|
||||
additional.push_back(odf_reader::_property(L"bModifiers", true));
|
||||
}
|
||||
oox_serialize_aLst(CP_XML_STREAM(), additional);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bWordArt)
|
||||
|
||||
@ -40,6 +40,8 @@
|
||||
#include "mediaitems.h"
|
||||
#include "oox_drawing_fills.h"
|
||||
|
||||
#include "../odf/svg_parser.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
@ -83,13 +85,19 @@ namespace oox {
|
||||
void serialize_shape (std::wostream & strm);
|
||||
void serialize_xfrm (std::wostream & strm, const std::wstring & namespace_ = L"a", bool always_position = false);
|
||||
void serialize_bodyPr (std::wostream & strm, const std::wstring & namespace_ = L"a");
|
||||
};
|
||||
|
||||
};
|
||||
typedef _CP_PTR(_oox_drawing) oox_drawing_ptr;
|
||||
|
||||
void oox_serialize_ln (std::wostream & strm, const std::vector<odf_reader::_property> & val, bool always_draw = false);
|
||||
void oox_serialize_aLst (std::wostream & strm, const std::vector<odf_reader::_property> & val);
|
||||
void oox_serialize_hlink (std::wostream & strm, const std::vector<_hlink_desc> & val);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
namespace svg_path
|
||||
{
|
||||
void oox_serialize (std::wostream & strm, _point & val);
|
||||
void oox_serialize (std::wostream & strm, _polyline & val);
|
||||
void oox_serialize (std::wostream & strm, std::vector<_polyline> & path);
|
||||
}
|
||||
@ -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;
|
||||
if (!val.opacity) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
if (val.opacity)
|
||||
{
|
||||
CP_XML_ATTR(L"opacity", (int)(*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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ void pptx_conversion_context::process_layouts()
|
||||
get_text_context().set_process_layouts(true);
|
||||
|
||||
//актуальные
|
||||
for (int layout_index =0; layout_index < layouts.content.size(); layout_index++)
|
||||
for (size_t layout_index =0; layout_index < layouts.content.size(); layout_index++)
|
||||
{
|
||||
start_layout(layout_index);
|
||||
|
||||
@ -116,23 +116,24 @@ void pptx_conversion_context::process_layouts()
|
||||
|
||||
if (master)
|
||||
{
|
||||
for (int i = 0; i < master->content_.size(); i++)
|
||||
for (size_t i = 0; i < master->content_.size(); i++)
|
||||
{
|
||||
odf_reader::office_element_ptr elm = master->content_[i];
|
||||
if (elm->get_type() == odf_reader::typeDrawFrame)
|
||||
odf_reader::draw_frame* frame = dynamic_cast<odf_reader::draw_frame*>(master->content_[i].get());
|
||||
if (frame)
|
||||
{
|
||||
odf_reader::draw_frame* frame = dynamic_cast<odf_reader::draw_frame *>(elm.get());
|
||||
|
||||
if ((frame) && (frame->common_presentation_attlist_.presentation_class_))
|
||||
odf_types::common_presentation_attlist &common_presentation_attlist_= frame->common_draw_attlists_.shape_with_text_and_styles_.common_presentation_attlist_;
|
||||
|
||||
if (common_presentation_attlist_.presentation_class_)
|
||||
{
|
||||
odf_types::presentation_class::type type = frame->common_presentation_attlist_.presentation_class_->get_type();
|
||||
odf_types::presentation_class::type type = common_presentation_attlist_.presentation_class_->get_type();
|
||||
|
||||
if (type==odf_types::presentation_class::footer ||
|
||||
type==odf_types::presentation_class::date_time ||
|
||||
type==odf_types::presentation_class::header ||
|
||||
type==odf_types::presentation_class::page_number)
|
||||
if (type == odf_types::presentation_class::footer ||
|
||||
type == odf_types::presentation_class::date_time ||
|
||||
type == odf_types::presentation_class::header ||
|
||||
type == odf_types::presentation_class::page_number)
|
||||
{
|
||||
if (frame->idx_in_owner <0)frame->idx_in_owner = last_idx_placeHolder++;
|
||||
if (frame->idx_in_owner < 0)
|
||||
frame->idx_in_owner = last_idx_placeHolder++;
|
||||
|
||||
frame->pptx_convert_placeHolder(*this);
|
||||
}
|
||||
@ -152,7 +153,9 @@ void pptx_conversion_context::process_master_pages()
|
||||
get_text_context().set_process_layouts(true);
|
||||
|
||||
//берем только актуальные
|
||||
for (int master_index =0; master_index < masters.content.size();master_index++)
|
||||
odf_reader::office_element_ptr master_notes_;
|
||||
|
||||
for (size_t master_index = 0; master_index < masters.content.size(); master_index++)
|
||||
{
|
||||
start_master(master_index);
|
||||
|
||||
@ -162,10 +165,21 @@ void pptx_conversion_context::process_master_pages()
|
||||
if (master)
|
||||
{
|
||||
master->pptx_convert(*this);
|
||||
|
||||
if (!master_notes_ && master->presentation_notes_)
|
||||
master_notes_ = master->presentation_notes_;
|
||||
}
|
||||
|
||||
|
||||
end_master();
|
||||
}
|
||||
|
||||
if (master_notes_)
|
||||
{
|
||||
start_master_notes();
|
||||
master_notes_->pptx_convert(*this);
|
||||
end_master_notes();
|
||||
}
|
||||
process_masters_ = false;
|
||||
get_text_context().set_process_layouts(false);
|
||||
|
||||
@ -179,15 +193,15 @@ void pptx_conversion_context::process_theme(std::wstring name)
|
||||
{
|
||||
int current = themes_.size() + 1;
|
||||
|
||||
if (name.length()<1)
|
||||
if (name.empty())
|
||||
{
|
||||
name = L"User Theme: " + boost::lexical_cast<std::wstring>(current);
|
||||
}
|
||||
start_theme(name);
|
||||
//
|
||||
pptx_serialize_clrScheme(current_theme().clrSchemeData());
|
||||
pptx_serialize_fmtScheme(current_theme().fmtSchemeData());
|
||||
pptx_serialize_fontScheme(current_theme().fontSchemeData());
|
||||
pptx_serialize_clrScheme (current_theme().clrSchemeData());
|
||||
pptx_serialize_fmtScheme (current_theme().fmtSchemeData());
|
||||
pptx_serialize_fontScheme (current_theme().fontSchemeData());
|
||||
//
|
||||
end_theme();
|
||||
|
||||
@ -208,9 +222,7 @@ void pptx_conversion_context::start_document()
|
||||
|
||||
void pptx_conversion_context::end_document()
|
||||
{
|
||||
unsigned int count = 1;
|
||||
|
||||
for (int i = 0; i < slideMasters_.size(); i++)
|
||||
for (size_t i = 0; i < slideMasters_.size(); i++)
|
||||
{
|
||||
pptx_xml_slideMaster_ptr& slideM = slideMasters_[i];
|
||||
|
||||
@ -229,11 +241,12 @@ void pptx_conversion_context::end_document()
|
||||
CP_XML_ATTR(L"r:id", slideM->rId());
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
if (!slideMasters_.empty())
|
||||
presentation_.slidesProperties() << slideMasters_[0]->Sizes().str();
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
count=0;
|
||||
for (int i = 0; i < slides_.size(); i++)
|
||||
for (size_t i = 0; i < slides_.size(); i++)
|
||||
{
|
||||
pptx_xml_slide_ptr& slide = slides_[i];
|
||||
|
||||
@ -248,14 +261,13 @@ void pptx_conversion_context::end_document()
|
||||
{
|
||||
CP_XML_NODE(L"p:sldId")
|
||||
{
|
||||
CP_XML_ATTR(L"id", 0x100 + count);
|
||||
CP_XML_ATTR(L"id", 0x100 + i);
|
||||
CP_XML_ATTR(L"r:id", slide->rId());
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
for (int i = 0; i < slideLayouts_.size(); i++)
|
||||
//----------------------------------------------------------------------------------
|
||||
for (size_t i = 0; i < slideLayouts_.size(); i++)
|
||||
{
|
||||
pptx_xml_slideLayout_ptr& slideL = slideLayouts_[i];
|
||||
|
||||
@ -266,30 +278,42 @@ void pptx_conversion_context::end_document()
|
||||
|
||||
output_document_->get_ppt_files().add_slideLayout(content);//slideMaster.xml
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//размеры страниц в презентации
|
||||
odf_reader::odf_read_context & context = root()->odf_context();
|
||||
odf_reader::page_layout_container & pageLayouts = context.pageLayoutContainer();
|
||||
|
||||
if ((pageLayouts.master_pages().size()>0) && (pageLayouts.master_pages()[0]->style_master_page_attlist_.style_name_))//default
|
||||
{
|
||||
const std::wstring masterStyleName = pageLayouts.master_pages()[0]->style_master_page_attlist_.style_name_->style_name();
|
||||
const std::wstring pageProperties = root()->odf_context().pageLayoutContainer().page_layout_name_by_style(masterStyleName);
|
||||
//----------------------------------------------------------------------------------
|
||||
for (size_t i = 0; i < notes_.size(); i++)
|
||||
{
|
||||
pptx_xml_slideNotes_ptr& slideN = notes_[i];
|
||||
|
||||
odf_reader::page_layout_instance *pages_layouts = root()->odf_context().pageLayoutContainer().page_layout_by_name(pageProperties);
|
||||
|
||||
if (pages_layouts)pages_layouts->pptx_convert(*this);
|
||||
package::slide_content_ptr content = package::slide_content::create();
|
||||
|
||||
slideN->write_to(content->content());
|
||||
content->add_rels(slideN->Rels());//media & links rels
|
||||
|
||||
output_document_->get_ppt_files().add_notes(content);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
pptx_serialize_size(current_presentation().notesSlidesSize(),6858000,9144000,L"p:notesSz");
|
||||
if (slideNotesMaster_)
|
||||
{
|
||||
package::slide_content_ptr content = package::slide_content::create();
|
||||
|
||||
slideNotesMaster_->write_to(content->content());
|
||||
content->add_rels(slideNotesMaster_->Rels());//media & links rels
|
||||
|
||||
output_document_->get_ppt_files().add_notesMaster(content);
|
||||
|
||||
CP_XML_WRITER(presentation_.slideNotesMastersData())//presentation.xml
|
||||
{
|
||||
CP_XML_NODE(L"p:notesMasterId")
|
||||
{
|
||||
CP_XML_ATTR(L"r:id", slideNotesMaster_->rId());
|
||||
}
|
||||
}
|
||||
}
|
||||
//else
|
||||
pptx_serialize_size(current_presentation().slidesNotesProperties(), 6858000, 9144000, L"p:notesSz");
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//добавляем диаграммы
|
||||
|
||||
count = 0;
|
||||
for (int i = 0; i < charts_.size(); i++)
|
||||
for (size_t i = 0; i < charts_.size(); i++)
|
||||
{
|
||||
count++;
|
||||
package::chart_content_ptr content = package::chart_content::create();
|
||||
|
||||
charts_[i]->serialize(content->content());
|
||||
@ -299,18 +323,17 @@ void pptx_conversion_context::end_document()
|
||||
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//добавляем темы
|
||||
for (int i=0; i < themes_.size();i++)
|
||||
for (size_t i=0; i < themes_.size(); i++)
|
||||
{
|
||||
output_document_->get_ppt_files().add_theme(themes_[i]);
|
||||
|
||||
}
|
||||
package::ppt_comments_files_ptr comments = package::ppt_comments_files::create(comments_context_handle_.content());
|
||||
|
||||
output_document_->get_ppt_files().set_presentation(presentation_);
|
||||
output_document_->get_ppt_files().set_comments(comments);
|
||||
output_document_->get_ppt_files().set_authors_comments(authors_comments_);
|
||||
output_document_->get_ppt_files().set_media(get_mediaitems(), applicationFonts_);
|
||||
output_document_->get_ppt_files().set_presentation (presentation_);
|
||||
output_document_->get_ppt_files().set_comments (comments);
|
||||
output_document_->get_ppt_files().set_authors_comments (authors_comments_);
|
||||
output_document_->get_ppt_files().set_media (get_mediaitems(), applicationFonts_);
|
||||
|
||||
output_document_->get_content_types_file().set_media(get_mediaitems());
|
||||
}
|
||||
@ -320,7 +343,28 @@ void pptx_conversion_context::start_body()
|
||||
|
||||
void pptx_conversion_context::end_body()
|
||||
{}
|
||||
|
||||
pptx_xml_slideNotesMaster & pptx_conversion_context::current_notesMaster()
|
||||
{
|
||||
if (slideNotesMaster_)
|
||||
{
|
||||
return *slideNotesMaster_;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("internal error");
|
||||
}
|
||||
}
|
||||
pptx_xml_slideNotes & pptx_conversion_context::current_notes()
|
||||
{
|
||||
if (!notes_.empty())
|
||||
{
|
||||
return *notes_.back().get();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("internal error");
|
||||
}
|
||||
}
|
||||
pptx_xml_slide & pptx_conversion_context::current_slide()
|
||||
{
|
||||
if (!slides_.empty())
|
||||
@ -383,9 +427,18 @@ pptx_xml_slideMaster & pptx_conversion_context::current_master()
|
||||
}
|
||||
void pptx_conversion_context::create_new_slide(std::wstring const & name)
|
||||
{
|
||||
pptx_xml_slide_ptr s = pptx_xml_slide::create(name,slides_.size()+1);
|
||||
pptx_xml_slide_ptr s = pptx_xml_slide::create(name,slides_.size() + 1);
|
||||
slides_.push_back(s);
|
||||
}
|
||||
void pptx_conversion_context::create_new_slideNotes()
|
||||
{
|
||||
pptx_xml_slideNotes_ptr s = pptx_xml_slideNotes::create( notes_.size() + 1);
|
||||
notes_.push_back(s);
|
||||
}
|
||||
void pptx_conversion_context::create_new_slideNotesMaster()
|
||||
{
|
||||
slideNotesMaster_ = pptx_xml_slideNotesMaster::create();
|
||||
}
|
||||
void pptx_conversion_context::create_new_slideLayout(int id)
|
||||
{
|
||||
pptx_xml_slideLayout_ptr s = pptx_xml_slideLayout::create(id);
|
||||
@ -396,7 +449,6 @@ void pptx_conversion_context::create_new_slideMaster(int id)
|
||||
pptx_xml_slideMaster_ptr s = pptx_xml_slideMaster::create(id);
|
||||
slideMasters_.push_back(s);
|
||||
}
|
||||
|
||||
bool pptx_conversion_context::start_page(const std::wstring & pageName, const std::wstring & pageStyleName,
|
||||
const std::wstring & pageLayoutName,
|
||||
const std::wstring & pageMasterName)
|
||||
@ -413,7 +465,7 @@ bool pptx_conversion_context::start_page(const std::wstring & pageName, const st
|
||||
root()->odf_context().styleContainer().presentation_layouts().add_or_find(pageLayoutName,pageMasterName);
|
||||
|
||||
current_slide().Rels().add(relationship(layout_id.second, L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
|
||||
std::wstring(L"../slideLayouts/slideLayout") + boost::lexical_cast<std::wstring>(layout_id.first) + L".xml"));
|
||||
std::wstring(L"../slideLayouts/slideLayout") + std::to_wstring(layout_id.first) + L".xml"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -500,11 +552,19 @@ bool pptx_conversion_context::start_master(int master_index)
|
||||
process_theme(masters.content[master_index].master_name);//add default theme - одинаковые но под разными именами
|
||||
current_master().add_theme(current_theme().id(), L"tId1");
|
||||
|
||||
for (long i=0;i<masters.content[master_index].layouts.size();i++)
|
||||
for (size_t i = 0; i < masters.content[master_index].layouts.size(); i++)
|
||||
{
|
||||
current_master().add_layout(masters.content[master_index].layouts[i].Id, masters.content[master_index].layouts[i].rId, 0x80000000 + last_uniq_big_id++);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
//размеры страниц в презентации
|
||||
const std::wstring pageProperties = root()->odf_context().pageLayoutContainer().page_layout_name_by_style(masters.content[master_index].master_name);
|
||||
|
||||
odf_reader::page_layout_instance *pages_layouts = root()->odf_context().pageLayoutContainer().page_layout_by_name(pageProperties);
|
||||
|
||||
if (pages_layouts)
|
||||
pages_layouts->pptx_serialize(current_master().Sizes(), *this);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -529,6 +589,59 @@ void pptx_conversion_context::end_page()
|
||||
|
||||
get_slide_context().end_slide();
|
||||
}
|
||||
bool pptx_conversion_context::start_page_notes()
|
||||
{
|
||||
create_new_slideNotes( );
|
||||
|
||||
current_slide().Rels().add(relationship(notes_.back()->rId(), L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide",
|
||||
L"../notesSlides/notesSlide" + std::to_wstring(notes_.size()) + L".xml"));
|
||||
|
||||
get_slide_context().start_slide();
|
||||
|
||||
current_notes().Rels().add(relationship(L"nId1", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
|
||||
L"../slides/slide" + std::to_wstring(slides_.size()) + L".xml"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void pptx_conversion_context::end_page_notes()
|
||||
{
|
||||
get_slide_context().serialize_background(current_notes().Background());
|
||||
get_slide_context().serialize_objects(current_notes().Data());
|
||||
|
||||
get_slide_context().dump_rels(current_notes().Rels());//hyperlinks, mediaitems, ...
|
||||
|
||||
get_slide_context().end_slide();
|
||||
}
|
||||
bool pptx_conversion_context::start_master_notes()
|
||||
{
|
||||
create_new_slideNotesMaster( );
|
||||
|
||||
get_slide_context().start_slide();
|
||||
|
||||
process_theme(L"");//add default theme - одинаковые но под разными именами
|
||||
current_notesMaster().add_theme(current_theme().id(), L"tId1");
|
||||
|
||||
get_slide_context().start_slide();
|
||||
return true;
|
||||
}
|
||||
|
||||
void pptx_conversion_context::end_master_notes()
|
||||
{
|
||||
get_slide_context().serialize_background(current_notesMaster().Background());
|
||||
get_slide_context().serialize_objects(current_notesMaster().Data());
|
||||
|
||||
get_slide_context().dump_rels(current_notesMaster().Rels());//hyperlinks, mediaitems, ...
|
||||
|
||||
get_slide_context().end_slide();
|
||||
|
||||
for (size_t i = 0; i < notes_.size(); i++)
|
||||
{
|
||||
notes_[i]->Rels().add(relationship(L"nmId1",
|
||||
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster",
|
||||
L"../notesMasters/notesMaster1.xml"));
|
||||
}
|
||||
}
|
||||
void pptx_conversion_context::end_layout()
|
||||
{
|
||||
get_slide_context().serialize_objects(current_layout().Data());
|
||||
|
||||
@ -88,6 +88,12 @@ public:
|
||||
const std::wstring & pageMasterName);
|
||||
void end_page();
|
||||
|
||||
bool start_page_notes();
|
||||
void end_page_notes();
|
||||
|
||||
bool start_master_notes();
|
||||
void end_master_notes();
|
||||
|
||||
bool start_layout( int layout_index);
|
||||
void end_layout();
|
||||
|
||||
@ -107,10 +113,13 @@ public:
|
||||
return odf_document_;
|
||||
}
|
||||
|
||||
pptx_xml_slide & current_slide();
|
||||
pptx_xml_slideLayout & current_layout();
|
||||
pptx_xml_slideMaster & current_master();
|
||||
pptx_xml_theme & current_theme();
|
||||
pptx_xml_slide & current_slide();
|
||||
pptx_xml_slideLayout & current_layout();
|
||||
pptx_xml_slideMaster & current_master();
|
||||
pptx_xml_theme & current_theme();
|
||||
pptx_xml_slideNotes & current_notes();
|
||||
pptx_xml_slideNotesMaster & current_notesMaster();
|
||||
|
||||
pptx_xml_presentation & current_presentation();//собственно она одна
|
||||
|
||||
oox_chart_context & current_chart();
|
||||
@ -138,6 +147,8 @@ private:
|
||||
void create_new_slide(std::wstring const & name);
|
||||
void create_new_slideLayout(int id);
|
||||
void create_new_slideMaster(int id);
|
||||
void create_new_slideNotes();
|
||||
void create_new_slideNotesMaster();
|
||||
|
||||
package::pptx_document * output_document_;
|
||||
odf_reader::odf_document * odf_document_;
|
||||
@ -152,10 +163,12 @@ private:
|
||||
std::vector<oox_chart_context_ptr> charts_;
|
||||
|
||||
std::vector<pptx_xml_slide_ptr> slides_;
|
||||
std::vector<pptx_xml_slideNotes_ptr> notes_;
|
||||
std::vector<pptx_xml_slideMaster_ptr> slideMasters_;
|
||||
std::vector<pptx_xml_slideLayout_ptr> slideLayouts_;
|
||||
std::vector<pptx_xml_theme_ptr> themes_;
|
||||
|
||||
pptx_xml_slideNotesMaster_ptr slideNotesMaster_;
|
||||
pptx_xml_authors_comments_ptr authors_comments_;
|
||||
pptx_xml_presentation presentation_;
|
||||
|
||||
|
||||
@ -155,8 +155,11 @@ void pptx_serialize_shape(std::wostream & strm, _pptx_drawing & val)
|
||||
odf_reader::GetProperty(val.additional,L"no_rect",bNoRect);
|
||||
|
||||
if (!bNoRect)
|
||||
{
|
||||
val.serialize_xfrm(CP_XML_STREAM(), L"a", true);
|
||||
{
|
||||
if (val.cx != 0 || val.cy != 0) //layout
|
||||
{
|
||||
val.serialize_xfrm(CP_XML_STREAM(), L"a", true);
|
||||
}
|
||||
val.serialize_shape(CP_XML_STREAM());
|
||||
|
||||
oox_serialize_ln(CP_XML_STREAM(), val.additional);
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
namespace cpdoccore {
|
||||
namespace oox {
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
std::wstring pptx_xml_slide::name() const
|
||||
{
|
||||
return name_;
|
||||
@ -53,7 +53,7 @@ std::wstring pptx_xml_slide::rId() const
|
||||
|
||||
pptx_xml_slide_ptr pptx_xml_slide::create(std::wstring const & name,int id)
|
||||
{
|
||||
const std::wstring rId = std::wstring(L"sId") + boost::lexical_cast<std::wstring>(id);
|
||||
const std::wstring rId = std::wstring(L"sId") + std::to_wstring(id);
|
||||
return boost::make_shared<pptx_xml_slide>(name,rId);
|
||||
}
|
||||
|
||||
@ -68,15 +68,15 @@ pptx_xml_slide::~pptx_xml_slide()
|
||||
}
|
||||
std::wostream & pptx_xml_slide::Data()
|
||||
{
|
||||
return slideData_;
|
||||
return strmData_;
|
||||
}
|
||||
std::wostream & pptx_xml_slide::Background()
|
||||
{
|
||||
return slideBackground_;
|
||||
return strmBackground_;
|
||||
}
|
||||
std::wostream & pptx_xml_slide::Timing()
|
||||
{
|
||||
return slideTiming_;
|
||||
return strmTiming_;
|
||||
}
|
||||
rels & pptx_xml_slide::Rels()
|
||||
{
|
||||
@ -100,14 +100,14 @@ void pptx_xml_slide::write_to(std::wostream & strm)
|
||||
{
|
||||
CP_XML_ATTR(L"name", name());
|
||||
|
||||
CP_XML_STREAM() << slideBackground_.str();
|
||||
CP_XML_STREAM() << strmBackground_.str();
|
||||
|
||||
CP_XML_NODE(L"p:spTree")
|
||||
{
|
||||
CP_XML_STREAM() << slideData_.str();
|
||||
CP_XML_STREAM() << strmData_.str();
|
||||
}
|
||||
}
|
||||
CP_XML_STREAM() << slideTiming_.str();
|
||||
CP_XML_STREAM() << strmTiming_.str();
|
||||
CP_XML_NODE(L"p:clrMapOvr")
|
||||
{
|
||||
CP_XML_NODE(L"a:masterClrMapping");
|
||||
@ -115,7 +115,7 @@ void pptx_xml_slide::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
std::wstring pptx_xml_slideLayout::rId() const
|
||||
{
|
||||
return rId_;
|
||||
@ -123,7 +123,7 @@ std::wstring pptx_xml_slideLayout::rId() const
|
||||
|
||||
pptx_xml_slideLayout_ptr pptx_xml_slideLayout::create(int id)
|
||||
{
|
||||
const std::wstring rId = std::wstring(L"lrId") + boost::lexical_cast<std::wstring>(id);
|
||||
const std::wstring rId = std::wstring(L"lrId") + std::to_wstring(id);
|
||||
return boost::make_shared<pptx_xml_slideLayout>(rId);
|
||||
}
|
||||
|
||||
@ -137,7 +137,7 @@ pptx_xml_slideLayout::~pptx_xml_slideLayout()
|
||||
}
|
||||
std::wostream & pptx_xml_slideLayout::Data()
|
||||
{
|
||||
return slideLayoutData_;
|
||||
return strmData_;
|
||||
}
|
||||
rels & pptx_xml_slideLayout::Rels()
|
||||
{
|
||||
@ -166,7 +166,7 @@ void pptx_xml_slideLayout::write_to(std::wostream & strm)
|
||||
{
|
||||
CP_XML_NODE(L"p:spTree")
|
||||
{
|
||||
CP_XML_STREAM() << slideLayoutData_.str();
|
||||
CP_XML_STREAM() << strmData_.str();
|
||||
|
||||
//в slideLayoutData_
|
||||
//contentPart (Content Part) §19.3.1.14
|
||||
@ -189,7 +189,7 @@ void pptx_xml_slideLayout::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
std::wstring pptx_xml_slideMaster::rId() const
|
||||
{
|
||||
return rId_;
|
||||
@ -197,7 +197,7 @@ std::wstring pptx_xml_slideMaster::rId() const
|
||||
|
||||
pptx_xml_slideMaster_ptr pptx_xml_slideMaster::create(int id)
|
||||
{
|
||||
const std::wstring rId = std::wstring(L"smId") + boost::lexical_cast<std::wstring>(id);
|
||||
const std::wstring rId = std::wstring(L"smId") + std::to_wstring(id);
|
||||
return boost::make_shared<pptx_xml_slideMaster>(rId,id);
|
||||
}
|
||||
|
||||
@ -212,15 +212,19 @@ pptx_xml_slideMaster::~pptx_xml_slideMaster()
|
||||
}
|
||||
std::wostream & pptx_xml_slideMaster::Data()
|
||||
{
|
||||
return slideMasterData_;
|
||||
return strmData_;
|
||||
}
|
||||
std::wostream & pptx_xml_slideMaster::DataExtra()
|
||||
{
|
||||
return slideMasterDataExtra_;
|
||||
return strmDataExtra_;
|
||||
}
|
||||
std::wostream & pptx_xml_slideMaster::Background()
|
||||
{
|
||||
return slideMasterBackground_;
|
||||
return strmBackground_;
|
||||
}
|
||||
std::wstringstream & pptx_xml_slideMaster::Sizes()
|
||||
{
|
||||
return strmSizes_;
|
||||
}
|
||||
rels & pptx_xml_slideMaster::Rels()
|
||||
{
|
||||
@ -229,7 +233,7 @@ rels & pptx_xml_slideMaster::Rels()
|
||||
void pptx_xml_slideMaster::add_theme(int id, const std::wstring & tId)
|
||||
{
|
||||
rels_.add(relationship( tId, L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
|
||||
std::wstring(L"../theme/theme") + boost::lexical_cast<std::wstring>(id) + L".xml"));
|
||||
std::wstring(L"../theme/theme") + std::to_wstring(id) + L".xml"));
|
||||
}
|
||||
|
||||
void pptx_xml_slideMaster::add_layout(int id, const std::wstring & rId, const unsigned int & uniqId)
|
||||
@ -237,7 +241,7 @@ void pptx_xml_slideMaster::add_layout(int id, const std::wstring & rId, const un
|
||||
layoutsId_.push_back(std::pair<std::wstring, unsigned int>(rId, uniqId));
|
||||
|
||||
rels_.add(relationship( rId,L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
|
||||
std::wstring(L"../slideLayouts/slideLayout") + boost::lexical_cast<std::wstring>(id) + L".xml"));
|
||||
std::wstring(L"../slideLayouts/slideLayout") + std::to_wstring(id) + L".xml"));
|
||||
}
|
||||
|
||||
void pptx_xml_slideMaster::write_to(std::wostream & strm)
|
||||
@ -255,11 +259,11 @@ void pptx_xml_slideMaster::write_to(std::wostream & strm)
|
||||
|
||||
CP_XML_NODE(L"p:cSld")
|
||||
{
|
||||
CP_XML_STREAM() << slideMasterBackground_.str();
|
||||
CP_XML_STREAM() << strmBackground_.str();
|
||||
|
||||
CP_XML_NODE(L"p:spTree")
|
||||
{
|
||||
CP_XML_STREAM() << slideMasterData_.str();
|
||||
CP_XML_STREAM() << strmData_.str();
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"p:clrMap")
|
||||
@ -288,7 +292,7 @@ void pptx_xml_slideMaster::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
CP_XML_STREAM() << slideMasterDataExtra_.str();
|
||||
CP_XML_STREAM() << strmDataExtra_.str();
|
||||
CP_XML_NODE(L"p:txStyles")
|
||||
{
|
||||
CP_XML_NODE(L"p:titleStyle");
|
||||
@ -299,6 +303,7 @@ void pptx_xml_slideMaster::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
pptx_xml_theme_ptr pptx_xml_theme::create(std::wstring const & name,int id)
|
||||
{
|
||||
return boost::make_shared<pptx_xml_theme>(name,id);
|
||||
@ -336,6 +341,7 @@ void pptx_xml_theme::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
pptx_xml_authors_comments_ptr pptx_xml_authors_comments::create()
|
||||
{
|
||||
return boost::make_shared<pptx_xml_authors_comments>();
|
||||
@ -399,6 +405,7 @@ void pptx_xml_authors_comments::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
void pptx_xml_presentation::write_to(std::wostream & strm)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
@ -412,14 +419,18 @@ void pptx_xml_presentation::write_to(std::wostream & strm)
|
||||
CP_XML_NODE(L"p:sldMasterIdLst")
|
||||
{
|
||||
CP_XML_STREAM() << slideMastersData_.str();
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"p:notesMasterIdLst")
|
||||
{
|
||||
CP_XML_STREAM() << slideNotesMastersData_.str();
|
||||
}
|
||||
CP_XML_NODE(L"p:sldIdLst")
|
||||
{
|
||||
CP_XML_STREAM() << slidesData_.str();
|
||||
}
|
||||
CP_XML_STREAM() << slidesProperties_.str();
|
||||
|
||||
CP_XML_STREAM() << notesSlidesSize_.str();
|
||||
CP_XML_STREAM() << slidesNotesProperties_.str();
|
||||
|
||||
CP_XML_NODE(L"p:defaultTextStyle")//??
|
||||
{
|
||||
@ -428,5 +439,155 @@ void pptx_xml_presentation::write_to(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
std::wstring pptx_xml_slideNotes::rId() const
|
||||
{
|
||||
return rId_;
|
||||
}
|
||||
|
||||
pptx_xml_slideNotes_ptr pptx_xml_slideNotes::create(int id)
|
||||
{
|
||||
const std::wstring rId = std::wstring(L"nId") + std::to_wstring(id);
|
||||
return boost::make_shared<pptx_xml_slideNotes>(rId);
|
||||
}
|
||||
|
||||
pptx_xml_slideNotes::pptx_xml_slideNotes(std::wstring const & id)
|
||||
{
|
||||
rId_ = id;
|
||||
}
|
||||
|
||||
pptx_xml_slideNotes::~pptx_xml_slideNotes()
|
||||
{
|
||||
}
|
||||
std::wostream & pptx_xml_slideNotes::Data()
|
||||
{
|
||||
return strmData_;
|
||||
}
|
||||
std::wostream & pptx_xml_slideNotes::Background()
|
||||
{
|
||||
return strmBackground_;
|
||||
}
|
||||
|
||||
rels & pptx_xml_slideNotes::Rels()
|
||||
{
|
||||
return rels_;
|
||||
}
|
||||
|
||||
void pptx_xml_slideNotes::write_to(std::wostream & strm)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"p:notes")
|
||||
{
|
||||
CP_XML_ATTR(L"xmlns:a", L"http://schemas.openxmlformats.org/drawingml/2006/main");
|
||||
CP_XML_ATTR(L"xmlns:p", L"http://schemas.openxmlformats.org/presentationml/2006/main");
|
||||
CP_XML_ATTR(L"xmlns:r", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships");
|
||||
CP_XML_ATTR(L"xmlns:p14", L"http://schemas.microsoft.com/office/powerpoint/2010/main");
|
||||
CP_XML_ATTR(L"xmlns:p15", L"http://schemas.microsoft.com/office/powerpoint/2012/main");
|
||||
CP_XML_ATTR(L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006");
|
||||
|
||||
CP_XML_NODE(L"p:cSld")
|
||||
{
|
||||
CP_XML_STREAM() << strmBackground_.str();
|
||||
|
||||
CP_XML_NODE(L"p:spTree")
|
||||
{
|
||||
CP_XML_STREAM() << strmData_.str();
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"p:clrMapOvr")
|
||||
{
|
||||
CP_XML_NODE(L"a:masterClrMapping");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
std::wstring pptx_xml_slideNotesMaster::rId() const
|
||||
{
|
||||
return rId_;
|
||||
}
|
||||
|
||||
pptx_xml_slideNotesMaster_ptr pptx_xml_slideNotesMaster::create()
|
||||
{
|
||||
const std::wstring rId = std::wstring(L"nmId1");
|
||||
return boost::make_shared<pptx_xml_slideNotesMaster>(rId, 1);
|
||||
}
|
||||
|
||||
pptx_xml_slideNotesMaster::pptx_xml_slideNotesMaster(std::wstring const & rId, int id)
|
||||
{
|
||||
rId_ = rId;
|
||||
id_ = id;
|
||||
}
|
||||
|
||||
pptx_xml_slideNotesMaster::~pptx_xml_slideNotesMaster()
|
||||
{
|
||||
}
|
||||
std::wostream & pptx_xml_slideNotesMaster::Data()
|
||||
{
|
||||
return strmData_;
|
||||
}
|
||||
std::wostream & pptx_xml_slideNotesMaster::Background()
|
||||
{
|
||||
return strmBackground_;
|
||||
}
|
||||
std::wostream & pptx_xml_slideNotesMaster::Sizes()
|
||||
{
|
||||
return strmSizes_;
|
||||
}
|
||||
rels & pptx_xml_slideNotesMaster::Rels()
|
||||
{
|
||||
return rels_;
|
||||
}
|
||||
void pptx_xml_slideNotesMaster::add_theme(int id, const std::wstring & tId)
|
||||
{
|
||||
rels_.add(relationship( tId, L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
|
||||
std::wstring(L"../theme/theme") + std::to_wstring(id) + L".xml"));
|
||||
}
|
||||
|
||||
void pptx_xml_slideNotesMaster::write_to(std::wostream & strm)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"p:notesMaster")
|
||||
{
|
||||
CP_XML_ATTR(L"xmlns:a", L"http://schemas.openxmlformats.org/drawingml/2006/main");
|
||||
CP_XML_ATTR(L"xmlns:p", L"http://schemas.openxmlformats.org/presentationml/2006/main");
|
||||
CP_XML_ATTR(L"xmlns:r", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships");
|
||||
CP_XML_ATTR(L"xmlns:p14", L"http://schemas.microsoft.com/office/powerpoint/2010/main");
|
||||
CP_XML_ATTR(L"xmlns:p15", L"http://schemas.microsoft.com/office/powerpoint/2012/main");
|
||||
CP_XML_ATTR(L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006");
|
||||
|
||||
CP_XML_NODE(L"p:cSld")
|
||||
{
|
||||
CP_XML_STREAM() << strmBackground_.str();
|
||||
|
||||
CP_XML_NODE(L"p:spTree")
|
||||
{
|
||||
CP_XML_STREAM() << strmData_.str();
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"p:clrMap")
|
||||
{
|
||||
CP_XML_ATTR(L"folHlink",L"folHlink");
|
||||
CP_XML_ATTR(L"hlink",L"hlink");
|
||||
CP_XML_ATTR(L"accent6",L"accent6");
|
||||
CP_XML_ATTR(L"accent5",L"accent5");
|
||||
CP_XML_ATTR(L"accent4",L"accent4");
|
||||
CP_XML_ATTR(L"accent3",L"accent5");
|
||||
CP_XML_ATTR(L"accent2",L"accent2");
|
||||
CP_XML_ATTR(L"accent1",L"accent1");
|
||||
CP_XML_ATTR(L"tx2",L"dk2");
|
||||
CP_XML_ATTR(L"tx1",L"dk1");
|
||||
CP_XML_ATTR(L"bg2",L"lt2");
|
||||
CP_XML_ATTR(L"bg1",L"lt1");
|
||||
}
|
||||
CP_XML_NODE(L"p:notesStyle")
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ class pptx_xml_slide: noncopyable
|
||||
public:
|
||||
pptx_xml_slide(std::wstring const & name,std::wstring const & id);
|
||||
~pptx_xml_slide();
|
||||
public:
|
||||
|
||||
std::wstring name() const;
|
||||
std::wstring rId() const;
|
||||
|
||||
@ -65,41 +65,68 @@ public:
|
||||
|
||||
private:
|
||||
std::wstring name_;
|
||||
std::wstringstream slideData_;
|
||||
std::wstringstream slideBackground_;
|
||||
std::wstringstream slideTiming_;
|
||||
std::wstringstream strmData_;
|
||||
std::wstringstream strmBackground_;
|
||||
std::wstringstream strmTiming_;
|
||||
std::wstring rId_;
|
||||
|
||||
rels rels_;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_slideNotes;
|
||||
typedef _CP_PTR(pptx_xml_slideNotes) pptx_xml_slideNotes_ptr;
|
||||
|
||||
class pptx_xml_slideNotes: noncopyable
|
||||
{
|
||||
public:
|
||||
pptx_xml_slideNotes(std::wstring const & id);
|
||||
~pptx_xml_slideNotes();
|
||||
|
||||
std::wstring rId() const;
|
||||
|
||||
std::wostream & Data();
|
||||
std::wostream & Background();
|
||||
|
||||
rels & Rels();
|
||||
|
||||
void write_to(std::wostream & strm);
|
||||
|
||||
static pptx_xml_slideNotes_ptr create(int id);
|
||||
|
||||
private:
|
||||
std::wstringstream strmData_;
|
||||
std::wstringstream strmBackground_;
|
||||
std::wstring rId_;
|
||||
|
||||
rels rels_;
|
||||
};
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_presentation: noncopyable
|
||||
{
|
||||
public:
|
||||
pptx_xml_presentation(){}
|
||||
~pptx_xml_presentation(){}
|
||||
|
||||
std::wstringstream & slidesData(){return slidesData_;}
|
||||
std::wstringstream & slideMastersData(){return slideMastersData_;}
|
||||
std::wstringstream & notesSlidesData(){return notesSlidesData_;}
|
||||
std::wstringstream & slidesData() {return slidesData_;}
|
||||
std::wstringstream & slideMastersData() {return slideMastersData_;}
|
||||
std::wstringstream & slideNotesMastersData() {return slideNotesMastersData_;}
|
||||
|
||||
std::wstringstream & slidesProperties(){return slidesProperties_;}
|
||||
std::wstringstream & notesSlidesSize(){return notesSlidesSize_;}
|
||||
std::wstringstream & slidesProperties() {return slidesProperties_;}
|
||||
std::wstringstream & slidesNotesProperties() {return slidesNotesProperties_;}
|
||||
|
||||
void write_to(std::wostream & strm);
|
||||
|
||||
private:
|
||||
std::wstringstream slidesProperties_;
|
||||
std::wstringstream notesSlidesSize_;
|
||||
|
||||
std::wstringstream slidesNotesProperties_;
|
||||
|
||||
std::wstringstream slidesData_;
|
||||
std::wstringstream slideMastersData_;
|
||||
std::wstringstream notesSlidesData_;
|
||||
std::wstringstream handoutMasterData_;
|
||||
std::wstringstream slideNotesMastersData_;
|
||||
std::wstringstream slideHandoutMasterData_;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_slideLayout;
|
||||
typedef _CP_PTR(pptx_xml_slideLayout) pptx_xml_slideLayout_ptr;
|
||||
|
||||
@ -121,12 +148,12 @@ public:
|
||||
static pptx_xml_slideLayout_ptr create(int id);
|
||||
|
||||
private:
|
||||
std::wstringstream slideLayoutData_;
|
||||
std::wstringstream strmData_;
|
||||
std::wstring rId_;
|
||||
|
||||
rels rels_;
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_slideMaster;
|
||||
typedef _CP_PTR(pptx_xml_slideMaster) pptx_xml_slideMaster_ptr;
|
||||
|
||||
@ -135,12 +162,13 @@ class pptx_xml_slideMaster: noncopyable
|
||||
public:
|
||||
pptx_xml_slideMaster(std::wstring const & rId, int id);
|
||||
~pptx_xml_slideMaster();
|
||||
public:
|
||||
|
||||
std::wstring rId() const;
|
||||
|
||||
std::wostream & Data();
|
||||
std::wostream & DataExtra();
|
||||
std::wostream & Background();
|
||||
std::wostream & Data();
|
||||
std::wostream & DataExtra();
|
||||
std::wostream & Background();
|
||||
std::wstringstream & Sizes();
|
||||
rels & Rels();
|
||||
|
||||
void add_layout(int id, const std::wstring & rId, const unsigned int & uniqId);
|
||||
@ -151,9 +179,10 @@ public:
|
||||
static pptx_xml_slideMaster_ptr create(int id);
|
||||
|
||||
private:
|
||||
std::wstringstream slideMasterData_;
|
||||
std::wstringstream slideMasterDataExtra_;
|
||||
std::wstringstream slideMasterBackground_;
|
||||
std::wstringstream strmData_;
|
||||
std::wstringstream strmDataExtra_;
|
||||
std::wstringstream strmBackground_;
|
||||
std::wstringstream strmSizes_;
|
||||
|
||||
std::vector<std::pair<std::wstring, unsigned int>> layoutsId_;
|
||||
std::wstring rId_;
|
||||
@ -163,7 +192,42 @@ private:
|
||||
|
||||
rels rels_;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_slideNotesMaster;
|
||||
typedef _CP_PTR(pptx_xml_slideNotesMaster) pptx_xml_slideNotesMaster_ptr;
|
||||
|
||||
class pptx_xml_slideNotesMaster: noncopyable
|
||||
{
|
||||
public:
|
||||
pptx_xml_slideNotesMaster(std::wstring const & rId, int id);
|
||||
~pptx_xml_slideNotesMaster();
|
||||
|
||||
std::wstring rId() const;
|
||||
|
||||
std::wostream & Data();
|
||||
std::wostream & Background();
|
||||
std::wostream & Sizes();
|
||||
rels & Rels();
|
||||
|
||||
void add_theme(int id, const std::wstring & tId);
|
||||
|
||||
void write_to(std::wostream & strm);
|
||||
|
||||
static pptx_xml_slideNotesMaster_ptr create();
|
||||
|
||||
private:
|
||||
std::wstringstream strmData_;
|
||||
std::wstringstream strmBackground_;
|
||||
std::wstringstream strmSizes_;
|
||||
|
||||
std::wstring rId_;
|
||||
int id_;
|
||||
|
||||
std::wstring themeId_;
|
||||
|
||||
rels rels_;
|
||||
};
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_theme;
|
||||
typedef _CP_PTR(pptx_xml_theme) pptx_xml_theme_ptr;
|
||||
|
||||
@ -192,7 +256,7 @@ private:
|
||||
std::wstring name_;
|
||||
int id_;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
class pptx_xml_authors_comments;
|
||||
typedef _CP_PTR(pptx_xml_authors_comments) pptx_xml_authors_comments_ptr;
|
||||
|
||||
|
||||
@ -105,10 +105,11 @@ void slide_content::add_rels(rels & _r)
|
||||
rels_->get_rels().add(r[i]);
|
||||
}
|
||||
}
|
||||
////////////
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
slides_files::slides_files()
|
||||
{}
|
||||
{
|
||||
rels_ = NULL;
|
||||
}
|
||||
|
||||
void slides_files::add_slide(slide_content_ptr slide)
|
||||
{
|
||||
@ -127,13 +128,13 @@ void slides_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
if (!slides_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"slide") + boost::lexical_cast<std::wstring>( i + 1 ) + L".xml";
|
||||
const std::wstring fileName = std::wstring(L"slide") + std::to_wstring( i + 1 ) + L".xml";
|
||||
|
||||
contentTypes->add_override(std::wstring(L"/ppt/slides/") + fileName, kWSConType);
|
||||
|
||||
if (rels_)
|
||||
{
|
||||
const std::wstring id = std::wstring(L"sId") + boost::lexical_cast<std::wstring>( i + 1);
|
||||
const std::wstring id = std::wstring(L"sId") + std::to_wstring( i + 1);
|
||||
static const std::wstring kWSRel = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide";
|
||||
const std::wstring fileRef = std::wstring(L"slides/") + fileName;
|
||||
rels_->add(id, kWSRel, fileRef);
|
||||
@ -149,7 +150,42 @@ void slides_files::write(const std::wstring & RootPath)
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------
|
||||
void notes_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
std::wstring path = RootPath + FILE_SEPARATOR_STR + L"notesSlides" ;
|
||||
NSDirectory::CreateDirectory(path.c_str());
|
||||
|
||||
content_type_content * contentTypes = this->get_main_document()->get_content_types_file().content();
|
||||
static const std::wstring kWSConType = L"application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml";
|
||||
|
||||
for (int i = 0; i < slides_.size(); i++)
|
||||
{
|
||||
if (!slides_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"notesSlide") + std::to_wstring( i + 1 ) + L".xml";
|
||||
|
||||
contentTypes->add_override(std::wstring(L"/ppt/notesSlides/") + fileName, kWSConType);
|
||||
|
||||
if (rels_)
|
||||
{
|
||||
const std::wstring id = std::wstring(L"nId") + std::to_wstring( i + 1);
|
||||
static const std::wstring kWSRel = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide";
|
||||
const std::wstring fileRef = std::wstring(L"notesSlides/") + fileName;
|
||||
rels_->add(id, kWSRel, fileRef);
|
||||
}
|
||||
|
||||
slides_[i]->get_rel_file()->set_file_name(fileName + L".rels");//внитренние релсы
|
||||
|
||||
rels_files relFiles;
|
||||
relFiles.add_rel_file(slides_[i]->get_rel_file());
|
||||
relFiles.write(path);
|
||||
|
||||
package::simple_element(fileName, slides_[i]->str()).write(path);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
slideMasters_files::slideMasters_files()
|
||||
{}
|
||||
|
||||
@ -170,12 +206,12 @@ void slideMasters_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
if (!slides_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"slideMaster") + boost::lexical_cast<std::wstring>( i + 1 ) + L".xml";
|
||||
const std::wstring fileName = std::wstring(L"slideMaster") + std::to_wstring( i + 1 ) + L".xml";
|
||||
contentTypes->add_override(std::wstring(L"/ppt/slideMasters/") + fileName, kWSConType);
|
||||
|
||||
if (rels_)
|
||||
{
|
||||
const std::wstring id = std::wstring(L"smId") + boost::lexical_cast<std::wstring>( i + 1);
|
||||
const std::wstring id = std::wstring(L"smId") + std::to_wstring( i + 1);
|
||||
static const std::wstring kWSRel = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster";
|
||||
const std::wstring fileRef = std::wstring(L"slideMasters/") + fileName;
|
||||
rels_->add(id, kWSRel, fileRef);
|
||||
@ -191,7 +227,41 @@ void slideMasters_files::write(const std::wstring & RootPath)
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------
|
||||
void notesMaster_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
std::wstring path = RootPath + FILE_SEPARATOR_STR + L"notesMasters" ;
|
||||
NSDirectory::CreateDirectory(path.c_str());
|
||||
|
||||
content_type_content * contentTypes = this->get_main_document()->get_content_types_file().content();
|
||||
static const std::wstring kWSConType = L"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml";
|
||||
|
||||
for (int i = 0; i < slides_.size(); i++)
|
||||
{
|
||||
if (!slides_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"notesMaster") + std::to_wstring( i + 1 ) + L".xml";
|
||||
contentTypes->add_override(std::wstring(L"/ppt/notesMasters/") + fileName, kWSConType);
|
||||
|
||||
if (rels_)
|
||||
{
|
||||
const std::wstring id = std::wstring(L"nmId") + std::to_wstring( i + 1);
|
||||
static const std::wstring kWSRel = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster";
|
||||
const std::wstring fileRef = std::wstring(L"notesMasters/") + fileName;
|
||||
rels_->add(id, kWSRel, fileRef);
|
||||
}
|
||||
|
||||
slides_[i]->get_rel_file()->set_file_name(fileName + L".rels");//внитренние релсы
|
||||
|
||||
rels_files relFiles;
|
||||
relFiles.add_rel_file(slides_[i]->get_rel_file());
|
||||
relFiles.write(path);
|
||||
|
||||
package::simple_element(fileName, slides_[i]->str()).write(path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
slideLayouts_files::slideLayouts_files()
|
||||
{}
|
||||
|
||||
@ -209,7 +279,7 @@ void slideLayouts_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
if (!slides_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"slideLayout") + boost::lexical_cast<std::wstring>( i + 1 ) + L".xml";
|
||||
const std::wstring fileName = std::wstring(L"slideLayout") + std::to_wstring( i + 1 ) + L".xml";
|
||||
const std::wstring kWSConType = L"application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml";
|
||||
|
||||
content_type_content * contentTypes = get_main_document()->get_content_types_file().content();
|
||||
@ -225,7 +295,7 @@ void slideLayouts_files::write(const std::wstring & RootPath)
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------------
|
||||
authors_comments_element::authors_comments_element(pptx_xml_authors_comments_ptr & authors_comments) : authors_comments_(authors_comments)
|
||||
{
|
||||
}
|
||||
@ -261,7 +331,7 @@ void ppt_charts_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
if (!charts_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"chart") + boost::lexical_cast<std::wstring>( i + 1 ) + L".xml";
|
||||
const std::wstring fileName = std::wstring(L"chart") + std::to_wstring( i + 1 ) + L".xml";
|
||||
content_type_content * contentTypes = get_main_document()->get_content_types_file().content();
|
||||
|
||||
static const std::wstring kWSConType = L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml";
|
||||
@ -291,7 +361,7 @@ void ppt_themes_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
if (!themes_[i]) continue;
|
||||
|
||||
const std::wstring fileName = std::wstring(L"theme") + boost::lexical_cast<std::wstring>( i + 1) + L".xml";
|
||||
const std::wstring fileName = std::wstring(L"theme") + std::to_wstring( i + 1) + L".xml";
|
||||
const std::wstring kWSConType = L"application/vnd.openxmlformats-officedocument.theme+xml";
|
||||
|
||||
content_type_content * contentTypes = get_main_document()->get_content_types_file().content();
|
||||
@ -345,6 +415,12 @@ void ppt_files::write(const std::wstring & RootPath)
|
||||
slideMasters_files_.set_main_document( this->get_main_document() );
|
||||
slideMasters_files_.write(path);
|
||||
|
||||
notes_files_.set_main_document( this->get_main_document() );
|
||||
notes_files_.write(path);
|
||||
|
||||
notesMaster_files_.set_rels(&rels_files_);
|
||||
notesMaster_files_.set_main_document( this->get_main_document() );
|
||||
notesMaster_files_.write(path);
|
||||
|
||||
//rels_files_.add( relationship( L"hId1", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", L"ppt/presentation.xml" ) );
|
||||
|
||||
@ -412,6 +488,10 @@ void ppt_files::add_slide(slide_content_ptr slide)
|
||||
{
|
||||
slides_files_.add_slide(slide);
|
||||
}
|
||||
void ppt_files::add_notes(slide_content_ptr slide)
|
||||
{
|
||||
notes_files_.add_slide(slide);
|
||||
}
|
||||
void ppt_files::add_slideLayout(slide_content_ptr slide)
|
||||
{
|
||||
slideLayouts_files_.add_slide(slide);
|
||||
@ -420,7 +500,10 @@ void ppt_files::add_slideMaster(slide_content_ptr slide)
|
||||
{
|
||||
slideMasters_files_.add_slide(slide);
|
||||
}
|
||||
|
||||
void ppt_files::add_notesMaster(slide_content_ptr slide)
|
||||
{
|
||||
notesMaster_files_.add_slide(slide);
|
||||
}
|
||||
void ppt_files::set_media(mediaitems & _Mediaitems, CApplicationFonts *pAppFonts)
|
||||
{
|
||||
if (_Mediaitems.count_image + _Mediaitems.count_media > 0)
|
||||
|
||||
@ -41,8 +41,10 @@ namespace cpdoccore {
|
||||
namespace oox {
|
||||
|
||||
class pptx_xml_presentation;
|
||||
|
||||
class pptx_xml_theme;
|
||||
typedef _CP_PTR(pptx_xml_theme) pptx_xml_theme_ptr;
|
||||
|
||||
class pptx_xml_authors_comments;
|
||||
typedef _CP_PTR(pptx_xml_authors_comments) pptx_xml_authors_comments_ptr;
|
||||
|
||||
@ -55,7 +57,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------
|
||||
class slide_content;
|
||||
typedef _CP_PTR(slide_content) slide_content_ptr;
|
||||
|
||||
@ -72,11 +74,10 @@ public:
|
||||
static _CP_PTR(slide_content) create();
|
||||
|
||||
private:
|
||||
std::wstringstream content_;
|
||||
rels_file_ptr rels_;
|
||||
std::wstringstream content_;
|
||||
rels_file_ptr rels_;
|
||||
};
|
||||
|
||||
// slides_files
|
||||
//------------------------------------------------------------------------------
|
||||
class slides_files : public element
|
||||
{
|
||||
public:
|
||||
@ -92,12 +93,18 @@ public:
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
void set_slide_ref(const std::wstring & ref_file_path,const std::wstring & ref_file_name);
|
||||
|
||||
public:
|
||||
std::vector<slide_content_ptr> slides_;
|
||||
rels_files * rels_;
|
||||
|
||||
};
|
||||
// slideLayouts_files
|
||||
//------------------------------------------------------------------------------
|
||||
class notes_files : public slides_files
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
class slideLayouts_files : public element
|
||||
{
|
||||
public:
|
||||
@ -107,12 +114,9 @@ public:
|
||||
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
|
||||
public:
|
||||
std::vector<slide_content_ptr> slides_;
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
class authors_comments_element : public element
|
||||
{
|
||||
public:
|
||||
@ -123,9 +127,7 @@ private:
|
||||
pptx_xml_authors_comments_ptr & authors_comments_;
|
||||
|
||||
};
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// slideMasters_files
|
||||
//------------------------------------------------------------------------------
|
||||
class slideMasters_files : public element
|
||||
{
|
||||
public:
|
||||
@ -140,16 +142,19 @@ public:
|
||||
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
|
||||
public:
|
||||
std::vector<slide_content_ptr> slides_;
|
||||
rels_files * rels_;
|
||||
};
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
class notesMaster_files : public slideMasters_files
|
||||
{
|
||||
public:
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
class ppt_comments_files;
|
||||
typedef _CP_PTR(ppt_comments_files) ppt_comments_files_ptr;
|
||||
|
||||
// ppt_comments
|
||||
class ppt_comments_files: public element
|
||||
{
|
||||
public:
|
||||
@ -165,9 +170,7 @@ private:
|
||||
const std::vector<pptx_comment_elm> & comments_;
|
||||
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// ppt_charts_files
|
||||
//------------------------------------------------------------------------------
|
||||
class ppt_charts_files : public element
|
||||
{
|
||||
public:
|
||||
@ -179,8 +182,8 @@ public:
|
||||
std::vector<chart_content_ptr> charts_;
|
||||
|
||||
};
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// ppt_theme_files
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class ppt_themes_files : public element
|
||||
{
|
||||
public:
|
||||
@ -192,13 +195,12 @@ public:
|
||||
std::vector<pptx_xml_theme_ptr> themes_;
|
||||
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//------------------------------------------------------------------------------
|
||||
class ppt_files : public element
|
||||
{
|
||||
public:
|
||||
ppt_files();
|
||||
|
||||
public:
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
|
||||
void set_presentation(pptx_xml_presentation & presentation);
|
||||
@ -206,9 +208,11 @@ public:
|
||||
void set_styles(element_ptr Element);
|
||||
void set_comments(element_ptr Element);
|
||||
|
||||
void add_slide(slide_content_ptr sheet);
|
||||
void add_slide (slide_content_ptr sheet);
|
||||
void add_slideLayout(slide_content_ptr sheet);
|
||||
void add_slideMaster(slide_content_ptr sheet);
|
||||
void add_notes (slide_content_ptr sheet);
|
||||
void add_notesMaster(slide_content_ptr sheet);
|
||||
|
||||
void set_media(mediaitems & _Mediaitems, CApplicationFonts *pAppFonts);
|
||||
void add_charts(chart_content_ptr chart);
|
||||
@ -217,25 +221,21 @@ public:
|
||||
void set_authors_comments(pptx_xml_authors_comments_ptr & authors_comments);
|
||||
|
||||
private:
|
||||
rels_files rels_files_;
|
||||
rels_files rels_files_;
|
||||
|
||||
slides_files slides_files_;
|
||||
slideLayouts_files slideLayouts_files_;
|
||||
slideMasters_files slideMasters_files_;
|
||||
slides_files slides_files_;
|
||||
slideLayouts_files slideLayouts_files_;
|
||||
slideMasters_files slideMasters_files_;
|
||||
notes_files notes_files_;
|
||||
notesMaster_files notesMaster_files_;
|
||||
|
||||
//slides_files handoutMasters_files_;
|
||||
ppt_themes_files themes_files_;
|
||||
|
||||
ppt_charts_files charts_files_;
|
||||
//slides_files notesSlides_files_;
|
||||
//slides_files notesMasters_files_;
|
||||
//slides_files handoutMasters_files_;
|
||||
|
||||
element_ptr authors_comments_;
|
||||
|
||||
element_ptr authors_comments_;
|
||||
element_ptr presentation_;
|
||||
|
||||
element_ptr tableStyles_;
|
||||
|
||||
element_ptr comments_;
|
||||
element_ptr media_;
|
||||
element_ptr embeddings_;
|
||||
@ -247,7 +247,6 @@ class pptx_document : public document
|
||||
public:
|
||||
pptx_document();
|
||||
|
||||
public:
|
||||
virtual void write(const std::wstring & RootPath);
|
||||
|
||||
virtual content_types_file & get_content_types_file() { return content_type_file_; }
|
||||
|
||||
@ -53,7 +53,6 @@ typedef _CP_PTR(pptx_drawings) pptx_drawings_ptr;
|
||||
class pptx_slide_context::Impl
|
||||
{
|
||||
public:
|
||||
|
||||
struct _transition
|
||||
{
|
||||
bool Enabled;
|
||||
@ -66,7 +65,7 @@ public:
|
||||
bool onClick;
|
||||
};
|
||||
|
||||
Impl(const std::wstring & odfPacket) : mediaitems_(odfPacket),odfPacket_(odfPacket)
|
||||
Impl(const std::wstring & odfPacket) : mediaitems_(odfPacket), odfPacket_(odfPacket)
|
||||
{
|
||||
clear();
|
||||
}
|
||||
@ -75,24 +74,17 @@ public:
|
||||
std::vector<drawing_object_description> objects_;
|
||||
|
||||
_CP_OPT(_oox_fill) background_fill_;
|
||||
|
||||
_transition transition_;
|
||||
bool use_image_replacement_;
|
||||
|
||||
bool header, footer, date_time, slideNum;
|
||||
|
||||
void add_drawing(_pptx_drawing const & d,
|
||||
bool isInternal,
|
||||
std::wstring const & rid,
|
||||
std::wstring const & ref,
|
||||
RelsType type)
|
||||
void add_drawing(_pptx_drawing const & d, bool isInternal, std::wstring const & rid, std::wstring const & ref, RelsType type)
|
||||
{
|
||||
pptx_drawings_->add(d, isInternal, rid, ref, type);
|
||||
}
|
||||
void add_additional_rels(
|
||||
bool isInternal,
|
||||
std::wstring const & rid,
|
||||
std::wstring const & ref,
|
||||
RelsType type)
|
||||
void add_additional_rels (bool isInternal, std::wstring const & rid, std::wstring const & ref, RelsType type)
|
||||
{
|
||||
pptx_drawings_->add(isInternal, rid, ref, type);
|
||||
}
|
||||
@ -107,16 +99,16 @@ public:
|
||||
{
|
||||
objects_.clear();
|
||||
|
||||
background_fill_ = boost::none;
|
||||
background_fill_ = boost::none;
|
||||
|
||||
header=false;
|
||||
footer=false;
|
||||
date_time=false;
|
||||
slideNum=false;
|
||||
header = false;
|
||||
footer = false;
|
||||
date_time = false;
|
||||
slideNum = false;
|
||||
|
||||
rId_ = 1;
|
||||
|
||||
pptx_drawings_ = pptx_drawings::create();
|
||||
pptx_drawings_ = pptx_drawings::create();
|
||||
|
||||
transition_.Enabled = false;
|
||||
transition_.Speed = boost::none;
|
||||
@ -127,7 +119,6 @@ public:
|
||||
{
|
||||
return rId_++;;
|
||||
}
|
||||
|
||||
pptx_drawings_ptr get_drawings()
|
||||
{
|
||||
return pptx_drawings_;
|
||||
@ -137,7 +128,7 @@ public:
|
||||
void process_drawings();
|
||||
|
||||
private:
|
||||
void process_common_properties(drawing_object_description& obj,_pptx_drawing & drawing);
|
||||
void process_common_properties(drawing_object_description& obj, _pptx_drawing & drawing);
|
||||
|
||||
void process_shape (drawing_object_description& obj, _pptx_drawing & drawing);
|
||||
void process_image (drawing_object_description& obj, _pptx_drawing & drawing);
|
||||
@ -145,14 +136,15 @@ private:
|
||||
void process_table (drawing_object_description& obj, _pptx_drawing & drawing);
|
||||
void process_object (drawing_object_description& obj, _pptx_drawing & drawing);
|
||||
|
||||
size_t rId_;
|
||||
mediaitems mediaitems_;
|
||||
pptx_drawings_ptr pptx_drawings_;
|
||||
size_t rId_;
|
||||
mediaitems mediaitems_;
|
||||
pptx_drawings_ptr pptx_drawings_;
|
||||
pptx_drawings_ptr pptx_notes_drawings_;
|
||||
};
|
||||
|
||||
void pptx_slide_context::Impl::process_drawings()
|
||||
{
|
||||
for (int i = 0; i < objects_.size(); i++)
|
||||
for (size_t i = 0; i < objects_.size(); i++)
|
||||
{
|
||||
_pptx_drawing drawing =_pptx_drawing();
|
||||
|
||||
@ -175,17 +167,19 @@ void pptx_slide_context::Impl::process_drawings()
|
||||
}
|
||||
|
||||
pptx_slide_context::pptx_slide_context(pptx_conversion_context & Context)
|
||||
: impl_(new pptx_slide_context::Impl(Context.root()->get_folder()))
|
||||
: impl_(new pptx_slide_context::Impl(Context.root()->get_folder()))
|
||||
{
|
||||
hlinks_size_ = 0;
|
||||
hlinks_size_ = 0;
|
||||
}
|
||||
void pptx_slide_context::start_slide()
|
||||
{
|
||||
impl_->clear(); // objects
|
||||
hlinks_size_ = 0;
|
||||
|
||||
hlinks_size_ = 0;
|
||||
|
||||
default_set(); //for current object
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
void pptx_slide_context::start_slide_animation()
|
||||
{
|
||||
@ -202,10 +196,10 @@ void pptx_slide_context::start_slide_animation()
|
||||
|
||||
void pptx_slide_context::set_transitionFilter(std::wstring & type,_CP_OPT(std::wstring) & dir,_CP_OPT(std::wstring) & dop,_CP_OPT(int) & time)
|
||||
{
|
||||
impl_->transition_.Type = type;
|
||||
impl_->transition_.Time = time; // не путать длительность перехода с длительностью эффекта перехода (в oo его нет)
|
||||
impl_->transition_.Dir = dir;
|
||||
impl_->transition_.Param = dop;
|
||||
impl_->transition_.Type = type;
|
||||
impl_->transition_.Time = time; // не путать длительность перехода с длительностью эффекта перехода (в oo его нет)
|
||||
impl_->transition_.Dir = dir;
|
||||
impl_->transition_.Param = dop;
|
||||
}
|
||||
|
||||
void pptx_slide_context::set_transitionAction(bool val)
|
||||
@ -215,8 +209,8 @@ void pptx_slide_context::set_transitionAction(bool val)
|
||||
|
||||
void pptx_slide_context::set_transitionSpeed(std::wstring val)
|
||||
{
|
||||
if (val == L"medium")impl_->transition_.Speed=L"med";
|
||||
else impl_->transition_.Speed= val;//fast / slow
|
||||
if (val == L"medium") impl_->transition_.Speed = L"med";
|
||||
else impl_->transition_.Speed = val;//fast / slow
|
||||
}
|
||||
|
||||
|
||||
@ -227,6 +221,7 @@ void pptx_slide_context::default_set()
|
||||
impl_->object_description_.name_ = L"";
|
||||
impl_->object_description_.descriptor_ = L"";
|
||||
impl_->object_description_.anchor_ = L"";
|
||||
|
||||
impl_->object_description_.additional_.clear();
|
||||
|
||||
impl_->object_description_.clipping_string_= L"";
|
||||
@ -247,10 +242,10 @@ void pptx_slide_context::set_use_image_replacement()
|
||||
|
||||
void pptx_slide_context::set_placeHolder_type(std::wstring typeHolder)
|
||||
{
|
||||
if (typeHolder == L"ftr") impl_->footer= true;
|
||||
if (typeHolder == L"hdr") impl_->header= true;
|
||||
if (typeHolder == L"dt") impl_->date_time= true;
|
||||
if (typeHolder == L"sldNum")impl_->slideNum= true;
|
||||
if (typeHolder == L"ftr") impl_->footer = true;
|
||||
if (typeHolder == L"hdr") impl_->header = true;
|
||||
if (typeHolder == L"dt") impl_->date_time = true;
|
||||
if (typeHolder == L"sldNum")impl_->slideNum = true;
|
||||
|
||||
impl_->object_description_.additional_.push_back(odf_reader::_property(L"PlaceHolderType",typeHolder));
|
||||
}
|
||||
@ -433,8 +428,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
|
||||
@ -447,7 +440,7 @@ void pptx_slide_context::process_drawings()
|
||||
return impl_->process_drawings();
|
||||
}
|
||||
|
||||
void pptx_slide_context::Impl::process_image(drawing_object_description& pic, _pptx_drawing & drawing)
|
||||
void pptx_slide_context::Impl::process_image(drawing_object_description& obj, _pptx_drawing & drawing)
|
||||
{
|
||||
int pos_replaicement = 0, pos_preview = 0;
|
||||
|
||||
@ -455,22 +448,22 @@ void pptx_slide_context::Impl::process_image(drawing_object_description& pic, _p
|
||||
drawing.fill.type = 2;
|
||||
|
||||
_CP_OPT(std::wstring) sTextContent;
|
||||
GetProperty(pic.additional_, L"text-content", sTextContent);
|
||||
GetProperty(obj.additional_, L"text-content", sTextContent);
|
||||
if (sTextContent)//в ms office на картинке нельзя сделать надпись - меняем тип на рект с заливкой картинкой
|
||||
{
|
||||
drawing.type = typeShape;
|
||||
drawing.sub_type = 2;//rect
|
||||
}
|
||||
|
||||
std::wstring fileName = odfPacket_ + FILE_SEPARATOR_STR + pic.xlink_href_;
|
||||
drawing.fill.bitmap->bCrop = odf_reader::parse_clipping(pic.clipping_string_,fileName,drawing.fill.bitmap->cropRect, NULL);
|
||||
std::wstring fileName = odfPacket_ + FILE_SEPARATOR_STR + obj.xlink_href_;
|
||||
drawing.fill.bitmap->bCrop = odf_reader::parse_clipping(obj.clipping_string_, fileName, drawing.fill.bitmap->cropRect, NULL);
|
||||
drawing.fill.bitmap->bStretch = true;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
std::wstring ref;/// это ссылка на выходной внешний объект
|
||||
bool isMediaInternal = false;
|
||||
|
||||
drawing.fill.bitmap->rId = get_mediaitems().add_or_find(pic.xlink_href_, typeImage, isMediaInternal, ref);
|
||||
drawing.fill.bitmap->rId = get_mediaitems().add_or_find(obj.xlink_href_, typeImage, isMediaInternal, ref);
|
||||
|
||||
if (drawing.type == typeShape)
|
||||
{
|
||||
@ -478,11 +471,13 @@ void pptx_slide_context::Impl::process_image(drawing_object_description& pic, _p
|
||||
|
||||
isMediaInternal = true;
|
||||
std::wstring rId = get_mediaitems().add_or_find(L"", typeShape, isMediaInternal, ref);
|
||||
|
||||
add_drawing(drawing, isMediaInternal, rId, ref, typeShape);//объект
|
||||
|
||||
}else if (!drawing.fill.bitmap->rId.empty())
|
||||
}
|
||||
else if (!drawing.fill.bitmap->rId.empty())
|
||||
{
|
||||
add_drawing(drawing, isMediaInternal, drawing.fill.bitmap->rId , ref, drawing.type);//объект
|
||||
add_drawing(drawing, isMediaInternal, drawing.fill.bitmap->rId, ref, drawing.type);//объект
|
||||
}
|
||||
}
|
||||
void pptx_slide_context::Impl::process_chart(drawing_object_description & obj, _pptx_drawing & drawing)
|
||||
@ -490,8 +485,9 @@ void pptx_slide_context::Impl::process_chart(drawing_object_description & obj, _
|
||||
std::wstring ref;
|
||||
bool isMediaInternal = true;
|
||||
|
||||
drawing.objectId = get_mediaitems().add_or_find(obj.xlink_href_, obj.type_, isMediaInternal, ref);
|
||||
add_drawing(drawing, isMediaInternal, drawing.objectId, ref, drawing.type);
|
||||
drawing.objectId = get_mediaitems().add_or_find(obj.xlink_href_, obj.type_, isMediaInternal, ref);
|
||||
|
||||
add_drawing(drawing, isMediaInternal, drawing.objectId, ref, drawing.type);
|
||||
}
|
||||
|
||||
void pptx_slide_context::Impl::process_table(drawing_object_description & obj, _pptx_drawing & drawing)
|
||||
@ -501,6 +497,7 @@ void pptx_slide_context::Impl::process_table(drawing_object_description & obj, _
|
||||
std::wstring rId = get_mediaitems().add_or_find(L"", obj.type_, isMediaInternal, ref);
|
||||
|
||||
add_drawing(drawing, isMediaInternal, rId, ref, drawing.type);
|
||||
|
||||
}
|
||||
|
||||
void pptx_slide_context::Impl::process_shape(drawing_object_description & obj, _pptx_drawing & drawing)
|
||||
@ -513,6 +510,7 @@ void pptx_slide_context::Impl::process_shape(drawing_object_description & obj, _
|
||||
if (drawing.fill.bitmap)
|
||||
{
|
||||
drawing.fill.bitmap->rId = get_mediaitems().add_or_find(drawing.fill.bitmap->xlink_href_, typeImage, isMediaInternal, ref);
|
||||
|
||||
add_additional_rels(isMediaInternal, drawing.fill.bitmap->rId, ref, typeImage);
|
||||
}
|
||||
|
||||
@ -543,11 +541,12 @@ void pptx_slide_context::Impl::process_object(drawing_object_description& obj, _
|
||||
drawing.objectId = get_mediaitems().add_or_find(obj.xlink_href_, obj.type_, isMediaInternal, ref);
|
||||
drawing.objectProgId = obj.descriptor_;
|
||||
|
||||
add_drawing(drawing, isMediaInternal, drawing.objectId, ref, drawing.type);
|
||||
add_drawing(drawing, isMediaInternal, drawing.objectId, ref, drawing.type);
|
||||
|
||||
if (drawing.fill.bitmap)
|
||||
{
|
||||
drawing.fill.bitmap->rId = get_mediaitems().add_or_find(drawing.fill.bitmap->xlink_href_, typeImage, isMediaInternal, ref);
|
||||
|
||||
add_additional_rels(isMediaInternal, drawing.fill.bitmap->rId, ref, typeImage);
|
||||
}
|
||||
}
|
||||
@ -577,7 +576,6 @@ void pptx_slide_context::Impl::process_common_properties(drawing_object_descript
|
||||
drawing.fill = pic.fill_;
|
||||
}
|
||||
|
||||
|
||||
void pptx_slide_context::dump_rels(rels & Rels)
|
||||
{
|
||||
impl_->get_drawings()->dump_rels(Rels);
|
||||
@ -592,6 +590,7 @@ void pptx_slide_context::add_rels( bool isInternal, std::wstring const & rid, st
|
||||
{
|
||||
impl_->add_additional_rels(isInternal, rid, ref, type);
|
||||
}
|
||||
|
||||
void pptx_slide_context::set_footer()
|
||||
{
|
||||
impl_->footer = true;
|
||||
@ -610,7 +609,7 @@ void pptx_slide_context::set_date_time()
|
||||
}
|
||||
void pptx_slide_context::serialize_background(std::wostream & strm, bool always)
|
||||
{
|
||||
if (!always && ( (!impl_->background_fill_) || (impl_->background_fill_->type==0))) return;
|
||||
if (!always && ( (!impl_->background_fill_) || (impl_->background_fill_->type == 0))) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
@ -620,7 +619,7 @@ void pptx_slide_context::serialize_background(std::wostream & strm, bool always)
|
||||
{
|
||||
if (impl_->background_fill_)
|
||||
{
|
||||
oox_serialize_fill(CP_XML_STREAM(),impl_->background_fill_.get());
|
||||
oox_serialize_fill(CP_XML_STREAM(), impl_->background_fill_.get());
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -691,7 +690,6 @@ void pptx_slide_context::serialize_HeaderFooter(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pptx_slide_context::serialize_objects(std::wostream & strm)
|
||||
{
|
||||
int next_id = impl_->next_rId();
|
||||
@ -703,8 +701,8 @@ void pptx_slide_context::serialize_objects(std::wostream & strm)
|
||||
{
|
||||
CP_XML_NODE(L"p:cNvPr")
|
||||
{
|
||||
CP_XML_ATTR(L"name",L"noGroup");
|
||||
CP_XML_ATTR(L"id",next_id);
|
||||
CP_XML_ATTR(L"name", L"noGroup");
|
||||
CP_XML_ATTR(L"id", next_id);
|
||||
}
|
||||
CP_XML_NODE(L"p:cNvGrpSpPr");
|
||||
CP_XML_NODE(L"p:nvPr");
|
||||
|
||||
@ -89,16 +89,19 @@ public:
|
||||
void end_table();
|
||||
|
||||
void start_shape(int type);
|
||||
void end_shape();
|
||||
void end_shape ();
|
||||
|
||||
void set_use_image_replacement();
|
||||
|
||||
bool empty() const;
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
void serialize_objects(std::wostream & strm);
|
||||
void serialize_HeaderFooter(std::wostream & strm);
|
||||
void serialize_background(std::wostream & strm, bool always=false);
|
||||
void serialize_animations(std::wostream & strm);
|
||||
|
||||
void serialize_HeaderFooter (std::wostream & strm);
|
||||
void serialize_animations (std::wostream & strm);
|
||||
|
||||
void serialize_objects (std::wostream & strm);
|
||||
|
||||
void serialize_background (std::wostream & strm, bool always = false);
|
||||
|
||||
void dump_rels(rels & Rels);
|
||||
|
||||
@ -106,7 +109,7 @@ public:
|
||||
|
||||
mediaitems & get_mediaitems();
|
||||
|
||||
void add_background(_oox_fill & fill);
|
||||
void add_background (_oox_fill & fill);
|
||||
|
||||
void add_rels( bool isInternal,
|
||||
std::wstring const & rid,
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -72,8 +72,8 @@ public:
|
||||
void start_base_style(const std::wstring baseStyleName, const odf_types::style_family::type baseStyleType);
|
||||
void end_base_style();
|
||||
|
||||
void ApplyTextProperties (std::wstring style,odf_reader::text_format_properties_content & propertiesOut, odf_types::style_family::type Type);
|
||||
void ApplyParagraphProperties (std::wstring style,odf_reader::paragraph_format_properties & propertiesOut, odf_types::style_family::type Type);
|
||||
void ApplyTextProperties (std::wstring style, std::wstring para_style, odf_reader::text_format_properties_content & propertiesOut);
|
||||
void ApplyParagraphProperties (std::wstring para_style, odf_reader::paragraph_format_properties & propertiesOut);
|
||||
void ApplyListProperties (odf_reader::paragraph_format_properties & propertiesOut, int Level);
|
||||
|
||||
void set_local_styles_container(odf_reader::styles_container* local_styles_);//это если стили объектов содержатся в другом документе
|
||||
@ -239,32 +239,37 @@ void pptx_text_context::Impl::end_hyperlink(std::wstring hId)
|
||||
dump_run();
|
||||
hyperlink_hId = L"";
|
||||
}
|
||||
void pptx_text_context::Impl::ApplyTextProperties(std::wstring style_name,odf_reader::text_format_properties_content & propertiesOut, odf_types::style_family::type Type)
|
||||
void pptx_text_context::Impl::ApplyTextProperties(std::wstring style_name, std::wstring para_style_name, odf_reader::text_format_properties_content & propertiesOut)
|
||||
{
|
||||
std::vector<const odf_reader::style_instance *> instances;
|
||||
|
||||
odf_reader::style_instance* defaultStyle = NULL;
|
||||
odf_reader::style_instance* style = NULL;
|
||||
odf_reader::style_instance* baseStyle = NULL;
|
||||
odf_reader::style_instance* defaultStyle = NULL;
|
||||
odf_reader::style_instance* para_style = NULL;
|
||||
odf_reader::style_instance* text_style = NULL;
|
||||
odf_reader::style_instance* baseStyle = NULL;
|
||||
|
||||
if (local_styles_ptr_)
|
||||
{
|
||||
style = local_styles_ptr_->style_by_name(style_name, Type,false/*process_headers_footers_*/);
|
||||
defaultStyle = local_styles_ptr_->style_default_by_type(Type);
|
||||
baseStyle = local_styles_ptr_->style_by_name(base_style_name_, base_style_family_,false/*process_headers_footers_*/);
|
||||
para_style = local_styles_ptr_->style_by_name (para_style_name, odf_types::style_family::Paragraph, false/*process_headers_footers_*/);
|
||||
text_style = local_styles_ptr_->style_by_name (style_name, odf_types::style_family::Text, false/*process_headers_footers_*/);
|
||||
defaultStyle = local_styles_ptr_->style_default_by_type (odf_types::style_family::Text);
|
||||
baseStyle = local_styles_ptr_->style_by_name (base_style_name_, base_style_family_, false/*process_headers_footers_*/);
|
||||
}
|
||||
else
|
||||
{
|
||||
style = odf_context_.styleContainer().style_by_name(style_name, Type,false/*process_headers_footers_*/);
|
||||
defaultStyle = odf_context_.styleContainer().style_default_by_type(Type);
|
||||
baseStyle = odf_context_.styleContainer().style_by_name(base_style_name_, base_style_family_,false/*process_headers_footers_*/);
|
||||
para_style = odf_context_.styleContainer().style_by_name (para_style_name, odf_types::style_family::Paragraph, false/*process_headers_footers_*/);
|
||||
text_style = odf_context_.styleContainer().style_by_name (style_name, odf_types::style_family::Text, false/*process_headers_footers_*/);
|
||||
defaultStyle = odf_context_.styleContainer().style_default_by_type (odf_types::style_family::Text);
|
||||
baseStyle = odf_context_.styleContainer().style_by_name (base_style_name_, base_style_family_, false/*process_headers_footers_*/);
|
||||
}
|
||||
if (defaultStyle) instances.push_back(defaultStyle);
|
||||
if (baseStyle) instances.push_back(baseStyle);
|
||||
if (style) instances.push_back(style);
|
||||
if (para_style) instances.push_back(para_style);
|
||||
if (text_style) instances.push_back(text_style);
|
||||
|
||||
if (style)get_styles_context().start_process_style(style);
|
||||
else get_styles_context().start_process_style(baseStyle);
|
||||
if (text_style) get_styles_context().start_process_style(text_style);
|
||||
else if (para_style) get_styles_context().start_process_style(para_style);
|
||||
else get_styles_context().start_process_style(baseStyle);
|
||||
|
||||
propertiesOut.apply_from(calc_text_properties_content(instances));
|
||||
}
|
||||
@ -323,33 +328,33 @@ void pptx_text_context::Impl::ApplyListProperties(odf_reader::paragraph_format_p
|
||||
|
||||
}
|
||||
|
||||
void pptx_text_context::Impl::ApplyParagraphProperties(std::wstring style_name,odf_reader::paragraph_format_properties & propertiesOut, odf_types::style_family::type Type)
|
||||
void pptx_text_context::Impl::ApplyParagraphProperties(std::wstring style_name, odf_reader::paragraph_format_properties & propertiesOut)
|
||||
{
|
||||
std::vector<const odf_reader::style_instance *> instances;
|
||||
|
||||
odf_reader::style_instance* style = NULL;
|
||||
odf_reader::style_instance * defaultStyle = NULL;
|
||||
odf_reader::style_instance * baseStyle = NULL;
|
||||
odf_reader::style_instance* style = NULL;
|
||||
odf_reader::style_instance* defaultStyle = NULL;
|
||||
odf_reader::style_instance* baseStyle = NULL;
|
||||
|
||||
if (local_styles_ptr_)
|
||||
{
|
||||
style = local_styles_ptr_->style_by_name(style_name, Type,false/*process_headers_footers_*/);
|
||||
defaultStyle = local_styles_ptr_->style_default_by_type(Type);
|
||||
baseStyle = local_styles_ptr_->style_by_name(base_style_name_, base_style_family_,false/*process_headers_footers_*/);
|
||||
style = local_styles_ptr_->style_by_name (style_name, odf_types::style_family::Paragraph, false/*process_headers_footers_*/);
|
||||
defaultStyle = local_styles_ptr_->style_default_by_type (odf_types::style_family::Paragraph);
|
||||
baseStyle = local_styles_ptr_->style_by_name (base_style_name_, base_style_family_, false/*process_headers_footers_*/);
|
||||
}
|
||||
else
|
||||
{
|
||||
style = odf_context_.styleContainer().style_by_name(style_name, Type,false/*process_headers_footers_*/);
|
||||
defaultStyle = odf_context_.styleContainer().style_default_by_type(Type);
|
||||
baseStyle= odf_context_.styleContainer().style_by_name(base_style_name_, base_style_family_,false/*process_headers_footers_*/);
|
||||
style = odf_context_.styleContainer().style_by_name (style_name, odf_types::style_family::Paragraph, false/*process_headers_footers_*/);
|
||||
defaultStyle = odf_context_.styleContainer().style_default_by_type (odf_types::style_family::Paragraph);
|
||||
baseStyle = odf_context_.styleContainer().style_by_name (base_style_name_, base_style_family_,false/*process_headers_footers_*/);
|
||||
}
|
||||
|
||||
if (defaultStyle) instances.push_back(defaultStyle);
|
||||
if (baseStyle) instances.push_back(baseStyle);
|
||||
if (style) instances.push_back(style);
|
||||
|
||||
if (style)get_styles_context().start_process_style(style);
|
||||
else get_styles_context().start_process_style(baseStyle);
|
||||
if (style) get_styles_context().start_process_style(style);
|
||||
else get_styles_context().start_process_style(baseStyle);
|
||||
|
||||
propertiesOut.apply_from(calc_paragraph_properties_content(instances));
|
||||
}
|
||||
@ -360,9 +365,9 @@ void pptx_text_context::Impl::write_pPr(std::wostream & strm)
|
||||
|
||||
int level = list_style_stack_.size()-1;
|
||||
|
||||
odf_reader::paragraph_format_properties paragraph_properties_;
|
||||
odf_reader::paragraph_format_properties paragraph_properties_;
|
||||
|
||||
ApplyParagraphProperties (paragraph_style_name_, paragraph_properties_,odf_types::style_family::Paragraph);
|
||||
ApplyParagraphProperties (paragraph_style_name_, paragraph_properties_);
|
||||
ApplyListProperties (paragraph_properties_, level);//выравнивания листа накатим на свойства параграфа
|
||||
|
||||
paragraph_properties_.pptx_convert(pptx_context_);
|
||||
@ -403,16 +408,9 @@ void pptx_text_context::Impl::write_rPr(std::wostream & strm)
|
||||
if (paragraph_style_name_.empty() && span_style_name_.empty() && !(!hyperlink_hId.empty()) && base_style_name_.empty())
|
||||
return;
|
||||
|
||||
odf_reader::text_format_properties_content text_properties_paragraph_;
|
||||
ApplyTextProperties (paragraph_style_name_, text_properties_paragraph_,odf_types::style_family::Paragraph);
|
||||
|
||||
odf_reader::text_format_properties_content text_properties_span_;
|
||||
ApplyTextProperties(span_style_name_, text_properties_span_,odf_types::style_family::Text);
|
||||
|
||||
odf_reader::text_format_properties_content text_properties_;
|
||||
|
||||
text_properties_.apply_from(text_properties_paragraph_);
|
||||
text_properties_.apply_from(text_properties_span_);
|
||||
|
||||
ApplyTextProperties(span_style_name_, paragraph_style_name_, text_properties_);
|
||||
|
||||
get_styles_context().start();
|
||||
|
||||
|
||||
@ -207,7 +207,7 @@ void xlsx_drawing_context::end_group()
|
||||
group_rect.cy -= group_rect.y;
|
||||
group_rect.cx -= group_rect.x;
|
||||
|
||||
for (int i = 0; i < impl_->groups_.back()->child_objects_.size(); i++)
|
||||
for (size_t i = 0; i < impl_->groups_.back()->child_objects_.size(); i++)
|
||||
{
|
||||
_rect & r = impl_->groups_.back()->child_objects_[i].svg_rect_.get();
|
||||
|
||||
@ -615,7 +615,7 @@ void xlsx_drawing_context::process_objects(xlsx_table_metrics & table_metrics)
|
||||
}
|
||||
void xlsx_drawing_context::process_objects(std::vector<drawing_object_description> objects, xlsx_table_metrics & table_metrics, xlsx_drawings_ptr xlsx_drawings_)
|
||||
{
|
||||
for (int i = 0 ; i < objects.size(); i++)
|
||||
for (size_t i = 0 ; i < objects.size(); i++)
|
||||
{
|
||||
drawing_object_description & obj = objects[i];
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user