Commit 0eedfe82 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@61917 954022d7-b5bf-4e40-9824-e11837661b57
parent 809065e7
......@@ -194,6 +194,17 @@ ASCOfficeDocFile/Tests/DocFileTest/bin/Debug/TestFile.docx svn_mime_002dtype=app
ASCOfficeDocFile/Tests/DocFileTest/bin/Debug/test.doc svn_mime_002dtype=application%2Foctet-stream
ASCOfficeDocFile/pole svnc_tsvn_003alogminsize=5
ASCOfficeDocFile/pole/linux svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/BinReader/DefaultThemeWriterWin.h svn_mime_002dtype=application%2Foctet-stream
ASCOfficeDocxFile2/Mac svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/project.xcworkspace svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/project.xcworkspace/xcuserdata svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/project.xcworkspace/xcuserdata/alexey.musinov.xcuserdatad svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/project.xcworkspace/xcuserdata/alexey.musinov.xcuserdatad/UserInterfaceState.xcuserstate svn_mime_002dtype=application%2Foctet-stream
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/xcuserdata svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/xcuserdata/alexey.musinov.xcuserdatad svnc_tsvn_003alogminsize=5
ASCOfficeDocxFile2/Mac/ASCOfficeDocxFile2Lib.xcodeproj/xcuserdata/alexey.musinov.xcuserdatad/xcschemes svnc_tsvn_003alogminsize=5
ASCOfficeEWSEditor/ASCOfficeEWSEditor/Editor/Charts svnc_bugtraq_003anumber=true
ASCOfficeFB2File/ASCOfficeFB2File/Resource/DocxTemplate.docx svn_mime_002dtype=application%2Foctet-stream
ASCOfficeFB2File/ASCOfficeFB2FileTest/ASCOfficeFB2FileTest/bin/Release/AVSOfficeFB2FileTest.exe svn_mime_002dtype=application%2Foctet-stream
......
......@@ -49,6 +49,27 @@ ASCImageStudio3/AVSImageRaw3/trunk/workingcopy/doxygen
ASCImageStudio3/AVSImageRaw3/trunk/workingcopy/lcmslib/bin
ASCImageStudio3/AVSImageRaw3/trunk/workingcopy/lcmslib/debug
ASCImageStudio3/AVSImageRaw3/trunk/workingcopy/lcmslib/release
ASCOfficeDocxFile2/AVSOfficeDocxFile2.ncb
ASCOfficeDocxFile2/AVSOfficeDocxFile2.suo
ASCOfficeDocxFile2/AVSOfficeDocxFile2.vcproj.AVSMEDIA.Dmitry.Davydov.user
ASCOfficeDocxFile2/BinReader/DefaultThemeWriter.h
ASCOfficeDocxFile2/Debug
ASCOfficeDocxFile2/DocWrapper/Debug
ASCOfficeDocxFile2/DocWrapper/Release
ASCOfficeDocxFile2/Release
ASCOfficeDocxFile2/ReleaseAVSOfficeDocxFile2.pdb
ASCOfficeDocxFile2/_AVSOfficeDocxFile2.h
ASCOfficeDocxFile2/_AVSOfficeDocxFile2.idl
ASCOfficeDocxFile2/_AVSOfficeDocxFile2.tlb
ASCOfficeDocxFile2/_AVSOfficeDocxFile2_i.c
ASCOfficeDocxFile2/_AVSOfficeDocxFile2_p.c
ASCOfficeDocxFile2/avsgraphics.tlh
ASCOfficeDocxFile2/avsimagestudio3.tlh
ASCOfficeDocxFile2/avsmediacore3.tlh
ASCOfficeDocxFile2/debug
ASCOfficeDocxFile2/msxml3.tlh
ASCOfficeDocxFile2/msxml3.tli
ASCOfficeDocxFile2/release
ASCOfficeOdpFile/*
ASCOfficeOdpFile/ODPFormat/Debug
ASCOfficeOdpFile/ODPFormat/ODPFormat.vcproj.AVSMEDIA.Viktor.Logunov.user
......
// 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") ];
\ No newline at end of file
// 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
HKCR
{
NoRemove AppID
{
'%APPID%' = s 'ASCOfficeDocxFile2'
'ASCOfficeDocxFile2.DLL'
{
val AppID = s '%APPID%'
}
}
}

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeDocxFile2", "ASCOfficeDocxFile2.vcproj", "{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
ProjectSection(ProjectDependencies) = postProject
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6} = {3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
ProjectSection(ProjectDependencies) = postProject
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
ProjectSection(ProjectDependencies) = postProject
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
EndProjectSection
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}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
ProjectSection(ProjectDependencies) = postProject
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{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}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
ProjectSection(ProjectDependencies) = postProject
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
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}") = "jbig", "..\DesktopEditor\cximage\jbig\jbig_vs2005.vcproj", "{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}"
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}"
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", "..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeUtilsLib", "..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcproj", "{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
ReleaseOpenSource|Win32 = ReleaseOpenSource|Win32
ReleaseOpenSource|x64 = ReleaseOpenSource|x64
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|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
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseOpenSource|Win32
{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
{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|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseOpenSource|Win32
{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
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|x64.ActiveCfg = Release Singlethreaded|Win32
{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}.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|x64
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.Build.0 = Release|x64
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.Build.0 = Debug|x64
{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|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|x64.Build.0 = Release|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.Build.0 = Release|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.ActiveCfg = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.Build.0 = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.Build.0 = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.Build.0 = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|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|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.Build.0 = Debug|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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|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
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="ASCOfficeDocxFile2"
ProjectGUID="{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
RootNamespace="ASCOfficeDocxFile2"
Keyword="AtlProj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="0"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/Debug&quot;"
IgnoreDefaultLibraryNames=""
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="0"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="_DEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/Debug&quot;"
IgnoreDefaultLibraryNames="LIBCMTD.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe &quot;$(ProjectDir)\version.h&quot;"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/Release&quot;"
IgnoreDefaultLibraryNames="LIBC.lib;LIBCMT"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe &quot;$(ProjectDir)\version.h&quot;"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
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"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/Release&quot;"
IgnoreDefaultLibraryNames="LIBC.lib;LIBCMT.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist\x64&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseASC|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;ASCBUILD"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib DocxFormat.lib"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="$(SolutionDir)/../Common/DocxFormat/Lib/Release"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseASC|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;ASCBUILD"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib DocxFormat.lib"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="$(SolutionDir)/../Common/DocxFormat/Lib/Release"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseOpenSource|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/$(ConfigurationName)&quot;"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="copy to RedistOpenSource"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseOpenSource|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_ATL_CSTRING;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/$(ConfigurationName)&quot;"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="copy to RedistOpenSource"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="res"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\ASCOfficeDocxFile2.rc"
>
</File>
<File
RelativePath=".\ASCOfficeDocxFile2.rgs"
>
</File>
</Filter>
<Filter
Name="_"
>
<File
RelativePath=".\ASCOfficeDocxFile2.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseASC|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseASC|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseOpenSource|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseOpenSource|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseASC|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseASC|x64"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseOpenSource|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseOpenSource|x64"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
ObjectFile="$(IntDir)\"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\version.h"
>
</File>
</Filter>
<Filter
Name="DocWrapper"
>
<File
RelativePath=".\DocWrapper\FontProcessor.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\DocWrapper\FontProcessor.h"
>
</File>
</Filter>
<Filter
Name="XLSX"
>
<File
RelativePath=".\DocWrapper\XlsxSerializer.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\DocWrapper\XlsxSerializer.h"
>
</File>
<Filter
Name="Common"
>
<File
RelativePath="..\XlsxSerializerCom\Common\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Common\Common.cpp"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Common\Common.h"
>
</File>
</Filter>
<Filter
Name="Reader"
>
<File
RelativePath="..\XlsxSerializerCom\Writer\BinaryCommonReader.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\BinaryReader.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CSVReader.cpp"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CSVReader.h"
>
</File>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath="..\XlsxSerializerCom\Reader\BinaryWriter.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\ChartFromToBinary.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CommonWriter.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CommonWriter.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\CSVWriter.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\CSVWriter.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="DOCX"
>
<File
RelativePath=".\DocWrapper\DocxSerializer.cpp"
>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\DocWrapper\DocxSerializer.h"
>
</File>
<Filter
Name="Reader"
>
<File
RelativePath=".\BinReader\ReaderClasses.h"
>
</File>
<File
RelativePath=".\BinReader\Readers.h"
>
</File>
<Filter
Name="OOXWriter"
>
<File
RelativePath=".\BinReader\ChartWriter.h"
>
</File>
<File
RelativePath=".\BinReader\CommentsWriter.h"
>
</File>
<File
RelativePath=".\BinReader\ContentTypesWriter.h"
>
</File>
<File
RelativePath=".\BinReader\DocumentRelsWriter.h"
>
</File>
<File
RelativePath=".\BinReader\DocumentWriter.h"
>
</File>
<File
RelativePath=".\BinReader\FileWriter.h"
>
</File>
<File
RelativePath=".\BinReader\fontTableWriter.h"
>
</File>
<File
RelativePath=".\BinReader\HeaderFooterWriter.h"
>
</File>
<File
RelativePath=".\BinReader\MediaWriter.h"
>
</File>
<File
RelativePath=".\BinReader\NumberingWriter.h"
>
</File>
<File
RelativePath=".\BinReader\SettingWriter.h"
>
</File>
<File
RelativePath=".\BinReader\StylesWriter.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Common"
>
<File
RelativePath=".\BinReader\FileDownloader.h"
>
</File>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath=".\BinWriter\BinEquationWriter.h"
>
</File>
<File
RelativePath=".\BinWriter\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath=".\BinWriter\BinWriters.h"
>
</File>
</Filter>
</Filter>
<File
RelativePath=".\DocxFile2.h"
>
</File>
<File
RelativePath=".\PptxFile.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
<File
RelativePath=".\XlsxFile2.h"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

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}"
ProjectSection(ProjectDependencies) = postProject
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
ProjectSection(ProjectDependencies) = postProject
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
EndProjectSection
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}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
ProjectSection(ProjectDependencies) = postProject
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
ProjectSection(ProjectDependencies) = postProject
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
ProjectSection(ProjectDependencies) = postProject
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
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}") = "jbig", "..\DesktopEditor\cximage\jbig\jbig_vs2005.vcproj", "{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}"
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}"
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", "..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeUtilsLib", "..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcproj", "{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormatTestRead", "..\Test\Applications\DocxFormatTests\DocxFormatTestRead\win32\DocxFormatTestRead.vcproj", "{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}"
ProjectSection(ProjectDependencies) = postProject
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6} = {3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseOpenSource|Win32 = ReleaseOpenSource|Win32
ReleaseOpenSource|x64 = ReleaseOpenSource|x64
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|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}.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}.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|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseOpenSource|Win32
{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|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseWithoutAsm|x64.ActiveCfg = Release Singlethreaded|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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|x64
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.Build.0 = Debug|x64
{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
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.ActiveCfg = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.Build.0 = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.Build.0 = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{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}.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|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseWithoutAsm|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|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.Build.0 = Debug|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|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.ReleaseWithoutAsm|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|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Debug|Win32.ActiveCfg = Debug|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Debug|Win32.Build.0 = Debug|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Debug|x64.ActiveCfg = Debug|x64
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Debug|x64.Build.0 = Debug|x64
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Release|Win32.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Release|Win32.Build.0 = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.Release|x64.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
{C774B3D6-5A46-4449-BC2E-9FFA4B21F233}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="OfficeDocxFileLib"
ProjectGUID="{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
RootNamespace="ASCOfficeDocxFile2"
Keyword="AtlProj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
UseOfMFC="0"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
Optimization="0"
AdditionalIncludeDirectories="../Common/DocxFormat/Source/XML/libxml2/XML/include;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_LIB;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="Urlmon.lib"
SuppressStartupBanner="true"
IgnoreAllDefaultLibraries="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
UseOfMFC="0"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
Optimization="0"
AdditionalIncludeDirectories="../Common/DocxFormat/Source/XML/libxml2/XML/include;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_LIB;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="Urlmon.lib"
SuppressStartupBanner="true"
IgnoreAllDefaultLibraries="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="../Common/DocxFormat/Source/XML/libxml2/XML/include;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_LIB;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER; USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="Urlmon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="../Common/DocxFormat/Source/XML/libxml2/XML/include;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_LIB;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER; USE_AVSOFFICESTUDIO_XMLUTILS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;BUILD_CONFIG_FULL_VERSION;DONT_WRITE_EMBEDDED_FONTS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
LinkLibraryDependencies="false"
AdditionalDependencies="Urlmon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="ReleaseASC|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;ASCBUILD"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib DocxFormat.lib"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="$(SolutionDir)/../Common/DocxFormat/Lib/Release"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseASC|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;ASCBUILD"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib DocxFormat.lib"
OutputFile="$(OutDir)/ASCOfficeDocxFile2.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="$(SolutionDir)/../Common/DocxFormat/Lib/Release"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\..\..\..\ASC\Redist\ASCOfficeStudio&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseOpenSource|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/$(ConfigurationName)&quot;"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="copy to RedistOpenSource"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="ReleaseOpenSource|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="3"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCOfficeDocxFile2.tlb"
HeaderFileName="DocxFile2.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCOfficeDocxFile2_i.c"
ProxyFileName="ASCOfficeDocxFile2_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Zm1000"
AdditionalIncludeDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/XML/include&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects&quot;;&quot;$(SolutionDir)/../../AVSImageStudio3/AVSGraphics/Objects/Font/FreeType&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Source/DocxFormat&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
AdditionalDependencies="comsvcs.lib comsuppw.lib gdiplus.lib"
OutputFile="$(OutDir)/$(ProjectName).dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../Common/DocxFormat/Source/XML/libxml2/win_build/Release&quot;;&quot;$(SolutionDir)/../Common/DocxFormat/Lib/$(ConfigurationName)&quot;"
IgnoreDefaultLibraryNames="LIBC.lib"
MergedIDLBaseFileName="_ASCOfficeDocxFile2.idl"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/ASCOfficeDocxFile2.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="copy to RedistOpenSource"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(SolutionDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="DocWrapper"
>
<File
RelativePath=".\DocWrapper\FontProcessor.cpp"
>
</File>
<File
RelativePath=".\DocWrapper\FontProcessor.h"
>
</File>
</Filter>
<Filter
Name="XLSX"
>
<File
RelativePath=".\DocWrapper\XlsxSerializer.cpp"
>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\DocWrapper\XlsxSerializer.h"
>
</File>
<Filter
Name="Common"
>
<File
RelativePath="..\XlsxSerializerCom\Common\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Common\Common.cpp"
>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\XlsxSerializerCom\Common\Common.h"
>
</File>
</Filter>
<Filter
Name="Reader"
>
<File
RelativePath="..\XlsxSerializerCom\Writer\BinaryCommonReader.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\BinaryReader.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CSVReader.cpp"
>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CSVReader.h"
>
</File>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath="..\XlsxSerializerCom\Reader\BinaryWriter.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\ChartFromToBinary.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CommonWriter.cpp"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Reader\CommonWriter.h"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\CSVWriter.cpp"
>
</File>
<File
RelativePath="..\XlsxSerializerCom\Writer\CSVWriter.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="DOCX"
>
<File
RelativePath=".\DocWrapper\DocxSerializer.cpp"
>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/bigobj"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\DocWrapper\DocxSerializer.h"
>
</File>
<Filter
Name="Reader"
>
<File
RelativePath=".\BinReader\ReaderClasses.h"
>
</File>
<File
RelativePath=".\BinReader\Readers.h"
>
</File>
<Filter
Name="OOXWriter"
>
<File
RelativePath=".\BinReader\ChartWriter.h"
>
</File>
<File
RelativePath=".\BinReader\CommentsWriter.h"
>
</File>
<File
RelativePath=".\BinReader\ContentTypesWriter.h"
>
</File>
<File
RelativePath=".\BinReader\DefaultThemeWriterWin.h"
>
</File>
<File
RelativePath=".\BinReader\DocumentRelsWriter.h"
>
</File>
<File
RelativePath=".\BinReader\DocumentWriter.h"
>
</File>
<File
RelativePath=".\BinReader\FileWriter.h"
>
</File>
<File
RelativePath=".\BinReader\fontTableWriter.h"
>
</File>
<File
RelativePath=".\BinReader\HeaderFooterWriter.h"
>
</File>
<File
RelativePath=".\BinReader\MediaWriter.h"
>
</File>
<File
RelativePath=".\BinReader\NumberingWriter.h"
>
</File>
<File
RelativePath=".\BinReader\SettingWriter.h"
>
</File>
<File
RelativePath=".\BinReader\StylesWriter.h"
>
</File>
<File
RelativePath=".\BinReader\webSettingsWriter.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath=".\BinWriter\BinEquationWriter.h"
>
</File>
<File
RelativePath=".\BinWriter\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath=".\BinWriter\BinWriters.h"
>
</File>
</Filter>
</Filter>
<File
RelativePath=".\DocxFile2.h"
>
</File>
<File
RelativePath="..\DesktopEditor\fontengine\FontManager.cpp"
>
</File>
<File
RelativePath=".\PptxFile.h"
>
</File>
<File
RelativePath=".\version.h"
>
</File>
<File
RelativePath=".\XlsxFile2.h"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
#ifndef CHART_WRITER
#define CHART_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class ChartWriter
{
class ChartElem
{
public:
CString content;
CString filename;
int index;
};
std::vector<ChartElem*> m_aCharts;
ContentTypesWriter& m_oContentTypesWriter;
int nChartCount;
public:
CString m_sDir;
public:
ChartWriter(CString sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
{
nChartCount = 0;
}
~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()
{
if(false == IsEmpty())
{
OOX::CPath pathChartDir = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("charts");
FileSystem::Directory::CreateDirectory(string2std_string(pathChartDir.GetPath()));
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;
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(CString(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n")));
oFile.WriteStringUTF8(elem->content);
oFile.CloseFile();
//Content_Types
CString sRelPath = _T("/word/charts/") + elem->filename;
m_oContentTypesWriter.AddOverride(sRelPath, CString(_T("application/vnd.openxmlformats-officedocument.drawingml.chart+xml")));
}
}
}
void AddChart(CString& content, CString& sRelsName, CString& sFileName, int& index)
{
ChartElem* pChartElem = new ChartElem();
pChartElem->content = content;
pChartElem->index = nChartCount + 1;
nChartCount++;
pChartElem->filename.Format(_T("chart%d.xml"), pChartElem->index);
sRelsName = _T("charts/") + pChartElem->filename;
sFileName = pChartElem->filename;
index = pChartElem->index;
m_aCharts.push_back(pChartElem);
}
int getChartCount()
{
return nChartCount;
}
void setChartCount(int val)
{
nChartCount = val;
}
};
}
#endif // #ifndef CHART_WRITER
#ifndef COMMENTS_WRITER
#define COMMENTS_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
static CString g_string_comment_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:comments 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:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 wp14\">");
static CString g_string_comment_End = _T("</w:comments>");
static CString g_string_commentExt_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w15:commentsEx 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:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 wp14\">");
static CString g_string_commentExt_End = _T("</w15:commentsEx>");
static CString g_string_people_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w15:people 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:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 wp14\">");
static CString g_string_people_End = _T("</w15:people>");
class CommentsWriter
{
CString m_sDir;
ContentTypesWriter& m_oContentTypesWriter;
public:
CString m_sComment;
CString m_sCommentExt;
CString m_sPeople;
public:
CommentsWriter(CString sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
{
}
void setElements(CString& sComment, CString& sCommentExt, CString& sPeople)
{
m_sComment = sComment;
m_sCommentExt = sCommentExt;
m_sPeople = sPeople;
}
void Write()
{
if(false == m_sComment.IsEmpty())
{
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("comments.xml");
CFile oFile;
oFile.CreateFile(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(CString(_T("/word/comments.xml")), CString(_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.IsEmpty())
{
CFile oFile;
oFile.CreateFile(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(CString(_T("/word/commentsExtended.xml")), CString(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml")));
}
if(false == m_sPeople.IsEmpty())
{
CFile oFile;
oFile.CreateFile(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(CString(_T("/word/people.xml")), CString(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml")));
}
}
};
}
#endif // #ifndef COMMENTS_WRITER
#ifndef CONTENT_TYPES_WRITER
#define CONTENT_TYPES_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
static CString g_string_ct_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">");
static CString g_string_ct_Ext = _T("<Default Extension=\"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\"/>");
static CString g_string_ct_Override = _T("<Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/><Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/><Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/><Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/><Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/><Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/><Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/><Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/>");
static CString g_string_ct_End = _T("</Types>");
class ContentTypesWriter
{
XmlUtils::CStringWriter m_oWriter;
CString m_sDir;
XmlUtils::CStringWriter m_oAdditional;
public:
ContentTypesWriter(CString 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 + _T("/[Content_Types].xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(m_oWriter.GetData());
oFile.CloseFile();
}
void AddOverride(const CString& PartName, const CString& ContentType)
{
CString sOverride;sOverride.Format(_T("<Override PartName=\"%ls\" ContentType=\"%ls\"/>"),PartName , ContentType);
m_oAdditional.WriteString(sOverride);
}
void AddOverrideRaw(const CString& sXml)
{
m_oAdditional.WriteString(sXml);
}
};
}
#endif // #ifndef CONTENT_TYPES_WRITER
#ifndef DEFAULTTHEMEWRITER_H
#define DEFAULTTHEMEWRITER_H
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class DefaultThemeWriter
{
public:
DefaultThemeWriter()
{
}
void Write(CString sThemeFilePath)
{
CString 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\"> \
<a:themeElements> \
<a:clrScheme name=\"Office\"> \
<a:dk1> \
<a:sysClr val=\"windowText\" lastClr=\"000000\"/> \
</a:dk1> \
<a:lt1> \
<a:sysClr val=\"window\" lastClr=\"FFFFFF\"/> \
</a:lt1> \
<a:dk2> \
<a:srgbClr val=\"1F497D\"/> \
</a:dk2> \
<a:lt2> \
<a:srgbClr val=\"EEECE1\"/> \
</a:lt2> \
<a:accent1> \
<a:srgbClr val=\"4F81BD\"/> \
</a:accent1> \
<a:accent2> \
<a:srgbClr val=\"C0504D\"/> \
</a:accent2> \
<a:accent3> \
<a:srgbClr val=\"9BBB59\"/> \
</a:accent3> \
<a:accent4> \
<a:srgbClr val=\"8064A2\"/> \
</a:accent4> \
<a:accent5> \
<a:srgbClr val=\"4BACC6\"/> \
</a:accent5> \
<a:accent6> \
<a:srgbClr val=\"F79646\"/> \
</a:accent6> \
<a:hlink> \
<a:srgbClr val=\"0000FF\"/> \
</a:hlink> \
<a:folHlink> \
<a:srgbClr val=\"800080\"/> \
</a:folHlink> \
</a:clrScheme> ");
s_Common +=
_T("<a:fontScheme name=\"Office\"> \
<a:majorFont> \
<a:latin typeface=\"Cambria\"/> \
<a:ea typeface=\"\"/> \
<a:cs typeface=\"\"/> \
<a:font script=\"Jpan\" typeface=\"?? ????\"/> \
<a:font script=\"Hang\" typeface=\"?? ??\"/> \
<a:font script=\"Hans\" typeface=\"??\"/> \
<a:font script=\"Hant\" typeface=\"????\"/> \
<a:font script=\"Arab\" typeface=\"Times New Roman\"/> \
<a:font script=\"Hebr\" typeface=\"Times New Roman\"/> \
<a:font script=\"Thai\" typeface=\"Angsana New\"/> \
<a:font script=\"Ethi\" typeface=\"Nyala\"/> \
<a:font script=\"Beng\" typeface=\"Vrinda\"/> \
<a:font script=\"Gujr\" typeface=\"Shruti\"/> \
<a:font script=\"Khmr\" typeface=\"MoolBoran\"/> \
<a:font script=\"Knda\" typeface=\"Tunga\"/> \
<a:font script=\"Guru\" typeface=\"Raavi\"/> \
<a:font script=\"Cans\" typeface=\"Euphemia\"/> \
<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> \
<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> \
<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> \
<a:font script=\"Thaa\" typeface=\"MV Boli\"/> \
<a:font script=\"Deva\" typeface=\"Mangal\"/> \
<a:font script=\"Telu\" typeface=\"Gautami\"/> \
<a:font script=\"Taml\" typeface=\"Latha\"/> \
<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> \
<a:font script=\"Orya\" typeface=\"Kalinga\"/> \
<a:font script=\"Mlym\" typeface=\"Kartika\"/> \
<a:font script=\"Laoo\" typeface=\"DokChampa\"/> \
<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> \
<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> \
<a:font script=\"Viet\" typeface=\"Times New Roman\"/> \
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
</a:majorFont> \
<a:minorFont> \
<a:latin typeface=\"Calibri\"/> \
<a:ea typeface=\"\"/> \
<a:cs typeface=\"\"/> \
<a:font script=\"Jpan\" typeface=\"?? ??\"/> \
<a:font script=\"Hang\" typeface=\"?? ??\"/> \
<a:font script=\"Hans\" typeface=\"??\"/> \
<a:font script=\"Hant\" typeface=\"????\"/> \
<a:font script=\"Arab\" typeface=\"Arial\"/> \
<a:font script=\"Hebr\" typeface=\"Arial\"/> \
<a:font script=\"Thai\" typeface=\"Cordia New\"/> \
<a:font script=\"Ethi\" typeface=\"Nyala\"/> \
<a:font script=\"Beng\" typeface=\"Vrinda\"/> \
<a:font script=\"Gujr\" typeface=\"Shruti\"/> \
<a:font script=\"Khmr\" typeface=\"DaunPenh\"/> \
<a:font script=\"Knda\" typeface=\"Tunga\"/> \
<a:font script=\"Guru\" typeface=\"Raavi\"/> \
<a:font script=\"Cans\" typeface=\"Euphemia\"/> \
<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> \
<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> \
<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> \
<a:font script=\"Thaa\" typeface=\"MV Boli\"/> \
<a:font script=\"Deva\" typeface=\"Mangal\"/> \
<a:font script=\"Telu\" typeface=\"Gautami\"/> \
<a:font script=\"Taml\" typeface=\"Latha\"/> \
<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> \
<a:font script=\"Orya\" typeface=\"Kalinga\"/> \
<a:font script=\"Mlym\" typeface=\"Kartika\"/> \
<a:font script=\"Laoo\" typeface=\"DokChampa\"/> \
<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> \
<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> \
<a:font script=\"Viet\" typeface=\"Arial\"/> \
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
</a:minorFont> \
</a:fontScheme>");
s_Common +=
_T("<a:fmtScheme name=\"Office\"> \
<a:fillStyleLst> \
<a:solidFill> \
<a:schemeClr val=\"phClr\"/> \
</a:solidFill> \
<a:gradFill rotWithShape=\"1\"> \
<a:gsLst> \
<a:gs pos=\"0\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"50000\"/> \
<a:satMod val=\"300000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"35000\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"37000\"/> \
<a:satMod val=\"300000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"100000\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"15000\"/> \
<a:satMod val=\"350000\"/> \
</a:schemeClr> \
</a:gs> \
</a:gsLst> \
<a:lin ang=\"16200000\" scaled=\"1\"/> \
</a:gradFill> \
<a:gradFill rotWithShape=\"1\"> \
<a:gsLst> \
<a:gs pos=\"0\"> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"51000\"/> \
<a:satMod val=\"130000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"80000\"> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"93000\"/> \
<a:satMod val=\"130000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"100000\"> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"94000\"/> \
<a:satMod val=\"135000\"/> \
</a:schemeClr> \
</a:gs> \
</a:gsLst> \
<a:lin ang=\"16200000\" scaled=\"0\"/> \
</a:gradFill> \
</a:fillStyleLst> \
<a:lnStyleLst> \
<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
<a:solidFill> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"95000\"/> \
<a:satMod val=\"105000\"/> \
</a:schemeClr> \
</a:solidFill> \
<a:prstDash val=\"solid\"/> \
</a:ln> \
<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
<a:solidFill> \
<a:schemeClr val=\"phClr\"/> \
</a:solidFill> \
<a:prstDash val=\"solid\"/> \
</a:ln> \
<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
<a:solidFill> \
<a:schemeClr val=\"phClr\"/> \
</a:solidFill> \
<a:prstDash val=\"solid\"/> \
</a:ln> \
</a:lnStyleLst> \
<a:effectStyleLst> \
<a:effectStyle> \
<a:effectLst> \
<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"> \
<a:srgbClr val=\"000000\"> \
<a:alpha val=\"38000\"/> \
</a:srgbClr> \
</a:outerShdw> \
</a:effectLst> \
</a:effectStyle> \
<a:effectStyle> \
<a:effectLst> \
<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> \
<a:srgbClr val=\"000000\"> \
<a:alpha val=\"35000\"/> \
</a:srgbClr> \
</a:outerShdw> \
</a:effectLst> \
</a:effectStyle> \
<a:effectStyle> \
<a:effectLst> \
<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> \
<a:srgbClr val=\"000000\"> \
<a:alpha val=\"35000\"/> \
</a:srgbClr> \
</a:outerShdw> \
</a:effectLst> \
<a:scene3d> \
<a:camera prst=\"orthographicFront\"> \
<a:rot lat=\"0\" lon=\"0\" rev=\"0\"/> \
</a:camera > \
<a:lightRig rig=\"threePt\" dir=\"t\"> \
<a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/> \
</a:lightRig> \
</a:scene3d> \
<a:sp3d> \
<a:bevelT w=\"63500\" h=\"25400\"/> \
</a:sp3d> \
</a:effectStyle> \
</a:effectStyleLst> \
<a:bgFillStyleLst> \
<a:solidFill> \
<a:schemeClr val=\"phClr\"/> \
</a:solidFill> \
<a:gradFill rotWithShape=\"1\"> \
<a:gsLst> \
<a:gs pos=\"0\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"40000\"/> \
<a:satMod val=\"350000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"40000\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"45000\"/> \
<a:shade val=\"99000\"/> \
<a:satMod val=\"350000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"100000\"> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"20000\"/> \
<a:satMod val=\"255000\"/> \
</a:schemeClr> \
</a:gs> \
</a:gsLst> \
<a:path path=\"circle\"> \
<a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/> \
</a:path> \
</a:gradFill> \
<a:gradFill rotWithShape=\"1\"> \
<a:gsLst> \
<a:gs pos=\"0\"> \
<a:schemeClr val=\"phClr\"> \
<a:tint val=\"80000\"/> \
<a:satMod val=\"300000\"/> \
</a:schemeClr> \
</a:gs> \
<a:gs pos=\"100000\"> \
<a:schemeClr val=\"phClr\"> \
<a:shade val=\"30000\"/> \
<a:satMod val=\"200000\"/> \
</a:schemeClr> \
</a:gs> \
</a:gsLst> \
<a:path path=\"circle\"> \
<a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/> \
</a:path> \
</a:gradFill> \
</a:bgFillStyleLst> \
</a:fmtScheme> \
</a:themeElements> \
<a:objectDefaults/> \
<a:extraClrSchemeLst/> \
</a:theme>");
OOX::CPath fileName = sThemeFilePath;
CFile oFile;
oFile.CreateFile(fileName.GetPath());
oFile.WriteStringUTF8(s_Common);
oFile.CloseFile();
}
};
}
#endif // DEFAULTTHEMEWRITER_H
#ifndef DOCUMENT_RELS_WRITER
#define DOCUMENT_RELS_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class DocumentRelsWriter
{
CString m_sDir;
public:
DocumentRelsWriter(CString sDir):m_sDir(sDir)
{
}
void Write()
{
CString s_Common;
s_Common = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> \
<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"> \
<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"word/document.xml\"/> \
<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/> \
<Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/> \
</Relationships>");
OOX::CPath fileName = m_sDir + FILE_SEPARATOR_STR + _T("_rels") + FILE_SEPARATOR_STR + _T(".rels");
CFile oFile;
oFile.CreateFile(fileName.GetPath());
oFile.WriteStringUTF8(s_Common);
oFile.CloseFile();
}
};
}
#endif // #ifndef DOCUMENT_RELS_WRITER
#ifndef DOCUMENT_WRITER
#define DOCUMENT_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
#include "../BinWriter/BinReaderWriterDefines.h";
namespace Writers
{
class DocumentWriter : public ContentWriter
{
XmlUtils::CStringWriter m_oWriter;
HeaderFooterWriter& m_oHeaderFooterWriter;
public:
CString m_sDir;
public:
DocumentWriter(CString sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
{
}
void Write()
{
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") +FILE_SEPARATOR_STR + _T("document.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(CString(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><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\"><w:body>")));
oFile.WriteStringUTF8(m_oContent.GetData());
oFile.WriteStringUTF8(CString(_T("<w:sectPr >")));
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
oFile.WriteStringUTF8(m_oSecPr.GetData());
oFile.WriteStringUTF8(CString(_T("</w:sectPr>")));
oFile.WriteStringUTF8(CString(_T("</w:body></w:document>")));
oFile.CloseFile();
}
CString WriteSectPrHdrFtr()
{
CString sResult;
if(BinDocxRW::g_nCurFormatVersion < 5)
{
bool bTitlePage = false;
for(int i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
{
HdrFtrItem* pHeader = m_oHeaderFooterWriter.m_aHeaders[i];
if(false == pHeader->rId.IsEmpty())
{
if(SimpleTypes::hdrftrFirst == pHeader->eType)
{
sResult += _T("<w:headerReference w:type=\"first\" r:id=\"") + pHeader->rId + _T("\"/>");
bTitlePage = true;
}
else if(SimpleTypes::hdrftrEven == pHeader->eType)
{
sResult += _T("<w:headerReference w:type=\"even\" r:id=\"") + pHeader->rId + _T("\"/>");
}
else
{
sResult += _T("<w:headerReference w:type=\"default\" r:id=\"") + pHeader->rId + _T("\"/>");
}
}
}
for(int i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
{
HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i];
if(false == pFooter->rId.IsEmpty())
{
if(SimpleTypes::hdrftrFirst == pFooter->eType)
{
sResult += _T("<w:footerReference w:type=\"first\" r:id=\"") + pFooter->rId + _T("\"/>");
bTitlePage = true;
}
else if(SimpleTypes::hdrftrEven == pFooter->eType)
{
sResult += _T("<w:footerReference w:type=\"even\" r:id=\"") + pFooter->rId + _T("\"/>");
}
else
{
sResult += _T("<w:footerReference w:type=\"default\" r:id=\"") + pFooter->rId + _T("\"/>");
}
}
}
if(true == bTitlePage)
sResult += _T("<w:titlePg/>");
}
return sResult;
}
};
}
#endif // #ifndef DOCUMENT_WRITER
#ifndef FILE_WRITER
#define FILE_WRITER
#include "NumberingWriter.h"
#include "fontTableWriter.h"
#include "HeaderFooterWriter.h"
#include "DocumentWriter.h"
#include "MediaWriter.h"
#include "StylesWriter.h"
#include "SettingWriter.h"
#include "CommentsWriter.h"
#include "ChartWriter.h"
#include "DocumentRelsWriter.h"
#include "webSettingsWriter.h"
#if defined(_WIN32) || defined (_WIN64)
#include "DefaultThemeWriterWin.h"
#else
#include "DefaultThemeWriterLinux.h"
#endif
namespace BinDocxRW {
class CComments;
}
namespace Writers
{
class FileWriter
{
public:
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
CString m_sThemePath;
bool m_bSaveChartAsImg;
ContentTypesWriter m_oContentTypesWriter;
FontTableWriter m_oFontTableWriter;
DocumentWriter m_oDocumentWriter;
MediaWriter m_oMediaWriter;
StylesWriter m_oStylesWriter;
NumberingWriter m_oNumberingWriter;
HeaderFooterWriter m_oHeaderFooterWriter;
SettingWriter m_oSettingWriter;
CommentsWriter m_oCommentsWriter;
ChartWriter m_oChartWriter;
DocumentRelsWriter m_oDocumentRelsWriter;
WebSettingsWriter m_oWebSettingsWriter;
DefaultThemeWriter m_oDefaultTheme;
int m_nDocPrIndex;
BinDocxRW::CComments* m_pComments;
public:
FileWriter(CString sDirOutput,CString sFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, CString sThemePath):
m_pDrawingConverter(pDrawingConverter),m_sThemePath(sThemePath),m_bSaveChartAsImg(bSaveChartAsImg),
m_oContentTypesWriter(sDirOutput), m_oFontTableWriter(sDirOutput, sFontDir),
m_oHeaderFooterWriter(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),
m_nDocPrIndex(0),
m_pComments(NULL)
{
}
public: int getNextDocPr()
{
m_nDocPrIndex++;
return m_nDocPrIndex;
}
};
}
#endif // #ifndef FILE_WRITER
#ifndef HEADER_FOOTER_WRITER
#define HEADER_FOOTER_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class ContentWriter
{
public:
XmlUtils::CStringWriter m_oContent;
XmlUtils::CStringWriter m_oSecPr;
};
class HdrFtrItem
{
public:
HdrFtrItem(SimpleTypes::EHdrFtr _eType)
{
eType = _eType;
}
bool IsEmpty()
{
return m_sFilename.IsEmpty();
}
CString m_sFilename;
ContentWriter Header;
CString rId;
SimpleTypes::EHdrFtr eType;
};
static CString 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 CString g_string_hdr_End = _T("</w:hdr>");
static CString g_string_ftr_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:ftr 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 CString g_string_ftr_End = _T("</w:ftr>");
class HeaderFooterWriter
{
CString m_sDir;
ContentTypesWriter& m_oContentTypesWriter;
public:
std::vector<HdrFtrItem*> m_aHeaders;
std::vector<HdrFtrItem*> m_aFooters;
public:
HeaderFooterWriter(CString sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
{
}
~HeaderFooterWriter()
{
for(int 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)
delete m_aFooters[i];
m_aFooters.clear();
}
void Write()
{
for(int 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)
{
HdrFtrItem* pFooter = m_aFooters[i];
WriteItem(_T("footer"), pFooter->m_sFilename, pFooter->Header, false);
}
}
void WriteItem(CString sHeader, CString& sFilename, ContentWriter& m_oWriter, bool bHeader)
{
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
CFile oFile;
oFile.CreateFile(filePath.GetPath());
if(bHeader)
oFile.WriteStringUTF8(g_string_hdr_Start);
else
oFile.WriteStringUTF8(g_string_ftr_Start);
oFile.WriteStringUTF8(m_oWriter.m_oContent.GetData());
if(bHeader)
oFile.WriteStringUTF8(g_string_hdr_End);
else
oFile.WriteStringUTF8(g_string_ftr_End);
oFile.CloseFile();
//Content_Types
m_oContentTypesWriter.AddOverride(_T("/word/") + sFilename, _T("application/vnd.openxmlformats-officedocument.wordprocessingml.")+sHeader+_T("+xml"));
//Rels
//return m_oDocumentRelsWriter.AddRels(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/") + sHeader, sFilename);
}
};
}
#endif // #ifndef HEADER_FOOTER_WRITER
#ifndef MEDIA_WRITER
#define MEDIA_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class MediaWriter
{
XmlUtils::CStringWriter m_oWriter;
CString m_sDir;
CString m_sMediaDir;
public:
std::vector<CString> m_aImageNames;
long nImageCount;
public:
MediaWriter(CString sDir):m_sDir(sDir)
{
nImageCount = 0;
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("media");
m_sMediaDir = filePath.GetPath();
}
CString AddImageGetNewPath()
{
OOX::CSystemUtility::CreateDirectories(m_sMediaDir);
CString sNewImgName;sNewImgName.Format(_T("image%d.jpg"), (nImageCount + 1));
CString sNewImg = m_sMediaDir + FILE_SEPARATOR_STR + sNewImgName;
nImageCount++;
return sNewImg;
}
void AddImage2(FILE* pFile)
{
long size = ftell(pFile);
if(size > 0)
{
rewind(pFile);
BYTE* pData = new BYTE[size];
DWORD dwSizeRead = (DWORD)fread((void*)pData, 1, size, pFile);
if(dwSizeRead > 0)
{
CString sNewImagePath = AddImageGetNewPath();
NSFile::CFileBinary oFile;
oFile.CreateFileW(string2std_string(sNewImagePath));
oFile.WriteFile(pData, dwSizeRead);
oFile.CloseFile();
CString sFilename = NSSystemPath::GetFileName(string2std_string(sNewImagePath)).c_str();
m_aImageNames.push_back(sFilename);
}
RELEASEARRAYOBJECTS(pData);
}
}
void AddImage(const CString& sImg)
{
OOX::CPath pathNewImg = AddImageGetNewPath();
NSFile::CFileBinary::Copy(string2std_string(sImg), string2std_string(pathNewImg.GetPath()));
CString sFilename = NSSystemPath::GetFileName(string2std_string(pathNewImg.GetPath())).c_str();
m_aImageNames.push_back(sFilename);
}
};
}
#endif // #ifndef MEDIA_WRITER
#ifndef NUMBERING_WRITER
#define NUMBERING_WRITER
#include "ContentTypesWriter.h"
#include "DocumentRelsWriter.h"
namespace Writers
{
static CString g_string_n_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:numbering 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 CString g_string_n_End = _T("</w:numbering>");
class NumberingWriter
{
XmlUtils::CStringWriter m_oWriter;
CString m_sDir;
ContentTypesWriter& m_oContentTypesWriter;
public:
XmlUtils::CStringWriter m_oANum;
XmlUtils::CStringWriter m_oNumList;
public:
NumberingWriter(CString sDir, ContentTypesWriter& oContentTypesWriter):m_sDir(sDir),m_oContentTypesWriter(oContentTypesWriter)
{
}
bool IsEmpty()
{
return 0 == m_oANum.GetCurSize();
}
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);
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("numbering.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(m_oWriter.GetData());
oFile.CloseFile();
//ContentType
m_oContentTypesWriter.AddOverride(CString(_T("/word/numbering.xml")), CString(_T("application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml")));
//Rels
//m_oDocumentRelsWriter.AddRels(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"), _T("numbering.xml"));
}
}
};
}
#endif // #ifndef NUMBERING_WRITER
#ifndef READER_CLASSES
#define READER_CLASSES
namespace BinDocxRW {
class SectPr
{
public:
CString sHeaderFooterReference;
double W;
double H;
BYTE cOrientation;
double Left;
double Top;
double Right;
double Bottom;
double Header;
double Footer;
bool TitlePg;
bool EvenAndOddHeaders;
BYTE SectionType;
int PageNumStart;
bool bHeader;
bool bFooter;
bool bTitlePg;
bool bEvenAndOddHeaders;
bool bSectionType;
bool bPageNumStart;
SectPr()
{
W = Page_Width;
H = Page_Height;
cOrientation = orientation_Portrait;
Left = 30;
Top = 20;
Right = 15;
Bottom = 20;
Header = 12.5;
Footer = 12.5;
sHeaderFooterReference = _T("");
bHeader = false;
bFooter = false;
bTitlePg = false;
bEvenAndOddHeaders = false;
bSectionType = false;
bPageNumStart = false;
}
CString Write()
{
CString sRes = _T("");
long nWidth = SerializeCommon::Round(W * g_dKoef_mm_to_twips);
long nHeight = SerializeCommon::Round(H * g_dKoef_mm_to_twips);
long nMLeft = SerializeCommon::Round(Left * g_dKoef_mm_to_twips);
long nMTop = SerializeCommon::Round(Top * g_dKoef_mm_to_twips);
long nMRight = SerializeCommon::Round(Right * g_dKoef_mm_to_twips);
long nMBottom = SerializeCommon::Round(Bottom * g_dKoef_mm_to_twips);
long nMHeader = SerializeCommon::Round(Header * g_dKoef_mm_to_twips);
long nMFooter = SerializeCommon::Round(Footer * g_dKoef_mm_to_twips);
if(!sHeaderFooterReference.IsEmpty())
sRes.Append(sHeaderFooterReference);
if(bSectionType)
{
CString sType;
switch(SectionType)
{
case 0: sType = _T("continuous");break;
case 1: sType = _T("evenPage");break;
case 2: sType = _T("nextColumn");break;
case 3: sType = _T("nextPage");break;
case 4: sType = _T("oddPage");break;
default: sType = _T("nextPage");break;
}
sRes.AppendFormat(_T("<w:type w:val=\"%ls\"/>"), (const TCHAR *) sType);
}
if(orientation_Portrait == cOrientation)
sRes.AppendFormat(_T("<w:pgSz w:w=\"%d\" w:h=\"%d\"/>"), nWidth, nHeight);
else
sRes.AppendFormat(_T("<w:pgSz w:w=\"%d\" w:h=\"%d\" w:orient=\"landscape\"/>"), nWidth, nHeight);
sRes.AppendFormat(_T("<w:pgMar w:top=\"%d\" w:right=\"%d\" w:bottom=\"%d\" w:left=\"%d\" w:gutter=\"0\""), nMTop, nMRight, nMBottom, nMLeft);
if(bHeader)
sRes.AppendFormat(_T(" w:header=\"%d\""), nMHeader);
if(bFooter)
sRes.AppendFormat(_T(" w:footer=\"%d\""), nMFooter);
sRes.Append(_T("/>"));
if(bPageNumStart)
sRes.AppendFormat(_T("<w:pgNumType w:start=\"%d\"/>"), PageNumStart);
sRes.Append(_T("<w:cols w:space=\"708\"/><w:docGrid w:linePitch=\"360\"/>"));
if(bTitlePg && TitlePg)
sRes.Append(_T("<w:titlePg/>"));
return sRes;
}
};
class docRGB
{
public:
BYTE R;
BYTE G;
BYTE B;
docRGB()
{
R = 255;
G = 255;
B = 255;
}
CString ToString()
{
CString sR;sR.Format(_T("%02X"), R);
CString sG;sG.Format(_T("%02X"), G);
CString sB;sB.Format(_T("%02X"), B);
return sR + sG + sB;
}
};
class CThemeColor{
public:
bool Auto;
BYTE Color;
BYTE Tint;
BYTE Shade;
bool bShade;
bool bTint;
bool bColor;
CThemeColor(){
Reset();
}
void Reset()
{
bShade = false;
bTint = false;
bColor = false;
Auto = false;
}
bool IsNoEmpty()
{
return bShade || bTint || bColor || Auto;
}
CString ToStringColor()
{
CString sRes;
if(bColor)
{
switch(Color)
{
case 0: sRes = _T("accent1");break;
case 1: sRes = _T("accent2");break;
case 2: sRes = _T("accent3");break;
case 3: sRes = _T("accent4");break;
case 4: sRes = _T("accent5");break;
case 5: sRes = _T("accent6");break;
case 6: sRes = _T("background1");break;
case 7: sRes = _T("background2");break;
case 8: sRes = _T("dark1");break;
case 9: sRes = _T("dark2");break;
case 10: sRes = _T("followedHyperlink");break;
case 11: sRes = _T("hyperlink");break;
case 12: sRes = _T("light1");break;
case 13: sRes = _T("light2");break;
case 14: sRes = _T("none");break;
case 15: sRes = _T("text1");break;
case 16: sRes = _T("text2");break;
default : sRes = _T("none");break;
}
}
return sRes;
}
CString ToStringTint()
{
CString sRes;
if(bTint)
{
if(Tint > 0xF)
sRes.AppendFormat(_T("%X"), Tint);
else
sRes.AppendFormat(_T("0%X"), Tint);
}
return sRes;
}
CString ToStringShade()
{
CString sRes;
if(bShade)
{
if(Shade > 0xF)
sRes.AppendFormat(_T("%X"), Shade);
else
sRes.AppendFormat(_T("0%X"), Shade);
}
return sRes;
}
};
class Spacing
{
public:
bool bLineRule;
bool bLine;
bool bAfter;
bool bBefore;
bool bAfterAuto;
bool bBeforeAuto;
BYTE LineRule;
double Line;
double After;
double Before;
bool AfterAuto;
bool BeforeAuto;
Spacing()
{
bLineRule = false;
bLine = false;
bAfter = false;
bBefore = false;
bAfterAuto = false;
bBeforeAuto = false;
}
};
class Shd
{
public:
BYTE Value;
docRGB Color;
CThemeColor ThemeColor;
bool bColor;
bool bThemeColor;
Shd()
{
Value = shd_Nil;
bColor = false;
bThemeColor = false;
}
CString ToString()
{
CString sShd;
if(bColor || (bThemeColor && ThemeColor.IsNoEmpty()))
{
sShd.Append(_T("<w:shd w:val=\"clear\" w:color=\"auto\""));
if(bColor)
sShd.AppendFormat(_T(" w:fill=\"%ls\""), (const TCHAR *) Color.ToString());
if(bThemeColor && ThemeColor.IsNoEmpty())
{
if(ThemeColor.Auto && !bColor)
sShd.Append(_T(" w:fill=\"auto\""));
if(ThemeColor.bColor)
sShd.AppendFormat(_T(" w:themeFill=\"%ls\""), (const TCHAR *) ThemeColor.ToStringColor());
if(ThemeColor.bTint)
sShd.AppendFormat(_T(" w:themeFillTint=\"%ls\""), (const TCHAR *) ThemeColor.ToStringTint());
if(ThemeColor.bShade)
sShd.AppendFormat(_T(" w:themeFillShade=\"%ls\""), (const TCHAR *) ThemeColor.ToStringShade());
}
sShd.Append(_T("/>"));
}
return sShd;
}
};
class Tab
{
public:
BYTE Val;
double Pos;
Tab()
{
Val = shd_Nil;
Pos = 0;
}
};
class Tabs
{
public:
std::vector<Tab> m_aTabs;
};
class rPr
{
private:
std::map<CString, int>& m_mapFonts;
public:
bool Bold;
bool Italic;
bool Underline;
bool Strikeout;
CString FontAscii;
CString FontHAnsi;
CString FontAE;
CString FontCS;
long FontSize;
docRGB Color;
BYTE VertAlign;
docRGB HighLight;
CString Shd;
CString RStyle;
double Spacing;
bool DStrikeout;
bool Caps;
bool SmallCaps;
double Position;
BYTE FontHint;
bool BoldCs;
bool ItalicCs;
long FontSizeCs;
bool Cs;
bool Rtl;
CString Lang;
CString LangBidi;
CString LangEA;
CThemeColor ThemeColor;
bool Vanish;
bool bBold;
bool bItalic;
bool bUnderline;
bool bStrikeout;
bool bFontAscii;
bool bFontHAnsi;
bool bFontAE;
bool bFontCS;
bool bFontSize;
bool bColor;
bool bVertAlign;
bool bHighLight;
bool bShd;
bool bRStyle;
bool bSpacing;
bool bDStrikeout;
bool bCaps;
bool bSmallCaps;
bool bPosition;
bool bFontHint;
bool bBoldCs;
bool bItalicCs;
bool bFontSizeCs;
bool bCs;
bool bRtl;
bool bLang;
bool bLangBidi;
bool bLangEA;
bool bThemeColor;
bool bVanish;
bool bDoNotWriteNullProp;
public:
rPr(std::map<CString, int>& mapFonts) : m_mapFonts(mapFonts)
{
Reset();
bDoNotWriteNullProp = false;
}
void Reset()
{
Bold = false;
Italic = false;
Underline = false;
Strikeout = false;
DStrikeout = false;
Caps = false;
SmallCaps = false;
bBold = false;
bItalic = false;
bUnderline = false;
bStrikeout = false;
bFontAscii = false;
bFontHAnsi = false;
bFontAE = false;
bFontCS = false;
bFontSize = false;
bColor = false;
bVertAlign = false;
bHighLight = false;
bShd = false;
bRStyle = false;
bSpacing = false;
bDStrikeout = false;
bCaps = false;
bSmallCaps = false;
bPosition = false;
bFontHint = false;
bBoldCs = false;
bItalicCs = false;
bFontSizeCs = false;
bCs = false;
bRtl = false;
bLang = false;
bLangBidi = false;
bLangEA = false;
bThemeColor = false;
ThemeColor.Reset();
bVanish = false;
}
bool IsNoEmpty()
{
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || bHighLight || bShd ||
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish;
}
void Write(XmlUtils::CStringWriter* pCStringWriter)
{
pCStringWriter->WriteString(CString(_T("<w:rPr>")));
if(bRStyle)
{
CString sRStyle;sRStyle.Format(_T("<w:rStyle w:val=\"%ls\" />"), RStyle);
pCStringWriter->WriteString(sRStyle);
}
if(bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontHint)
{
CString sFont = _T("<w:rFonts");
if(bFontAscii)
{
sFont.AppendFormat(_T(" w:ascii=\"%ls\""), (const TCHAR *) FontAscii);
m_mapFonts[FontAscii] = 1;
}
if(bFontHAnsi)
{
sFont.AppendFormat(_T(" w:hAnsi=\"%ls\""), (const TCHAR *) FontHAnsi);
m_mapFonts[FontHAnsi] = 1;
}
if(bFontCS)
{
sFont.AppendFormat(_T(" w:cs=\"%ls\""), (const TCHAR *) FontCS);
m_mapFonts[FontCS] = 1;
}
if(bFontAE)
{
sFont.AppendFormat(_T(" w:eastAsia=\"%ls\""), (const TCHAR *) FontAE);
m_mapFonts[FontAE] = 1;
}
if(bFontHint)
{
switch(FontHint)
{
case 0: sFont.Append(_T(" w:hint=\"cs\""));break;
case 2: sFont.Append(_T(" w:hint=\"eastAsia\""));break;
default:sFont.Append(_T(" w:hint=\"default\""));break;
}
}
sFont += _T("/>");
pCStringWriter->WriteString(sFont);
}
if(bBold)
{
if(Bold)
pCStringWriter->WriteString(CString(_T("<w:b />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:b w:val=\"false\"/>")));
}
if(bBoldCs)
{
if(BoldCs)
pCStringWriter->WriteString(CString(_T("<w:bCs />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:bCs w:val=\"false\"/>")));
}
if(bItalic)
{
if(Italic)
pCStringWriter->WriteString(CString(_T("<w:i />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:i w:val=\"false\"/>")));
}
if(bItalicCs)
{
if(ItalicCs)
pCStringWriter->WriteString(CString(_T("<w:iCs />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:iCs w:val=\"false\"/>")));
}
if(bCaps)
{
if(Caps)
pCStringWriter->WriteString(CString(_T("<w:caps />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:caps w:val=\"false\"/>")));
}
if(bSmallCaps)
{
if(SmallCaps)
pCStringWriter->WriteString(CString(_T("<w:smallCaps />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:smallCaps w:val=\"false\"/>")));
}
if(bStrikeout)
{
if(Strikeout)
pCStringWriter->WriteString(CString(_T("<w:strike/>")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:strike w:val=\"false\"/>")));
}
if(bDStrikeout)
{
if(DStrikeout)
pCStringWriter->WriteString(CString(_T("<w:dstrike />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:dstrike w:val=\"false\"/>")));
}
if(bVanish)
{
if(Vanish)
pCStringWriter->WriteString(CString(_T("<w:vanish />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:vanish w:val=\"false\"/>")));
}
if(bColor || (bThemeColor && ThemeColor.IsNoEmpty()))
{
CString sColor(_T("<w:color"));
if(bColor)
sColor.AppendFormat(_T(" w:val=\"%ls\""), (const TCHAR *) Color.ToString());
if(bThemeColor && ThemeColor.IsNoEmpty())
{
if(ThemeColor.Auto && !bColor)
sColor.Append(_T(" w:val=\"auto\""));
if(ThemeColor.bColor)
sColor.AppendFormat(_T(" w:themeColor=\"%ls\""), (const TCHAR *) ThemeColor.ToStringColor());
if(ThemeColor.bTint)
sColor.AppendFormat(_T(" w:themeTint=\"%ls\""), (const TCHAR *) ThemeColor.ToStringTint());
if(ThemeColor.bShade)
sColor.AppendFormat(_T(" w:themeShade=\"%ls\""), (const TCHAR *) ThemeColor.ToStringShade());
}
sColor.Append(_T("/>"));
pCStringWriter->WriteString(sColor);
}
if(bSpacing)
{
long nSpacing = SerializeCommon::Round( g_dKoef_mm_to_twips * Spacing);
CString sSpacing;sSpacing.Format(_T("<w:spacing w:val=\"%d\"/>"), nSpacing);
pCStringWriter->WriteString(sSpacing);
}
if(bPosition)
{
long nPosition = SerializeCommon::Round( g_dKoef_mm_to_hps * Position);
CString sPosition;sPosition.Format(_T("<w:position w:val=\"%d\"/>"), nPosition);
pCStringWriter->WriteString(sPosition);
}
if(bFontSize)
{
CString sFontSize;sFontSize.Format(_T("<w:sz w:val=\"%d\" />"), FontSize);
pCStringWriter->WriteString(sFontSize);
}
if(bFontSizeCs)
{
CString sFontSize;sFontSize.Format(_T("<w:szCs w:val=\"%d\" />"), FontSizeCs);
pCStringWriter->WriteString(sFontSize);
}
if(bHighLight)
{
docRGB& H = HighLight;
CString sColor;
if(0x00 == H.R && 0x00 == H.G && 0x00 == H.B )
sColor = _T("black");
else if(0x00 == H.R && 0x00 == H.G && 0xFF == H.B )
sColor = _T("blue");
else if(0x00 == H.R && 0xFF == H.G && 0xFF == H.B )
sColor = _T("cyan");
else if(0x00 == H.R && 0x00 == H.G && 0x8B == H.B )
sColor = _T("darkBlue");
else if(0x00 == H.R && 0x8B == H.G && 0x8B == H.B )
sColor = _T("darkCyan");
else if(0xA9 == H.R && 0xA9 == H.G && 0xA9 == H.B )
sColor = _T("darkGray");
else if(0x00 == H.R && 0x64 == H.G && 0x00 == H.B )
sColor = _T("darkGreen");
else if(0x80 == H.R && 0x00 == H.G && 0x80 == H.B )
sColor = _T("darkMagenta");
else if(0x8B == H.R && 0x00 == H.G && 0x00 == H.B )
sColor = _T("darkRed");
else if(0x80 == H.R && 0x80 == H.G && 0x00 == H.B )
sColor = _T("darkYellow");
else if(0x00 == H.R && 0xFF == H.G && 0x00 == H.B )
sColor = _T("green");
else if(0xD3 == H.R && 0xD3 == H.G && 0xD3 == H.B )
sColor = _T("lightGray");
else if(0xFF == H.R && 0x00 == H.G && 0xFF == H.B )
sColor = _T("magenta");
else if(0xFF == H.R && 0x00 == H.G && 0x00 == H.B )
sColor = _T("red");
else if(0xFF == H.R && 0xFF == H.G && 0xFF == H.B )
sColor = _T("white");
else if(0xFF == H.R && 0xFF == H.G && 0x00 == H.B )
sColor = _T("yellow");
if(!sColor.IsEmpty())
{
CString sHighLight;
sHighLight.Format(_T("<w:highlight w:val=\"%ls\" />"), sColor);
pCStringWriter->WriteString(sHighLight);
}
else if(g_nCurFormatVersion < 5)
{
//добавляем как shading
CString sShd;
sShd.Format(_T("<w:shd w:val=\"clear\" w:color=\"auto\" w:fill=\"%ls\"/>"), H.ToString());
pCStringWriter->WriteString(sShd);
}
}
if(bUnderline)
{
if(Underline)
pCStringWriter->WriteString(CString(_T("<w:u w:val=\"single\"/>")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:u w:val=\"none\"/>")));
}
if(bShd)
pCStringWriter->WriteString(Shd);
if(bVertAlign)
{
switch(VertAlign)
{
case vertalign_Baseline:
if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:vertAlign w:val=\"baseline\" /> ")));
break;
case vertalign_SuperScript:pCStringWriter->WriteString(CString(_T("<w:vertAlign w:val=\"superscript\" /> ")));break;
case vertalign_SubScript:pCStringWriter->WriteString(CString(_T("<w:vertAlign w:val=\"subscript\" /> ")));break;
}
}
if(bRtl)
{
if(Rtl)
pCStringWriter->WriteString(CString(_T("<w:rtl />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:rtl w:val=\"false\"/>")));
}
if(bCs)
{
if(Cs)
pCStringWriter->WriteString(CString(_T("<w:cs />")));
else if(false == bDoNotWriteNullProp)
pCStringWriter->WriteString(CString(_T("<w:cs w:val=\"false\"/>")));
}
if(bLang || bLangBidi || bLangEA)
{
pCStringWriter->WriteString(CString(_T("<w:lang")));
if(bLang)
{
CString sLang;sLang.Format(_T(" w:val=\"%ls\""), Lang);
pCStringWriter->WriteString(sLang);
}
if(bLangBidi)
{
CString sLang;sLang.Format(_T(" w:bidi=\"%ls\""), LangBidi);
pCStringWriter->WriteString(sLang);
}
if(bLangEA)
{
CString sLang;sLang.Format(_T(" w:eastAsia=\"%ls\""), LangEA);
pCStringWriter->WriteString(sLang);
}
pCStringWriter->WriteString(CString(_T("/>")));
}
pCStringWriter->WriteString(CString(_T("</w:rPr>")));
}
};
class docStyle
{
public:
CString Name;
CString Id;
BYTE byteType;
bool bDefault;
CString BasedOn;
CString NextId;
bool qFormat;
long uiPriority;
bool hidden;
bool semiHidden;
bool unhideWhenUsed;
CString TextPr;
CString ParaPr;
CString TablePr;
CString RowPr;
CString CellPr;
std::vector<CString> TblStylePr;
bool bqFormat;
bool buiPriority;
bool bhidden;
bool bsemiHidden;
bool bunhideWhenUsed;
public:
docStyle()
{
byteType = styletype_Paragraph;
bDefault = false;
bqFormat = false;
buiPriority = false;
bhidden = false;
bsemiHidden = false;
bunhideWhenUsed = false;
}
void Write(XmlUtils::CStringWriter* pCStringWriter)
{
CString sType;
switch(byteType)
{
case styletype_Character: sType = _T("character");break;
case styletype_Numbering: sType = _T("numbering");break;
case styletype_Table: sType = _T("table");break;
default: sType = _T("paragraph");break;
}
if(!Id.IsEmpty())
{
CString sStyle;
if(bDefault)
sStyle.Format(_T("<w:style w:type=\"%ls\" w:default=\"1\" w:styleId=\"%ls\">"), sType, Id);
else
sStyle.Format(_T("<w:style w:type=\"%ls\" w:styleId=\"%ls\">"), sType, Id);
pCStringWriter->WriteString(CString(sStyle));
if(!Name.IsEmpty())
{
sStyle.Format(_T("<w:name w:val=\"%ls\"/>"), Name);
pCStringWriter->WriteString(CString(sStyle));
}
if(!BasedOn.IsEmpty())
{
sStyle.Format(_T("<w:basedOn w:val=\"%ls\"/>"), BasedOn);
pCStringWriter->WriteString(CString(sStyle));
}
if(!NextId.IsEmpty())
{
sStyle.Format(_T("<w:next w:val=\"%ls\"/>"), NextId);
pCStringWriter->WriteString(CString(sStyle));
}
if(bqFormat)
{
if(qFormat)
pCStringWriter->WriteString(CString(_T("<w:qFormat/>")));
else
pCStringWriter->WriteString(CString(_T("<w:qFormat val=\"false\"/>")));
}
if(buiPriority)
{
sStyle.Format(_T("<w:uiPriority w:val=\"%d\"/>"), uiPriority);
pCStringWriter->WriteString(CString(sStyle));
}
if(bhidden)
{
if(hidden)
pCStringWriter->WriteString(CString(_T("<w:hidden/>")));
else
pCStringWriter->WriteString(CString(_T("<w:hidden val=\"false\"/>")));
}
if(bsemiHidden)
{
if(semiHidden)
pCStringWriter->WriteString(CString(_T("<w:semiHidden/>")));
else
pCStringWriter->WriteString(CString(_T("<w:semiHidden val=\"false\"/>")));
}
if(bunhideWhenUsed)
{
if(unhideWhenUsed)
pCStringWriter->WriteString(CString(_T("<w:unhideWhenUsed/>")));
else
pCStringWriter->WriteString(CString(_T("<w:unhideWhenUsed val=\"false\"/>")));
}
if(!TextPr.IsEmpty())
{
pCStringWriter->WriteString(TextPr);
}
if(!ParaPr.IsEmpty())
{
pCStringWriter->WriteString(CString(_T("<w:pPr>")));
pCStringWriter->WriteString(ParaPr);
pCStringWriter->WriteString(CString(_T("</w:pPr>")));
}
if(!TablePr.IsEmpty())
pCStringWriter->WriteString(TablePr);
if(!RowPr.IsEmpty())
{
pCStringWriter->WriteString(CString(_T("<w:trPr>")));
pCStringWriter->WriteString(RowPr);
pCStringWriter->WriteString(CString(_T("</w:trPr>")));
}
if(!CellPr.IsEmpty())
{
pCStringWriter->WriteString(CString(_T("<w:tcPr>")));
pCStringWriter->WriteString(CellPr);
pCStringWriter->WriteString(CString(_T("</w:tcPr>")));
}
for(int i = 0, length = TblStylePr.size(); i < length; ++i)
{
pCStringWriter->WriteString(TblStylePr[i]);
}
pCStringWriter->WriteString(CString(_T("</w:style>")));
}
}
};
class tblStylePr
{
public:
XmlUtils::CStringWriter Writer;
BYTE Type;
bool bType;
public:
tblStylePr()
{
bType = false;
}
};
class PaddingsToWrite
{
public:
double Left;
double Top;
double Right;
double Bottom;
bool bLeft;
bool bTop;
bool bRight;
bool bBottom;
public: PaddingsToWrite()
{
bLeft = false;
bTop = false;
bRight = false;
bBottom = false;
}
};
class docImg
{
public:
long MediaId;
BYTE Type;
double X;
double Y;
double Width;
double Height;
PaddingsToWrite Paddings;
int m_nDocPr;
bool bMediaId;
bool bType;
bool bX;
bool bY;
bool bWidth;
bool bHeight;
bool bPaddings;
CString srId;
docImg(int nDocPr)
{
m_nDocPr = nDocPr;
bMediaId = false;
bType = false;
bX = false;
bY = false;
bWidth = false;
bHeight = false;
bPaddings = false;
}
void Write(XmlUtils::CStringWriter* pCStringWriter)
{
if(bType)
{
if(c_oAscWrapStyle::Inline == Type)
{
if(bWidth && bHeight)
{
__int64 nWidth = (__int64)(g_dKoef_mm_to_emu * Width);
__int64 nHeight = (__int64)(g_dKoef_mm_to_emu * Height);
CString sDrawing;
sDrawing.Format(_T("<w:drawing><wp:inline distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"%lld\" cy=\"%lld\"/><wp:effectExtent l=\"0\" t=\"0\" r=\"0\" b=\"0\"/><wp:docPr id=\"%d\" name=\"Image\"/><wp:cNvGraphicFramePr><a:graphicFrameLocks xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" noChangeAspect=\"1\"/></wp:cNvGraphicFramePr><a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"><pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"><pic:nvPicPr><pic:cNvPr id=\"0\" name=\"Image\"/><pic:cNvPicPr/></pic:nvPicPr><pic:blipFill><a:blip r:embed=\"%ls\"><a:extLst><a:ext uri=\"{28A0092B-C50C-407E-A947-70E740481C1C}\"><a14:useLocalDpi xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" val=\"0\"/></a:ext></a:extLst></a:blip><a:stretch><a:fillRect/></a:stretch></pic:blipFill><pic:spPr><a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"%d\" cy=\"%d\"/></a:xfrm><a:prstGeom prst=\"rect\"><a:avLst/></a:prstGeom></pic:spPr></pic:pic></a:graphicData></a:graphic></wp:inline></w:drawing>"), nWidth, nHeight, m_nDocPr, srId, nWidth, nHeight);
pCStringWriter->WriteString(sDrawing);
}
}
else if(c_oAscWrapStyle::Flow == Type)
{
if(bX && bY && bWidth && bHeight)
{
__int64 nX = (__int64)(g_dKoef_mm_to_emu * X);
__int64 nY = (__int64)(g_dKoef_mm_to_emu * Y);
__int64 nWidth = (__int64)(g_dKoef_mm_to_emu * Width);
__int64 nHeight = (__int64)(g_dKoef_mm_to_emu * Height);
unsigned long nPaddingLeft = 0;
unsigned long nPaddingTop = 0;
unsigned long nPaddingRight = 0;
unsigned long nPaddingBottom = 0;
if(bPaddings)
{
if(Paddings.bLeft) nPaddingLeft = (unsigned long)(g_dKoef_mm_to_emu * Paddings.Left);
if(Paddings.bTop) nPaddingTop = (unsigned long)(g_dKoef_mm_to_emu * Paddings.Top);
if(Paddings.bRight) nPaddingRight = (unsigned long)(g_dKoef_mm_to_emu * Paddings.Right);
if(Paddings.bBottom) nPaddingBottom = (unsigned long)(g_dKoef_mm_to_emu * Paddings.Bottom);
}
CString sDrawing;
sDrawing.Format(_T("<w:drawing><wp:anchor distT=\"%lu\" distB=\"%lu\" distL=\"%lu\" distR=\"%lu\" simplePos=\"0\" relativeHeight=\"1\" behindDoc=\"0\" locked=\"0\" layoutInCell=\"1\" allowOverlap=\"1\"><wp:simplePos x=\"0\" y=\"0\"/><wp:positionH relativeFrom=\"page\"><wp:posOffset>%lld</wp:posOffset></wp:positionH><wp:positionV relativeFrom=\"page\"><wp:posOffset>%lld</wp:posOffset></wp:positionV><wp:extent cx=\"%lld\" cy=\"%lld\"/><wp:effectExtent l=\"0\" t=\"0\" r=\"0\" b=\"0\"/><wp:wrapSquare wrapText=\"bothSides\"/><wp:docPr id=\"%d\" name=\"Image\"/><wp:cNvGraphicFramePr><a:graphicFrameLocks xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" noChangeAspect=\"1\"/></wp:cNvGraphicFramePr><a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"><pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"><pic:nvPicPr><pic:cNvPr id=\"0\" name=\"Image\"/><pic:cNvPicPr/></pic:nvPicPr><pic:blipFill><a:blip r:embed=\"%ls\"><a:extLst><a:ext uri=\"{28A0092B-C50C-407E-A947-70E740481C1C}\"><a14:useLocalDpi xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" val=\"0\"/></a:ext></a:extLst></a:blip><a:stretch><a:fillRect/></a:stretch></pic:blipFill><pic:spPr><a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"%lld\" cy=\"%lld\"/></a:xfrm><a:prstGeom prst=\"rect\"><a:avLst/></a:prstGeom></pic:spPr></pic:pic></a:graphicData></a:graphic></wp:anchor></w:drawing>"), nPaddingTop, nPaddingBottom, nPaddingLeft, nPaddingRight, nX, nY, nWidth, nHeight, m_nDocPr, srId, nWidth, nHeight);
pCStringWriter->WriteString(sDrawing);
}
}
}
}
};
//class tblPr
//{
//public:
// tblPr()
// {
// }
// void Write(CStringWriter* pCStringWriter)
// {
// }
//};
class docW
{
public:
BYTE Type;
double W;
long WDocx;
bool bType;
bool bW;
bool bWDocx;
docW()
{
bType = false;
bW = false;
bWDocx = false;
}
void Write(XmlUtils::CStringWriter& pCStringWriter, const CString& sName)
{
pCStringWriter.WriteString(Write(sName));
}
CString Write(const CString& sName)
{
CString sXml;
if(bW || (bType && bWDocx))
{
CString sType;
int nVal;
if(bW)
{
sType = _T("dxa");
nVal = SerializeCommon::Round( g_dKoef_mm_to_twips * W);
}
else
{
switch(Type)
{
case 0: sType = _T("auto");break;
case 1: sType = _T("dxa");break;
case 2: sType = _T("nil");break;
case 3: sType = _T("pct");break;
}
nVal = WDocx;
}
sXml.Format(_T("<%ls w:w=\"%d\" w:type=\"%ls\"/>"), sName, nVal, sType );
}
return sXml;
}
};
class docBorder
{
public:
docRGB Color;
double Space;
double Size;
BYTE Value;
CThemeColor ThemeColor;
bool bColor;
bool bSpace;
bool bSize;
bool bValue;
bool bThemeColor;
docBorder()
{
bColor = false;
bSpace = false;
bSize = false;
bValue = false;
bThemeColor = false;
}
void Write(CString sName, XmlUtils::CStringWriter* pCStringWriter, bool bCell)
{
if(bValue)
{
pCStringWriter->WriteString(CString(_T("<")));
pCStringWriter->WriteString(sName);
if(border_Single == Value)
pCStringWriter->WriteString(CString(_T(" w:val=\"single\"")));
else
pCStringWriter->WriteString(CString(_T(" w:val=\"none\"")));
if(bColor)
{
CString sColorAttr;sColorAttr.Format(_T(" w:color=\"%ls\""), Color.ToString());
pCStringWriter->WriteString(sColorAttr);
}
if(bSize)
{
long nSize = SerializeCommon::Round(g_dKoef_mm_to_eightpoint * Size);
CString sSize;sSize.Format(_T(" w:sz=\"%d\""), nSize);
pCStringWriter->WriteString(sSize);
}
if(bSpace)
{
long nSpace = SerializeCommon::Round(g_dKoef_mm_to_pt * Space);
CString sSpace;sSpace.Format(_T(" w:space=\"%d\""), nSpace);
pCStringWriter->WriteString(sSpace);
}
if(bThemeColor && ThemeColor.IsNoEmpty())
{
if(ThemeColor.Auto && !bColor)
{
CString sAuto(_T(" w:color=\"auto\""));
pCStringWriter->WriteString(sAuto);
}
if(ThemeColor.bColor)
{
CString sThemeColor;sThemeColor.Format(_T(" w:themeColor=\"%ls\""), ThemeColor.ToStringColor());
pCStringWriter->WriteString(sThemeColor);
}
if(ThemeColor.bTint)
{
CString sThemeTint;sThemeTint.Format(_T(" w:themeTint=\"%ls\""), ThemeColor.ToStringTint());
pCStringWriter->WriteString(sThemeTint);
}
if(ThemeColor.bShade)
{
CString sThemeShade;sThemeShade.Format(_T(" w:themeShade=\"%ls\""), ThemeColor.ToStringShade());
pCStringWriter->WriteString(sThemeShade);
}
}
pCStringWriter->WriteString(CString(_T("/>")));
}
else
{
pCStringWriter->WriteString(CString(_T("<")));
pCStringWriter->WriteString(sName);
if(false != bCell)
pCStringWriter->WriteString(CString(_T(" w:val=\"nil\"")));
else
pCStringWriter->WriteString(CString(_T(" w:val=\"none\" w:sz=\"0\" w:space=\"0\" w:color=\"auto\"")));
pCStringWriter->WriteString(CString(_T("/>")));
}
}
};
class docBorders
{
public:
docBorder oLeft;
docBorder oTop;
docBorder oRight;
docBorder oBottom;
docBorder oInsideV;
docBorder oInsideH;
docBorder oBetween;
bool bLeft;
bool bTop;
bool bRight;
bool bBottom;
bool bInsideV;
bool bInsideH;
bool bBetween;
public:
docBorders()
{
bLeft = false;
bTop = false;
bRight = false;
bBottom = false;
bInsideV = false;
bInsideH = false;
bBetween = false;
}
bool IsEmpty()
{
return !(bLeft || bTop || bRight || bBottom || bInsideV || bInsideH || bBetween);
}
void Write(XmlUtils::CStringWriter* pCStringWriter, bool bCell)
{
if(bLeft)
oLeft.Write(_T("w:left"), pCStringWriter, bCell);
if(bTop)
oTop.Write(_T("w:top"), pCStringWriter, bCell);
if(bRight)
oRight.Write(_T("w:right"), pCStringWriter, bCell);
if(bBottom)
oBottom.Write(_T("w:bottom"), pCStringWriter, bCell);
if(bInsideV)
oInsideV.Write(_T("w:insideV"), pCStringWriter, bCell);
if(bInsideH)
oInsideH.Write(_T("w:insideH"), pCStringWriter, bCell);
if(bBetween)
oBetween.Write(_T("w:between"), pCStringWriter, bCell);
}
};
class docLvlText
{
public:
CString Text;
BYTE Number;
bool bText;
bool bNumber;
docLvlText()
{
bText = false;
bNumber = false;
}
};
class docLvl
{
public:
long Format;
BYTE Jc;
std::vector<docLvlText*> Text;
long Restart;
long Start;
BYTE Suff;
XmlUtils::CStringWriter ParaPr;
XmlUtils::CStringWriter TextPr;
CString PStyle;
bool bFormat;
bool bJc;
bool bText;
bool bRestart;
bool bStart;
bool bSuff;
bool bParaPr;
bool bTextPr;
bool bPStyle;
docLvl()
{
bFormat = false;
bJc = false;
bText = false;
bRestart = false;
bStart = false;
bSuff = false;
bParaPr = false;
bTextPr = false;
bPStyle = false;
}
~docLvl()
{
for(int i = 0,length = Text.size(); i < length; i++)
{
delete Text[i];
}
}
void Write(XmlUtils::CStringWriter& oWriter, int index)
{
CString sILvl;sILvl.Format(_T("<w:lvl w:ilvl=\"%d\">"), index);
oWriter.WriteString(sILvl);
if(bStart)
{
CString sStart;sStart.Format(_T("<w:start w:val=\"%d\"/>"), Start);
oWriter.WriteString(sStart);
}
if(bFormat)
{
CString sFormat;
switch(Format)
{
case numbering_numfmt_None:sFormat = _T("none");break;
case numbering_numfmt_Bullet:sFormat = _T("bullet");break;
case numbering_numfmt_Decimal:sFormat = _T("decimal");break;
case numbering_numfmt_LowerRoman:sFormat = _T("lowerRoman");break;
case numbering_numfmt_UpperRoman:sFormat = _T("upperRoman");break;
case numbering_numfmt_LowerLetter:sFormat = _T("lowerLetter");break;
case numbering_numfmt_UpperLetter:sFormat = _T("upperLetter");break;
case numbering_numfmt_DecimalZero:sFormat = _T("decimalZero");break;
}
if(!sFormat.IsEmpty())
{
CString sFormatXml;sFormatXml.Format(_T("<w:numFmt w:val=\"%ls\"/>"), sFormat);
oWriter.WriteString(sFormatXml);
}
}
if(bPStyle)
{
CString sStyleName = XmlUtils::EncodeXmlString(PStyle);
CString sFormatXml;sFormatXml.Format(_T("<w:pStyle w:val=\"%ls\"/>"), sStyleName);
oWriter.WriteString(sFormatXml);
}
if(bRestart && 0 == Restart)
{
CString sRestart;sRestart.Format(_T("<w:lvlRestart w:val=\"%d\"/>"), Restart);
oWriter.WriteString(sRestart);
}
if(bText)
{
CString sText;
for(int i = 0, length = Text.size(); i < length; ++i)
{
docLvlText* item = Text[i];
if(item->bText)
{
sText.Append(item->Text);
}
else if(item->bNumber)
{
sText.AppendFormat(_T("%%%d"), (item->Number+1));
}
}
sText = XmlUtils::EncodeXmlString(sText);
CString sTextXml;sTextXml.Format(_T("<w:lvlText w:val=\"%ls\"/>"), sText);
oWriter.WriteString(sTextXml);
}
if(bJc)
{
CString sJc;
switch(Jc)
{
case align_Right:sJc = _T("right");break;
case align_Left:sJc = _T("left");break;
case align_Center:sJc = _T("center");break;
case align_Justify:sJc = _T("distribute");break;
}
if(!sJc.IsEmpty())
{
CString sJcXml;sJcXml.Format(_T("<w:lvlJc w:val=\"%ls\"/>"), sJc);
oWriter.WriteString(sJcXml);
}
}
if(bParaPr)
{
oWriter.Write(ParaPr);
}
if(bTextPr)
{
oWriter.Write(TextPr);
}
oWriter.WriteString(CString(_T("</w:lvl>")));
}
};
class docANum
{
public:
long Id;
CString NumStyleLink;
CString StyleLink;
std::vector<docLvl*> Lvls;
bool bId;
docANum()
{
bId = false;
}
~docANum()
{
for(int i = 0, length = Lvls.size(); i < length; i++)
{
delete Lvls[i];
}
}
void Write(XmlUtils::CStringWriter& oWriterANum)
{
if(bId)
{
CString sANumId;sANumId.Format(_T("<w:abstractNum w:abstractNumId=\"%d\"><w:multiLevelType w:val=\"hybridMultilevel\"/>"), Id);
oWriterANum.WriteString(sANumId);
if(!StyleLink.IsEmpty())
{
CString sCorrectStyleLink = XmlUtils::EncodeXmlString(StyleLink);
CString sXml;sXml.Format(_T("<w:styleLink w:val=\"%ls\"/>"), sCorrectStyleLink);
oWriterANum.WriteString(sXml);
}
if(!NumStyleLink.IsEmpty())
{
CString sCorrectNumStyleLink = XmlUtils::EncodeXmlString(NumStyleLink);
CString sXml;sXml.Format(_T("<w:numStyleLink w:val=\"%ls\"/>"), sCorrectNumStyleLink);
oWriterANum.WriteString(sXml);
}
for(int i = 0, length = Lvls.size(); i < length; ++i)
{
Lvls[i]->Write(oWriterANum, i);
}
oWriterANum.WriteString(CString(_T("</w:abstractNum>")));
}
}
};
class docNum
{
public:
long AId;
long Id;
bool bAId;
bool bId;
docNum()
{
bAId = false;
bId = false;
}
void Write(XmlUtils::CStringWriter& oWriterNumList)
{
if(bAId && bId)
{
CString sNumList;sNumList.Format(_T("<w:num w:numId=\"%d\"><w:abstractNumId w:val=\"%d\"/></w:num>"), Id, AId);
oWriterNumList.WriteString(sNumList);
}
}
};
class rowPrAfterBefore
{
public:
CString sName;
long nGridAfter;
docW oAfterWidth;
bool bGridAfter;
rowPrAfterBefore(CString name)
{
sName = name;
bGridAfter = false;
}
void Write(XmlUtils::CStringWriter& writer)
{
if(bGridAfter && nGridAfter > 0)
{
CString sGridAfter;sGridAfter.Format(_T("<w:grid%ls w:val=\"%d\" />"), sName, nGridAfter);
writer.WriteString(sGridAfter);
if(oAfterWidth.bW)
oAfterWidth.Write(writer, _T("w:w") + sName);
}
}
};
class WriteHyperlink
{
public:
CString rId;
CString href;
CString anchor;
CString tooltip;
XmlUtils::CStringWriter writer;
static WriteHyperlink* Parse(CString fld)
{
WriteHyperlink* res = NULL;
if(-1 != fld.Find(_T("HYPERLINK")))
{
CString sLink;
CString sTooltip;
bool bNextLink = false;
bool bNextTooltip = false;
//разбиваем по пробелам, но с учетом кавычек
std::vector<CString> aItems;
CString sCurItem;
bool bDQuot = false;
for(int i = 0, length = fld.GetLength(); i < length; ++i)
{
TCHAR sCurLetter = fld[i];
if('\"' == sCurLetter)
bDQuot = !bDQuot;
else if('\\' == sCurLetter && true == bDQuot && i + 1 < length && '\"' == fld[i + 1])
{
i++;
sCurItem += fld[i];
}
else if(' ' == sCurLetter && false == bDQuot)
{
if(sCurItem.GetLength() > 0)
{
aItems.push_back(sCurItem);
sCurItem = _T("");
}
}
else
sCurItem += sCurLetter;
}
if(sCurItem.GetLength() > 0)
aItems.push_back(sCurItem);
for(int i = 0, length = aItems.size(); i < length; ++i)
{
CString item = aItems[i];
if(bNextLink)
{
bNextLink = false;
sLink = item;
}
if(bNextTooltip)
{
bNextTooltip = false;
sTooltip = item;
}
if(_T("HYPERLINK") == item)
bNextLink = true;
else if(_T("\\o") == item)
bNextTooltip = true;
}
if(false == sLink.IsEmpty())
{
res = new WriteHyperlink();
sLink.Trim();
int nAnchorIndex = sLink.Find(_T("#"));
if(-1 != nAnchorIndex)
{
res->href = sLink.Left(nAnchorIndex);
res->anchor = sLink.Right(sLink.GetLength() - nAnchorIndex - 1);
}
else
res->href = sLink;
if(false == sTooltip.IsEmpty())
res->tooltip = sTooltip.Trim();
}
}
return res;
}
void Write(XmlUtils::CStringWriter& wr)
{
if(false == rId.IsEmpty())
{
CString sCorrect_rId = XmlUtils::EncodeXmlString(rId);
CString sCorrect_tooltip = XmlUtils::EncodeXmlString(tooltip);
CString sCorrect_anchor = XmlUtils::EncodeXmlString(anchor);
CString sStart;
sStart.Format(_T("<w:hyperlink r:id=\"%ls\""), (const TCHAR *) sCorrect_rId);
if(false == tooltip.IsEmpty())
{
sStart.Append(_T(" w:tooltip=\""));
sStart.Append(sCorrect_tooltip);
sStart.Append(_T("\""));
}
if(false == anchor.IsEmpty())
{
sStart.Append(_T(" w:anchor=\""));
sStart.Append(sCorrect_anchor);
sStart.Append(_T("\""));
}
sStart.Append(_T(" w:history=\"1\">"));
wr.WriteString(sStart);
wr.Write(writer);
wr.WriteString(CString(_T("</w:hyperlink>")));
}
}
};
class IdCounter
{
private:
int m_nId;
public:
IdCounter(int nStart = 0)
{
m_nId = nStart;
}
int getNextId(int nCount = 1)
{
int nRes = m_nId;
m_nId += nCount;
return nRes;
}
};
class CComment{
private:
typedef CString (*funcArg)(CComment* pComment);
IdCounter& m_oParaIdCounter;
IdCounter& m_oFormatIdCounter;
public:
int IdOpen;
int IdFormat;
CString UserName;
CString UserId;
CString Date;
bool Solved;
CString Text;
CString m_sParaId;
CString m_sParaIdParent;
std::vector<CComment*> replies;
bool bIdOpen;
bool bIdFormat;
bool bSolved;
public:
CComment(IdCounter& oParaIdCounter, IdCounter& oFormatIdCounter):m_oParaIdCounter(oParaIdCounter),m_oFormatIdCounter(oFormatIdCounter)
{
bIdOpen = false;
bIdFormat = false;
bSolved = false;
}
~CComment()
{
for(int i = 0, length = replies.size(); i < length; ++i)
{
delete replies[i];
}
replies.clear();
}
int getCount()
{
return replies.size() + 1;
}
void setFormatStart(int IdFormatStart)
{
bIdFormat = true;
IdFormat = IdFormatStart;
for(int i = 0, length = replies.size(); i < length; ++i)
{
CComment* pComment = replies[i];
pComment->bIdFormat = true;
pComment->IdFormat = IdFormatStart + i + 1;
}
}
CString writeRef(const CString& sBefore, const CString& sRef, const CString& sAfter)
{
CString sRes;
sRes.Append(writeRef(this, sBefore, sRef, sAfter));
for(int i = 0, length = replies.size(); i < length; ++i)
sRes.Append(writeRef(replies[i], sBefore, sRef, sAfter));
return sRes;
}
CString writeTemplates(funcArg fReadFunction)
{
CString sRes;
sRes.Append(fReadFunction(this));
for(int i = 0, length = replies.size(); i < length; ++i)
sRes.Append(fReadFunction(replies[i]));
return sRes;
}
static CString writeRef(CComment* pComment, const CString& sBefore, const CString& sRef, const CString& sAfter)
{
CString sRes;
if(!pComment->bIdFormat)
{
pComment->bIdFormat = true;
pComment->IdFormat = pComment->m_oFormatIdCounter.getNextId();
}
sRes.Append(sBefore);
sRes.AppendFormat(_T("<%ls w:id=\"%d\"/>"), (const TCHAR *) sRef, pComment->IdFormat);
sRes.Append(sAfter);
return sRes;
}
static bool writeContentWritePart(CComment* pComment, CString& sText, int nPrevIndex, int nCurIndex, bool bFirst, CString& sRes)
{
CString sPart;
if(nPrevIndex < nCurIndex)
sPart = XmlUtils::EncodeXmlString(sText.Mid(nPrevIndex, nCurIndex - nPrevIndex));
int nId = pComment->m_oParaIdCounter.getNextId();
CString sId;
sId.Format(_T("%08X"), nId);
if(bFirst)
{
bFirst = false;
pComment->m_sParaId = sId;
}
CString sFormat = _T("<w:p w14:paraId=\"%ls\" w14:textId=\"%ls\"><w:pPr><w:spacing w:line=\"240\" w:after=\"0\" w:lineRule=\"auto\" w:before=\"0\"/><w:ind w:firstLine=\"0\" w:left=\"0\" w:right=\"0\"/><w:jc w:val=\"left\"/></w:pPr><w:r><w:rPr><w:rFonts w:eastAsia=\"Arial\" w:ascii=\"Arial\" w:hAnsi=\"Arial\" w:cs=\"Arial\"/><w:sz w:val=\"22\"/></w:rPr><w:t xml:space=\"preserve\">");
sRes.AppendFormat((const TCHAR *) sFormat, (const TCHAR *) sId, (const TCHAR *) sId);
sRes.Append(sPart);
sRes.Append(_T("</w:t></w:r></w:p>"));
return bFirst;
}
static CString writeContent(CComment* pComment)
{
CString sRes;
if(!pComment->bIdFormat)
{
pComment->bIdFormat = true;
pComment->IdFormat = pComment->m_oFormatIdCounter.getNextId();
}
sRes.AppendFormat(_T("<w:comment w:id=\"%d\""), pComment->IdFormat);
CString sInitials;
if(false == pComment->UserName.IsEmpty())
{
CString sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
sRes.Append(_T(" w:author=\""));
sRes.Append(sUserName);
sRes.Append(_T("\""));
//делаем initials
int nTokenPos = 0;
CString strToken = pComment->UserName.Tokenize(_T(" "), nTokenPos);
while (!strToken.IsEmpty())
{
strToken.Trim();
if(strToken.GetLength() > 0)
sInitials.AppendChar(strToken[0]);
strToken = pComment->UserName.Tokenize(_T(" "), nTokenPos);
}
}
if(false == pComment->Date.IsEmpty())
{
CString sDate = XmlUtils::EncodeXmlString(pComment->Date);
sRes.Append(_T(" w:date=\""));
sRes.Append(sDate);
sRes.Append(_T("\""));
}
if(false == sInitials.IsEmpty())
{
sInitials = XmlUtils::EncodeXmlString(sInitials);
sRes.Append(_T(" w:initials=\""));
sRes.Append(sInitials);
sRes.Append(_T("\""));
}
sRes.Append(_T(">"));
if(false == pComment->Text.IsEmpty())
{
CString sText = pComment->Text;
sText.Remove('\r');
bool bFirst = true;
int nPrevIndex = 0;
for(int i = 0, length = sText.GetLength(); i < length; i++)
{
TCHAR cToken = sText[i];
if('\n' == cToken)
{
bFirst = writeContentWritePart(pComment, sText, nPrevIndex, i, bFirst, sRes);
nPrevIndex = i + 1;
}
}
writeContentWritePart(pComment, sText, nPrevIndex, sText.GetLength(), bFirst, sRes);
}
sRes.Append(_T("</w:comment>"));
return sRes;
}
static CString writeContentExt(CComment* pComment)
{
CString sRes;
if(!pComment->m_sParaId.IsEmpty())
{
CString sDone(_T("0"));
if(pComment->bSolved && pComment->Solved)
sDone = _T("1");
if(!pComment->m_sParaIdParent.IsEmpty())
sRes.AppendFormat(_T("<w15:commentEx w15:paraId=\"%ls\" w15:paraIdParent=\"%ls\" w15:done=\"%ls\"/>"), (const TCHAR *) pComment->m_sParaId, (const TCHAR *) pComment->m_sParaIdParent, (const TCHAR *) sDone);
else
sRes.AppendFormat(_T("<w15:commentEx w15:paraId=\"%ls\" w15:done=\"%ls\"/>"), (const TCHAR *) pComment->m_sParaId, (const TCHAR *) sDone);
//расставляем paraIdParent
for(int i = 0, length = pComment->replies.size(); i < length; i++)
pComment->replies[i]->m_sParaIdParent = pComment->m_sParaId;
}
return sRes;
}
static CString writePeople(CComment* pComment)
{
CString sRes;
if(false == pComment->UserName.IsEmpty() && false == pComment->UserId.IsEmpty())
{
CString sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
CString sUserId = XmlUtils::EncodeXmlString(pComment->UserId);
sRes.Append(_T("<w15:person w15:author=\""));
sRes.Append(sUserName);
sRes.Append(_T("\"><w15:presenceInfo w15:providerId=\"Teamlab\" w15:userId=\""));
sRes.Append(sUserId);
sRes.Append(_T("\"/></w15:person>"));
}
return sRes;
}
};
class CComments
{
std::map<int, CComment*> m_mapComments;
std::map<CString, CComment*> m_mapAuthors;
public:
IdCounter m_oFormatIdCounter;
IdCounter m_oParaIdCounter;
public:
CComments():m_oParaIdCounter(1)
{
}
~CComments()
{
for (std::map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
{
delete it->second;
}
m_mapComments.clear();
}
void add(CComment* pComment)
{
if(pComment->bIdOpen)
{
m_mapComments[pComment->IdOpen] = pComment;
addAuthor(pComment);
for(int i = 0, length = pComment->replies.size(); i < length; i++)
addAuthor(pComment->replies[i]);
}
}
void addAuthor(CComment* pComment)
{
if(false == pComment->UserName.IsEmpty() && false == pComment->UserId.IsEmpty())
m_mapAuthors[pComment->UserName] = pComment;
}
CComment* get(int nInd)
{
CComment* pRes = NULL;
std::map<int, CComment*>::const_iterator pair = m_mapComments.find(nInd);
if(m_mapComments.end() != pair)
pRes = pair->second;
return pRes;
}
int getNextId(int nCount = 1)
{
return m_oFormatIdCounter.getNextId(nCount);
}
CString writeContent()
{
CString sRes;
for (std::map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
{
sRes.Append(it->second->writeTemplates(CComment::writeContent));
}
return sRes;
}
CString writeContentExt()
{
CString sRes;
for (std::map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
{
sRes.Append(it->second->writeTemplates(CComment::writeContentExt));
}
return sRes;
}
CString writePeople()
{
CString sRes;
for (std::map<CString, CComment*>::const_iterator it = m_mapAuthors.begin(); it != m_mapAuthors.end(); ++it)
{
sRes.Append(it->second->writePeople(it->second));
}
return sRes;
}
};
//class CComment
//{
//public:
// int Id;
// CString Initials;
// CString UserName;
// CString Date;
// CString Text;
// CAtlArray<CComment*> replies;
//
// bool bId;
//public:
// CComment()
// {
// bId = false;
// }
// ~CComment()
// {
// for(int i = 0, length = replies.GetCount(); i < length; ++i)
// {
// delete replies[i];
// }
// replies.RemoveAll();
// }
// CString Write()
// {
// CString sRes;
// if(bId)
// {
// sRes.AppendFormat(_T("<w:comment w:id=\"%d\""), Id);
// if(false == UserName.IsEmpty())
// {
// CString sUserName = XmlUtils::EncodeXmlString(UserName);
// sRes.AppendFormat(_T(" w:author=\"%ls\""), sUserName);
// }
// if(false == Date.IsEmpty())
// {
// CString sDate = XmlUtils::EncodeXmlString(Date);
// sRes.AppendFormat(_T(" w:date=\"%ls\""), sDate);
// }
// if(false == Initials.IsEmpty())
// {
// CString sInitials = XmlUtils::EncodeXmlString(Initials);
// sRes.AppendFormat(_T(" w:initials=\"%ls\""), sInitials);
// }
// sRes.Append(_T(">"));
//
// sRes.Append(WriteCommentContent(this, true));
//
// sRes.Append(_T("</w:comment>"));
// }
// return sRes;
// }
//private:
// CString WriteCommentContent(CComment* pComment, bool bCheckLast)
// {
// CString sRes;
// CString sFormat = _T("<w:p><w:pPr><w:spacing w:line=\"240\" w:after=\"0\" w:lineRule=\"auto\" w:before=\"0\"/><w:ind w:firstLine=\"0\" w:left=\"0\" w:right=\"0\"/><w:jc w:val=\"left\"/></w:pPr><w:r><w:rPr><w:rFonts w:eastAsia=\"Arial\" w:ascii=\"Arial\" w:hAnsi=\"Arial\" w:cs=\"Arial\"/><w:sz w:val=\"22\"/></w:rPr><w:t xml:space=\"preserve\">%ls</w:t></w:r></w:p>");
// CString sName = XmlUtils::EncodeXmlString(pComment->UserName + _T(":"));
// sRes.AppendFormat(sFormat, sName);
// if(false == pComment->Text.IsEmpty())
// {
// CString sText = XmlUtils::EncodeXmlString(pComment->Text);
// sRes.AppendFormat(sFormat, sText);
// }
// if(false == bCheckLast || pComment->replies.GetCount() > 0)
// sRes.Append(_T("<w:p><w:pPr><w:pBdr><w:top w:space=\"1\" w:sz=\"4\" w:color=\"auto\" w:val=\"single\"/></w:pBdr></w:pPr></w:p>"));
//
// if(pComment->replies.GetCount() > 0)
// {
// for(int i = 0, length = pComment->replies.GetCount(); i < length; ++i)
// {
// if(i != length - 1)
// sRes += WriteCommentContent(pComment->replies[i], false);
// else
// sRes += WriteCommentContent(pComment->replies[i], bCheckLast);
// }
// }
// return sRes;
// }
//};
class CDrawingPropertyWrapPoint
{
public:
double X;
double Y;
bool bX;
bool bY;
CDrawingPropertyWrapPoint()
{
bX = false;
bY = false;
}
};
class CDrawingPropertyWrap
{
public:
BYTE WrappingType;
bool Edited;
CDrawingPropertyWrapPoint Start;
std::vector<CDrawingPropertyWrapPoint*> Points;
bool bWrappingType;
bool bEdited;
bool bStart;
CDrawingPropertyWrap()
{
bWrappingType = false;
bEdited = false;
bStart = false;
}
~CDrawingPropertyWrap()
{
for(int i = 0, length = Points.size(); i < length; ++i)
delete Points[i];
Points.clear();
}
};
class CDrawingProperty
{
public:
long DataPos;
long DataLength;
BYTE Type;
bool BehindDoc;
double DistL;
double DistT;
double DistR;
double DistB;
bool LayoutInCell;
unsigned long RelativeHeight;
bool BSimplePos;
double EffectExtentL;
double EffectExtentT;
double EffectExtentR;
double EffectExtentB;
double Width;
double Height;
BYTE PositionHRelativeFrom;
BYTE PositionHAlign;
double PositionHPosOffset;
double PositionHPctOffset;
BYTE PositionVRelativeFrom;
BYTE PositionVAlign;
double PositionVPosOffset;
double PositionVPctOffset;
double SimplePosX;
double SimplePosY;
CDrawingPropertyWrap DrawingPropertyWrap;
CString sChartRels;
int m_nDocPr;
bool bDataPos;
bool bDataLength;
bool bType;
bool bBehindDoc;
bool bDistL;
bool bDistT;
bool bDistR;
bool bDistB;
bool bLayoutInCell;
bool bRelativeHeight;
bool bBSimplePos;
bool bEffectExtentL;
bool bEffectExtentT;
bool bEffectExtentR;
bool bEffectExtentB;
bool bWidth;
bool bHeight;
bool bPositionHRelativeFrom;
bool bPositionHAlign;
bool bPositionHPosOffset;
bool bPositionHPctOffset;
bool bPositionVRelativeFrom;
bool bPositionVAlign;
bool bPositionVPosOffset;
bool bPositionVPctOffset;
bool bSimplePosX;
bool bSimplePosY;
bool bDrawingPropertyWrap;
CDrawingProperty(int nDocPr)
{
m_nDocPr = nDocPr;
bDataPos = false;
bDataLength = false;
bType = false;
bBehindDoc = false;
bDistL = false;
bDistT = false;
bDistR = false;
bDistB = false;
bLayoutInCell = false;
bRelativeHeight = false;
bBSimplePos = false;
bEffectExtentL = false;
bEffectExtentT = false;
bEffectExtentR = false;
bEffectExtentB = false;
bWidth = false;
bHeight = false;
bPositionHRelativeFrom = false;
bPositionHAlign = false;
bPositionHPosOffset = false;
bPositionHPctOffset = false;
bPositionVRelativeFrom = false;
bPositionVAlign = false;
bPositionVPosOffset = false;
bPositionVPctOffset = false;
bSimplePosX = false;
bSimplePosY = false;
bDrawingPropertyWrap = false;
}
bool IsChart()
{
return false == sChartRels.IsEmpty();
}
CString Write()
{
CString sXml;
if(bType)
{
bool bChart = IsChart();
if(c_oAscWrapStyle::Inline == Type)
{
if(bWidth && bHeight)
{
__int64 emuWidth = (__int64)(g_dKoef_mm_to_emu * Width);
__int64 emuHeight = (__int64)(g_dKoef_mm_to_emu * Height);
if(false == bChart)
sXml.AppendFormat(_T("<wp:inline xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"%lld\" cy=\"%lld\"/><wp:docPr id=\"%d\" name=\"\"/></wp:inline>"), emuWidth, emuHeight, m_nDocPr);
else
sXml.AppendFormat(_T("<w:drawing><wp:inline distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"%lld\" cy=\"%lld\"/><wp:effectExtent l=\"0\" t=\"0\" r=\"0\" b=\"0\"/><wp:docPr id=\"%d\" name=\"Chart %d\"/><wp:cNvGraphicFramePr/><a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"%ls\"/></a:graphicData></a:graphic></wp:inline></w:drawing>"), emuWidth, emuHeight, m_nDocPr, m_nDocPr, (const TCHAR *) sChartRels);
}
}
else
{
if(bWidth && bHeight && ((bPositionHRelativeFrom && (bPositionHAlign || bPositionHPosOffset || bPositionHPctOffset)
&& bPositionVRelativeFrom && (bPositionVAlign || bPositionVPosOffset || bPositionVPctOffset))
|| (bBSimplePos && bSimplePosX && bSimplePosY)))
{
__int64 emuDistL = 0;
__int64 emuDistT = 0;
__int64 emuDistR = 0;
__int64 emuDistB = 0;
if(bDistL)
emuDistL = (__int64)(g_dKoef_mm_to_emu * DistL);
if(bDistT)
emuDistT = (__int64)(g_dKoef_mm_to_emu * DistT);
if(bDistR)
emuDistR = (__int64)(g_dKoef_mm_to_emu * DistR);
if(bDistB)
emuDistB = (__int64)(g_dKoef_mm_to_emu * DistB);
int nSimplePos = 0;
if(bBSimplePos && BSimplePos)
nSimplePos = 1;
int nRelativeHeight = 0;
if(bRelativeHeight)
nRelativeHeight = RelativeHeight;
int nBehindDoc = 0;
if(bBehindDoc && BehindDoc)
nBehindDoc = 1;
int nLayoutInCell = 1;
if(bLayoutInCell && false == LayoutInCell)
nLayoutInCell = 0;
if(bChart)
sXml.Append(_T("<w:drawing>"));
sXml.AppendFormat(_T("<wp:anchor xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" distT=\"%lld\" distB=\"%lld\" distL=\"%lld\" distR=\"%lld\" simplePos=\"%d\" relativeHeight=\"%lu\" behindDoc=\"%d\" locked=\"0\" layoutInCell=\"%d\" allowOverlap=\"1\">"), emuDistT, emuDistB, emuDistL, emuDistR, nSimplePos, nRelativeHeight, nBehindDoc, nLayoutInCell);
__int64 emuX = 0;
if(bSimplePosX)
emuX = (__int64)(g_dKoef_mm_to_emu * SimplePosX);
__int64 emuY = 0;
if(bSimplePosY)
emuY = (__int64)(g_dKoef_mm_to_emu * SimplePosY);
sXml.AppendFormat(_T("<wp:simplePos x=\"%lld\" y=\"%lld\"/>"), emuX, emuY);
if(bPositionHRelativeFrom && (bPositionHAlign || bPositionHPosOffset || bPositionHPctOffset))
{
CString sRelativeFrom;
switch(PositionHRelativeFrom)
{
case 0: sRelativeFrom = _T("character");break;
case 1: sRelativeFrom = _T("column");break;
case 2: sRelativeFrom = _T("insideMargin");break;
case 3: sRelativeFrom = _T("leftMargin");break;
case 4: sRelativeFrom = _T("margin");break;
case 5: sRelativeFrom = _T("outsideMargin");break;
case 6: sRelativeFrom = _T("page");break;
case 7: sRelativeFrom = _T("rightMargin");break;
}
CString sContent;
if(bPositionHAlign)
{
switch(PositionHAlign)
{
case 0: sContent = _T("<wp:align>center</wp:align>");break;
case 1: sContent = _T("<wp:align>inside</wp:align>");break;
case 2: sContent = _T("<wp:align>left</wp:align>");break;
case 3: sContent = _T("<wp:align>outside</wp:align>");break;
case 4: sContent = _T("<wp:align>right</wp:align>");break;
}
}
else if(bPositionHPosOffset)
{
__int64 emuPosOffset = (__int64)(g_dKoef_mm_to_emu * PositionHPosOffset);
sContent.Format(_T("<wp:posOffset>%lld</wp:posOffset>"), emuPosOffset);
}
else if(bPositionHPctOffset)
{
long pctOffset = (long)(1000 * PositionHPctOffset);
sContent.Format(_T("<wp14:pctPosHOffset>%d</wp14:pctPosHOffset>"), pctOffset);
}
sXml.AppendFormat(_T("<wp:positionH relativeFrom=\"%ls\">%ls</wp:positionH>"), (const TCHAR *) sRelativeFrom, (const TCHAR *) sContent);
}
if(bPositionVRelativeFrom && (bPositionVAlign || bPositionVPosOffset || bPositionVPctOffset))
{
CString sRelativeFrom;
switch(PositionVRelativeFrom)
{
case 0: sRelativeFrom = _T("bottomMargin");break;
case 1: sRelativeFrom = _T("insideMargin");break;
case 2: sRelativeFrom = _T("line");break;
case 3: sRelativeFrom = _T("margin");break;
case 4: sRelativeFrom = _T("outsideMargin");break;
case 5: sRelativeFrom = _T("page");break;
case 6: sRelativeFrom = _T("paragraph");break;
case 7: sRelativeFrom = _T("topMargin");break;
}
CString sContent;
if(bPositionVAlign)
{
switch(PositionVAlign)
{
case 0: sContent = _T("<wp:align>bottom</wp:align>");break;
case 1: sContent = _T("<wp:align>center</wp:align>");break;
case 2: sContent = _T("<wp:align>inside</wp:align>");break;
case 3: sContent = _T("<wp:align>outside</wp:align>");break;
case 4: sContent = _T("<wp:align>top</wp:align>");break;
}
}
else if(bPositionVPosOffset)
{
__int64 emuPosOffset = (__int64)(g_dKoef_mm_to_emu * PositionVPosOffset);
sContent.Format(_T("<wp:posOffset>%lld</wp:posOffset>"), emuPosOffset);
}
else if(bPositionVPctOffset)
{
long pctOffset = (long)(1000 * PositionVPctOffset);
sContent.Format(_T("<wp14:pctPosVOffset>%d</wp14:pctPosVOffset>"), pctOffset);
}
sXml.AppendFormat(_T("<wp:positionV relativeFrom=\"%ls\">%ls</wp:positionV>"), (const TCHAR *) sRelativeFrom, (const TCHAR *) sContent);
}
__int64 emuWidth = (__int64)(g_dKoef_mm_to_emu * Width);
__int64 emuHeight = (__int64)(g_dKoef_mm_to_emu * Height);
sXml.AppendFormat(_T("<wp:extent cx=\"%lld\" cy=\"%lld\"/>"), emuWidth, emuHeight);
if(bEffectExtentL && bEffectExtentT && bEffectExtentR && bEffectExtentB)
{
__int64 emuEffectExtentL = (__int64)(g_dKoef_mm_to_emu * EffectExtentL);
__int64 emuEffectExtentT = (__int64)(g_dKoef_mm_to_emu * EffectExtentT);
__int64 emuEffectExtentR = (__int64)(g_dKoef_mm_to_emu * EffectExtentR);
__int64 emuEffectExtentB = (__int64)(g_dKoef_mm_to_emu * EffectExtentB);
sXml.AppendFormat(_T("<wp:effectExtent l=\"%lld\" t=\"%lld\" r=\"%lld\" b=\"%lld\"/>"), emuEffectExtentL, emuEffectExtentT, emuEffectExtentR, emuEffectExtentB);
}
if(bDrawingPropertyWrap && DrawingPropertyWrap.bWrappingType)
{
CString sTagName;
switch(DrawingPropertyWrap.WrappingType)
{
case c_oSerImageType2::WrapNone:sTagName = _T("wrapNone");break;
case c_oSerImageType2::WrapSquare:sTagName = _T("wrapSquare");break;
case c_oSerImageType2::WrapThrough:sTagName = _T("wrapThrough");break;
case c_oSerImageType2::WrapTight:sTagName = _T("wrapTight");break;
case c_oSerImageType2::WrapTopAndBottom:sTagName = _T("wrapTopAndBottom");break;
}
if(DrawingPropertyWrap.bStart || DrawingPropertyWrap.Points.size() > 0)
{
if( c_oSerImageType2::WrapSquare == DrawingPropertyWrap.WrappingType ||
c_oSerImageType2::WrapThrough == DrawingPropertyWrap.WrappingType ||
c_oSerImageType2::WrapTight == DrawingPropertyWrap.WrappingType)
{
sXml.AppendFormat(_T("<wp:%ls wrapText=\"bothSides\">"), (const TCHAR *) sTagName);
}
else
sXml.AppendFormat(_T("<wp:%ls>"), (const TCHAR *) sTagName);
int nEdited = 0;
if(DrawingPropertyWrap.bEdited && DrawingPropertyWrap.Edited)
nEdited = 1;
sXml.AppendFormat(_T("<wp:wrapPolygon edited=\"%d\">"), nEdited);
if(DrawingPropertyWrap.bStart && DrawingPropertyWrap.Start.bX && DrawingPropertyWrap.Start.bY)
{
__int64 emuX = (__int64)(g_dKoef_mm_to_emu * DrawingPropertyWrap.Start.X);
__int64 emuY = (__int64)(g_dKoef_mm_to_emu * DrawingPropertyWrap.Start.Y);
sXml.AppendFormat(_T("<wp:start x=\"%lld\" y=\"%lld\"/>"), emuX, emuY);
}
for(int i = 0, length = DrawingPropertyWrap.Points.size(); i < length; ++i)
{
CDrawingPropertyWrapPoint* pWrapPoint = DrawingPropertyWrap.Points[i];
if(pWrapPoint->bX && pWrapPoint->bY)
{
__int64 emuX = (__int64)(g_dKoef_mm_to_emu * pWrapPoint->X);
__int64 emuY = (__int64)(g_dKoef_mm_to_emu * pWrapPoint->Y);
sXml.AppendFormat(_T("<wp:lineTo x=\"%lld\" y=\"%lld\"/>"), emuX, emuY);
}
}
sXml.Append(_T("</wp:wrapPolygon>"));
sXml.AppendFormat(_T("</wp:%ls>"), (const TCHAR *) sTagName);
}
else
{
//для wrapThrough и wrapTight wrapPolygon обязательное поле, если его нет - меняем тип.
if( c_oSerImageType2::WrapSquare == DrawingPropertyWrap.WrappingType ||
c_oSerImageType2::WrapThrough == DrawingPropertyWrap.WrappingType ||
c_oSerImageType2::WrapTight == DrawingPropertyWrap.WrappingType)
{
sXml.Append(_T("<wp:wrapSquare wrapText=\"bothSides\"/>"));
}
else
sXml.AppendFormat(_T("<wp:%ls/>"), (const TCHAR *) sTagName);
}
}
else
sXml.Append(_T("<wp:wrapNone/>"));
if(bChart)
sXml.AppendFormat(_T("<wp:docPr id=\"%d\" name=\"Chart %d\"/><wp:cNvGraphicFramePr/><a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"%ls\"/></a:graphicData></a:graphic>"), m_nDocPr, m_nDocPr, (const TCHAR *) sChartRels);
else
sXml.AppendFormat(_T("<wp:docPr id=\"%d\" name=\"\"/>"), m_nDocPr);
sXml.Append(_T("</wp:anchor>"));
if(bChart)
sXml.Append(_T("</w:drawing>"));
}
}
}
return sXml;
}
};
class CWiterTblPr
{
public:
CString Jc;
CString TableInd;
CString TableW;
CString TableCellMar;
CString TableBorders;
CString Shd;
CString tblpPr;
CString Style;
CString Look;
CString Layout;
bool IsEmpty()
{
return Jc.IsEmpty() && TableInd.IsEmpty() && TableW.IsEmpty() && TableCellMar.IsEmpty() && TableBorders.IsEmpty() && Shd.IsEmpty() && tblpPr.IsEmpty()&& Style.IsEmpty() && Look.IsEmpty();
}
CString Write(bool bBandSize, bool bLayout)
{
CString sRes;
sRes.Append(_T("<w:tblPr>"));
if(false == Style.IsEmpty())
sRes.Append(Style);
if(false == tblpPr.IsEmpty())
sRes.Append(tblpPr);
if(bBandSize)
sRes.Append(_T("<w:tblStyleRowBandSize w:val=\"1\"/><w:tblStyleColBandSize w:val=\"1\"/>"));
if(false == TableW.IsEmpty())
sRes.Append(TableW);
if(false == Jc.IsEmpty())
sRes.Append(Jc);
if(false == TableInd.IsEmpty())
sRes.Append(TableInd);
if(false == TableBorders.IsEmpty())
sRes.Append(TableBorders);
if(false == Shd.IsEmpty())
sRes.Append(Shd);
if(bLayout)
{
if(false == Layout.IsEmpty())
sRes.Append(Layout);
else if(g_nCurFormatVersion < 4)
sRes.Append(_T("<w:tblLayout w:type=\"fixed\"/>"));
}
if(false == TableCellMar.IsEmpty())
sRes.Append(TableCellMar);
if(false == Look.IsEmpty())
sRes.Append(Look);
sRes.Append(_T("</w:tblPr>"));
return sRes;
}
};
class CFramePr
{
public:
bool bDropCap;
bool bH;
bool bHAnchor;
bool bHRule;
bool bHSpace;
bool bLines;
bool bVAnchor;
bool bVSpace;
bool bW;
bool bWrap;
bool bX;
bool bXAlign;
bool bY;
bool bYAlign;
BYTE DropCap;
long H;
BYTE HAnchor;
BYTE HRule;
long HSpace;
long Lines;
BYTE VAnchor;
long VSpace;
long W;
BYTE Wrap;
long X;
BYTE XAlign;
long Y;
BYTE YAlign;
public: CFramePr()
{
bDropCap = false;
bH = false;
bHAnchor = false;
bHRule = false;
bHSpace = false;
bLines = false;
bVAnchor = false;
bVSpace = false;
bW = false;
bWrap = false;
bX = false;
bXAlign = false;
bY = false;
bYAlign = false;
}
bool IsEmpty()
{
return !(bDropCap || bH || bHAnchor || bHRule || bHSpace || bLines || bVAnchor || bVSpace || bW || bWrap || bX || bXAlign || bY || bYAlign);
}
void Write(XmlUtils::CStringWriter& oStringWriter)
{
oStringWriter.WriteString(CString(_T("<w:framePr")));
if(bDropCap)
{
CString sDropCap(_T("none"));
switch(DropCap)
{
case 0: sDropCap = _T("none");break;
case 1: sDropCap = _T("drop");break;
case 2: sDropCap = _T("margin");break;
}
CString sXml;sXml.Format(_T(" w:dropCap=\"%ls\""), sDropCap);
oStringWriter.WriteString(sXml);
}
if(bLines)
{
CString sXml;sXml.Format(_T(" w:lines=\"%d\""), Lines);
oStringWriter.WriteString(sXml);
}
if(bW)
{
CString sXml;sXml.Format(_T(" w:w=\"%d\""), W);
oStringWriter.WriteString(sXml);
}
if(bH)
{
CString sXml;sXml.Format(_T(" w:h=\"%d\""), H);
oStringWriter.WriteString(sXml);
}
if(bVSpace)
{
CString sXml;sXml.Format(_T(" w:vSpace=\"%d\""), VSpace);
oStringWriter.WriteString(sXml);
}
if(bHSpace)
{
CString sXml;sXml.Format(_T(" w:hSpace=\"%d\""), HSpace);
oStringWriter.WriteString(sXml);
}
if(bWrap)
{
CString sWrap(_T("none"));
switch(Wrap)
{
case 0: sWrap = _T("around");break;
case 1: sWrap = _T("auto");break;
case 2: sWrap = _T("none");break;
case 3: sWrap = _T("notBeside");break;
case 4: sWrap = _T("through");break;
case 5: sWrap = _T("tight");break;
}
CString sXml;sXml.Format(_T(" w:wrap=\"%ls\""), sWrap);
oStringWriter.WriteString(sXml);
}
if(bVAnchor)
{
CString sVAnchor(_T("margin"));
switch(VAnchor)
{
case 0: sVAnchor = _T("margin");break;
case 1: sVAnchor = _T("page");break;
case 2: sVAnchor = _T("text");break;
}
CString sXml;sXml.Format(_T(" w:vAnchor=\"%ls\""), sVAnchor);
oStringWriter.WriteString(sXml);
}
if(bHAnchor)
{
CString sHAnchor(_T("margin"));
switch(HAnchor)
{
case 0: sHAnchor = _T("margin");break;
case 1: sHAnchor = _T("page");break;
case 2: sHAnchor = _T("text");break;
}
CString sXml;sXml.Format(_T(" w:hAnchor=\"%ls\""), sHAnchor);
oStringWriter.WriteString(sXml);
}
if(bX)
{
CString sXml;sXml.Format(_T(" w:x=\"%d\""), X);
oStringWriter.WriteString(sXml);
}
if(bXAlign)
{
CString sXAlign(_T("left"));
switch(XAlign)
{
case 0: sXAlign = _T("center");break;
case 1: sXAlign = _T("inside");break;
case 2: sXAlign = _T("left");break;
case 3: sXAlign = _T("outside");break;
case 4: sXAlign = _T("right");break;
}
CString sXml;sXml.Format(_T(" w:xAlign=\"%ls\""), sXAlign);
oStringWriter.WriteString(sXml);
}
if(bY)
{
CString sXml;sXml.Format(_T(" w:y=\"%d\""), Y);
oStringWriter.WriteString(sXml);
}
if(bYAlign)
{
CString sYAlign(_T("inline"));
switch(YAlign)
{
case 0: sYAlign = _T("bottom");break;
case 1: sYAlign = _T("center");break;
case 2: sYAlign = _T("inline");break;
case 3: sYAlign = _T("inside");break;
case 4: sYAlign = _T("outside");break;
case 5: sYAlign = _T("top");break;
}
CString sXml;sXml.Format(_T(" w:yAlign=\"%ls\""), sYAlign);
oStringWriter.WriteString(sXml);
}
if(bHRule)
{
CString sHRule(_T(""));
switch(HRule)
{
case 0: sHRule = _T("atLeast");break;
case 1: sHRule = _T("auto");break;
case 2: sHRule = _T("exact");break;
}
CString sXml;sXml.Format(_T(" w:hRule=\"%ls\""), sHRule);
oStringWriter.WriteString(sXml);
}
oStringWriter.WriteString(CString(_T("/>")));
}
};
class CHyperlink{
public:
CString rId;
CString sLink;
CString sAnchor;
CString sTooltip;
bool History;
CString sDocLocation;
CString sTgtFrame;
XmlUtils::CStringWriter writer;
bool bHistory;
public:
CHyperlink()
{
bHistory = false;
}
void Write(XmlUtils::CStringWriter& wr)
{
if(false == rId.IsEmpty())
{
CString sCorrect_rId = XmlUtils::EncodeXmlString(rId);
CString sCorrect_tooltip = XmlUtils::EncodeXmlString(sTooltip);
CString sCorrect_anchor = XmlUtils::EncodeXmlString(sAnchor);
CString sStart;
sStart.Format(_T("<w:hyperlink r:id=\"%ls\""), (const TCHAR *) sCorrect_rId);
if(false == sTooltip.IsEmpty())
{
sStart.Append(_T(" w:tooltip=\""));
sStart.Append(sCorrect_tooltip);
sStart.Append(_T("\""));
}
if(false == sAnchor.IsEmpty())
{
sStart.Append(_T(" w:anchor=\""));
sStart.Append(sCorrect_anchor);
sStart.Append(_T("\""));
}
sStart.Append(_T(" w:history=\"1\">"));
wr.WriteString(sStart);
wr.Write(writer);
wr.WriteString(CString(_T("</w:hyperlink>")));
}
}
};
class CFldSimple{
public:
CString sInstr;
XmlUtils::CStringWriter writer;
public:
CFldSimple()
{
}
void Write(XmlUtils::CStringWriter& wr)
{
if(false == sInstr.IsEmpty())
{
CString sCorrect_Instr = XmlUtils::EncodeXmlString(sInstr);
CString sStart(_T("<w:fldSimple w:instr=\""));
sStart.Append(sCorrect_Instr);
sStart.Append(_T("\">"));
wr.WriteString(sStart);
wr.Write(writer);
wr.WriteString(CString(_T("</w:fldSimple>")));
}
}
};
}
#endif // #ifndef READER_CLASSES
This source diff could not be displayed because it is too large. You can view the blob instead.
#ifndef SETTING_WRITER
#define SETTING_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
static CString g_string_set_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\">");
static CString g_string_set_Default = _T("<w:zoom w:percent=\"100\"/><w:characterSpacingControl w:val=\"doNotCompress\"/><w:compat><w:compatSetting w:name=\"compatibilityMode\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"14\"/><w:compatSetting w:name=\"overrideTableStyleFontSizeAndJustification\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/><w:compatSetting w:name=\"enableOpenTypeFeatures\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/><w:compatSetting w:name=\"doNotFlipMirrorIndents\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/></w:compat><w:themeFontLang w:val=\"en-US\" w:eastAsia=\"zh-CN\"/><w:shapeDefaults><o:shapedefaults v:ext=\"edit\" spidmax=\"1026\"/><o:shapelayout v:ext=\"edit\"><o:idmap v:ext=\"edit\" data=\"1\"/></o:shapelayout></w:shapeDefaults><w:decimalSymbol w:val=\".\"/><w:listSeparator w:val=\",\"/>");
static CString g_string_set_End = _T("</w:settings>");
class SettingWriter
{
CString m_sDir;
XmlUtils::CStringWriter m_oSettingWriter;
HeaderFooterWriter& m_oHeaderFooterWriter;
public:
SettingWriter(CString sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir),m_oHeaderFooterWriter(oHeaderFooterWriter)
{
}
void Write()
{
Prepare();
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("settings.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(g_string_set_Start);
oFile.WriteStringUTF8(m_oSettingWriter.GetData());
oFile.WriteStringUTF8(g_string_set_Default);
oFile.WriteStringUTF8(g_string_set_End);
oFile.CloseFile();
}
void AddSetting(CString sSetting)
{
m_oSettingWriter.WriteString(sSetting);
}
void Prepare()
{
if(BinDocxRW::g_nCurFormatVersion < 5)
{
bool bevenAndOddHeaders = false;
for(int 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)
{
HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i];
if(SimpleTypes::hdrftrEven == pFooter->eType)
bevenAndOddHeaders = true;
}
if(bevenAndOddHeaders)
AddSetting(_T("<w:evenAndOddHeaders/>"));
}
}
};
}
#endif // #ifndef SETTING_WRITER
#ifndef STYLES_WRITER
#define STYLES_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
static CString g_string_st_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:styles xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" mc:Ignorable=\"w14\">");
static CString g_string_st_rPrDefault = _T("<w:rPr><w:rFonts w:asciiTheme=\"minorHAnsi\" w:eastAsiaTheme=\"minorHAnsi\" w:hAnsiTheme=\"minrHAnsi\" w:cstheme=\"minorBidi\"/><w:sz w:val=\"22\"/><w:szCs w:val=\"22\"/><w:lang w:val=\"en-US\" w:eastAsia=\"en-US\" w:bidi=\"ar-SA\"/></w:rPr>");
static CString g_string_st_pPrDefault = _T("<w:pPr><w:spacing w:after=\"200\" w:line=\"276\" w:lineRule=\"auto\"/></w:pPr>");
static CString g_string_st_Latent1 = _T("<w:latentStyles w:defLockedState=\"0\" w:defUIPriority=\"99\" w:defSemiHidden=\"1\" w:defUnhideWhenUsed=\"1\" w:defQFormat=\"0\" w:count=\"267\"><w:lsdException w:name=\"Normal\" w:semiHidden=\"0\" w:uiPriority=\"0\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 1\" w:semiHidden=\"0\" w:uiPriority=\"9\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 2\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 3\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 4\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 5\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 6\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 7\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 8\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"heading 9\" w:uiPriority=\"9\" w:qFormat=\"1\"/><w:lsdException w:name=\"toc 1\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 2\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 3\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 4\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 5\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 6\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 7\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 8\" w:uiPriority=\"39\"/><w:lsdException w:name=\"toc 9\" w:uiPriority=\"39\"/><w:lsdException w:name=\"caption\" w:uiPriority=\"35\" w:qFormat=\"1\"/><w:lsdException w:name=\"Title\" w:semiHidden=\"0\" w:uiPriority=\"10\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Default Paragraph Font\" w:uiPriority=\"1\"/><w:lsdException w:name=\"Subtitle\" w:semiHidden=\"0\" w:uiPriority=\"11\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Strong\" w:semiHidden=\"0\" w:uiPriority=\"22\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Emphasis\" w:semiHidden=\"0\" w:uiPriority=\"20\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Table Grid\" w:semiHidden=\"0\" w:uiPriority=\"59\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Placeholder Text\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"No Spacing\" w:semiHidden=\"0\" w:uiPriority=\"1\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Light Shading\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 2\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Revision\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"List Paragraph\" w:semiHidden=\"0\" w:uiPriority=\"34\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Quote\" w:semiHidden=\"0\" w:uiPriority=\"29\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Intense Quote\" w:semiHidden=\"0\" w:uiPriority=\"30\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Medium List 2 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 1\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 2 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 2\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/>");
static CString g_string_st_Latent2 = _T("<w:lsdException w:name=\"Medium List 2 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 3\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 2 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 4\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 2 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 5\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Shading Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"60\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light List Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"61\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Light Grid Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"62\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 1 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"63\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Shading 2 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"64\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 1 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"65\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium List 2 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"66\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 1 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"67\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 2 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"68\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Medium Grid 3 Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"69\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Dark List Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"70\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Shading Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"71\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful List Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"72\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Colorful Grid Accent 6\" w:semiHidden=\"0\" w:uiPriority=\"73\" w:unhideWhenUsed=\"0\"/><w:lsdException w:name=\"Subtle Emphasis\" w:semiHidden=\"0\" w:uiPriority=\"19\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Intense Emphasis\" w:semiHidden=\"0\" w:uiPriority=\"21\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Subtle Reference\" w:semiHidden=\"0\" w:uiPriority=\"31\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Intense Reference\" w:semiHidden=\"0\" w:uiPriority=\"32\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Book Title\" w:semiHidden=\"0\" w:uiPriority=\"33\" w:unhideWhenUsed=\"0\" w:qFormat=\"1\"/><w:lsdException w:name=\"Bibliography\" w:uiPriority=\"37\"/><w:lsdException w:name=\"TOC Heading\" w:uiPriority=\"39\" w:qFormat=\"1\"/></w:latentStyles>");
static CString g_string_st_End = _T("</w:styles>");
class StylesWriter
{
XmlUtils::CStringWriter m_oWriter;
CString m_sDir;
public:
XmlUtils::CStringWriter m_Styles;
XmlUtils::CStringWriter m_rPrDefault;
XmlUtils::CStringWriter m_pPrDefault;
int m_nVersion;
StylesWriter(CString sDir, int nVersion):m_sDir(sDir),m_nVersion(nVersion)
{
}
void Write()
{
m_oWriter.WriteString(g_string_st_Start);
m_oWriter.WriteString(CString(_T("<w:docDefaults>")));
m_oWriter.WriteString(CString(_T("<w:rPrDefault>")));
if(m_rPrDefault.GetCurSize() > 0)
m_oWriter.Write(m_rPrDefault);
else
m_oWriter.WriteString(g_string_st_rPrDefault);
m_oWriter.WriteString(CString(_T("</w:rPrDefault>")));
m_oWriter.WriteString(CString(_T("<w:pPrDefault>")));
if(m_rPrDefault.GetCurSize() > 0)
m_oWriter.Write(m_pPrDefault);
else
m_oWriter.WriteString(g_string_st_pPrDefault);
m_oWriter.WriteString(CString(_T("</w:pPrDefault>")));
m_oWriter.WriteString(CString(_T("</w:docDefaults>")));
m_oWriter.WriteString(g_string_st_Latent1);
m_oWriter.WriteString(g_string_st_Latent2);
m_oWriter.Write(m_Styles);
m_oWriter.WriteString(g_string_st_End);
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("styles.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(m_oWriter.GetData());
oFile.CloseFile();
}
};
}
#endif // #ifndef STYLES_WRITER
#ifndef FONT_TABLE_WRITER
#define FONT_TABLE_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
#include "../../DesktopEditor/fontengine/FontManager.h"
namespace Writers
{
static CString g_string_ft_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:fonts xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" mc:Ignorable=\"w14\">");
static CString g_string_ft_End = _T("</w:fonts>");
class FontTableWriter
{
XmlUtils::CStringWriter m_oWriter;
CString m_sDir;
CApplicationFonts m_oApplicationFonts;
CFontManager* m_pFontManager;
public:
std::map<CString, int> m_mapFonts;
public:
FontTableWriter(CString sDir, CString sFontDir):m_sDir(sDir)
{
if(sFontDir.IsEmpty())
m_oApplicationFonts.Initialize();
else
m_oApplicationFonts.InitializeFromFolder(string2std_string(sFontDir));
CFontList* pFontList = m_oApplicationFonts.GetList();
if(NULL != pFontList)
{
std::wstring sDefaultFont(_T("Arial"));
pFontList->SetDefaultFont(sDefaultFont);
}
m_pFontManager = m_oApplicationFonts.GenerateFontManager();
}
~FontTableWriter()
{
RELEASEOBJECT(m_pFontManager);
}
void Write()
{
m_oWriter.WriteString(g_string_ft_Start);
// FontTable
bool bCalibri = false;
bool bTimes = false;
bool bCambria = false;
for (std::map<CString, int>::const_iterator it = m_mapFonts.begin(); it != m_mapFonts.end(); ++it)
{
const CString& sFontName = it->first;
if(_T("Calibri") == sFontName)
bCalibri = true;
else if(_T("Times New Roman") == sFontName)
bTimes = true;
else if(_T("Cambria") == sFontName)
bCambria = true;
WriteFont(sFontName);
}
if(false == bCalibri)
WriteFont(_T("Calibri"));
if(false == bTimes)
WriteFont(_T("Times New Roman"));
if(false == bCambria)
WriteFont(_T("Cambria"));
m_oWriter.WriteString(g_string_ft_End);
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("fontTable.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(m_oWriter.GetData());
oFile.CloseFile();
}
void WriteFont(CString sFontName)
{
CString sPanose;
bool bUsePanose = false;
if(NULL != m_pFontManager)
{
CFontSelectFormat oFontSelectFormat;
oFontSelectFormat.wsName = new std::wstring;
*oFontSelectFormat.wsName = std::wstring(sFontName.GetString());
CFontInfo* pFontInfo = m_pFontManager->GetFontInfoByParams(oFontSelectFormat);
if(NULL != pFontInfo)
{
for(int i = 0; i < 10; ++i)
{
BYTE cElem = pFontInfo->m_aPanose[i];
if(0 != cElem)
bUsePanose = true;
if(cElem > 0xF)
sPanose.AppendFormat(_T("%X"), cElem);
else
sPanose.AppendFormat(_T("0%X"), cElem);
}
}
}
sFontName = XmlUtils::EncodeXmlString(sFontName);
m_oWriter.WriteString(_T("<w:font w:name=\"") + sFontName + _T("\">"));
if(bUsePanose && !sPanose.IsEmpty())
m_oWriter.WriteString(_T("<w:panose1 w:val=\"")+sPanose+_T("\"/>"));
m_oWriter.WriteString(CString(_T("</w:font>")));
}
};
}
#endif // #ifndef FONT_TABLE_WRITER
#ifndef WEB_SETTINGS_WRITER
#define WEB_SETTINGS_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
namespace Writers
{
class WebSettingsWriter
{
CString m_sDir;
public:
WebSettingsWriter(CString sDir):m_sDir(sDir)
{
}
void Write()
{
CString s_Common;
s_Common = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> \
<w:webSettings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"> \
<w:optimizeForBrowser/> \
</w:webSettings>");
OOX::CPath fileName = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("webSettings.xml");
CFile oFile;
oFile.CreateFile(fileName.GetPath());
oFile.WriteStringUTF8(s_Common);
oFile.CloseFile();
}
};
}
#endif // #ifndef WEB_SETTINGS_WRITER
#ifndef BINEQUATIONWRITER_H
#define BINEQUATIONWRITER_H
#include "BinReaderWriterDefines.h"
#include "../../Common/DocxFormat/Source/MathEquation/OutputDev.h"
//#include "String.h"
#include <stack>
/*namespace BinDocxRW
{
class BinaryCommonWriter;
}*/
namespace MathEquation
{
class EquationRun
{
public:
CString str;
TMathFont* pFont;
LONG nTextSize;
bool bAccent;
MEMBELTYPE eType;
public:
EquationRun()
{
}
void AddChar(CString sChar, TMathFont* pNewFont, LONG lSize)
{
str = sChar;
pFont = pNewFont;
nTextSize = lSize;
bAccent = false;
}
bool CompareFont(TMathFont* pNewFont)
{
if ( pNewFont->sName == pFont->sName && pNewFont->bBold == pFont->bBold && pNewFont->bItalic == pFont->bItalic )
return true;
else
return false;
}
void SetAccent(bool bAcc, MEMBELTYPE type)
{
bAccent = bAcc;
eType = type;
}
};
class RunManager
{
private:
TMathFont* oCurFont;
std::vector<EquationRun> arrRun;
public:
void Add(EquationRun oElem)
{
arrRun.push_back(oElem);
return;
}
bool IsEmpty()
{
return arrRun.empty();
}
LONG GetSize()
{
return arrRun.size();
}
bool GetElem (LONG lPos, EquationRun &oRun)
{
if (lPos < arrRun.size() )
{
oRun = arrRun[lPos];
return true;
}
return false;
}
void Clear()
{
arrRun.clear();
return;
}
void RemoveElem (LONG lPos)
{
arrRun.erase(arrRun.begin()+lPos);
return;
}
void Delete(LONG lStart, LONG lCount)
{
arrRun.erase(arrRun.begin()+lStart, arrRun.begin()+lCount);
return;
}
void AddAccent (MEMBELTYPE eType)
{
LONG lPos = GetSize() - 1;
EquationRun oRun;
oRun = arrRun[lPos];
RemoveElem(lPos);
oRun.bAccent = true;
oRun.eType = eType;
Add(oRun);
}
};
class BinaryEquationWriter : public IOutputDev
{
public:
NSBinPptxRW::CBinaryFileWriter &m_oStream;
std::stack<int> m_aEquationStack;
std::stack<int> m_aNArrayStack;
std::stack<int> m_aNArrayCutStack;
std::stack<int> m_aRunStack;
std::stack<int> m_aFractionStack;
std::stack<int> m_aGroupChrStack;
std::stack<int> m_aRadicalStack;
std::stack<int> m_aMatrixStack;
std::stack<int> m_aLimitStack;
std::stack<int> m_aLimitElemsStack;
std::stack<int> m_aScriptStack;
std::stack<int> m_aAccentStack;
std::stack<int> m_aRowsCounter;
std::stack<int> m_aRowsPosCounter;
std::stack<int> m_aDelimiterStack;
std::stack<int> m_aDelimiterCounter;
RunManager oRManager;
LONG nTextSize;
LONG nCtrlSize;
public:
BinaryEquationWriter(NSBinPptxRW::CBinaryFileWriter &oStream) : bEmbel(false), m_oStream(oStream)
{
}
void WriteRPR(TMathFont* pFont, LONG nSize, BOOL bIsOpen)
{
if (NULL != pFont)
{
int nCurPos;
//if (bIsOpen)
nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::RPr);
//else
// nCurPos = WriteItemStart(BinDocxRW::c_oSerRunType::rPr);
if (false != pFont->bBold)
{
m_oStream.WriteBYTE(BinDocxRW::c_oSerProp_rPrType::Bold);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Byte);
m_oStream.WriteBOOL(true);
}
if (false != pFont->bItalic)
{
m_oStream.WriteBYTE(BinDocxRW::c_oSerProp_rPrType::Italic);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Byte);
m_oStream.WriteBOOL(true);
}
CString sFontName;
//sFontName.Format(_T("%S"), pFont->sName.c_str());
sFontName.Insert(0, _T("Cambria Math"));
if (sFontName)
{
m_oStream.WriteBYTE(BinDocxRW::c_oSerProp_rPrType::FontAscii);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Variable);
m_oStream.WriteStringW(sFontName);
m_oStream.WriteBYTE(BinDocxRW::c_oSerProp_rPrType::FontHAnsi);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Variable);
m_oStream.WriteStringW(sFontName);
}
if (nTextSize)
{
m_oStream.WriteBYTE(BinDocxRW::c_oSerProp_rPrType::FontSize);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Long);
m_oStream.WriteLONG(nSize);
}
WriteItemEnd(nCurPos);
}
return;
}
void WriteRunContent(EquationRun oRun, bool bIsOpen)
{
TMathFont* pCurFont = oRun.pFont;
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::MRun);
WriteRPR(oRun.pFont, oRun.nTextSize, bIsOpen);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::MText);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Variable);
m_oStream.WriteStringW(oRun.str);
WriteItemEnd(nCurPos1);
WriteItemEnd(nCurPos);
}
void CutRun(int nCount)
{
LONG lSize = oRManager.GetSize();
if (nCount < lSize+1)
{
for (int i=0; i<nCount; i++)
oRManager.Delete(0,1);
}
}
void WriteRun(bool bLast = false)
{
BOOL bIsOpen;
if (!m_aCommandStack.empty())
bIsOpen = m_aCommandStack.top()->IsOpenNode(); //if false write ctrlPrp
else
bIsOpen = true;
CString sText;
LONG lSize = oRManager.GetSize();
if (bLast)
lSize--;
if (lSize > 0)
{
for (int i=0; i<lSize; i++)
{
EquationRun oRun;
bool bRes = oRManager.GetElem( i, oRun);
if (bRes)
{
if (!oRun.bAccent)
{
WriteRunContent(oRun, bIsOpen);
}
else
{
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Acc);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::AccPr);
CString str;
switch (oRun.eType)
{
case embelDot: str.Insert(0, 0x0307); break;
case embelDDot: str.Insert(0, 0x0308); break;
case embelDDDot: str.Insert(0, 0x20DB); break;
case embelPrime: str.Insert(0, 0x2032); break;
case embelDPrime: str.Insert(0, 0x2033); break;
case embelLPrime: str.Insert(0, 0x0300); break;
case embelTilde: str.Insert(0, 0x007E); break;
case embelHat: str.Insert(0, 0x005E); break;
case embelSlash: str.Insert(0, 0x002F); break;
case embelLArrow: str.Insert(0, 0x2190); break;
case embelRArrow: str.Insert(0, 0x2192); break;
case embelDArrow: str.Insert(0, 0x2194); break;
case embelLHarpoon: str.Insert(0, 0x21BC); break;
case embelRHarpoon: str.Insert(0, 0x21C0); break;
case embelStrikeout: str.Insert(0, 0x0336); break;
case embelBar: str.Insert(0, 0x0305); break;
case embelTPrime: str.Insert(0, 0x2034); break;
case embelFrown: str.Insert(0, 0x23DD); break;
case embelSmile: str.Insert(0, 0x23DC); break;
}
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemEnd(nCurPos1);
int nCurPos2 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
WriteRunContent(oRun, bIsOpen);
WriteItemEnd(nCurPos2);
WriteItemEnd(nCurPos);
}
}
}
oRManager.Delete(0,lSize);
}
return;
}
int WriteItemStart(BYTE type)
{
//type
m_oStream.WriteBYTE(type);
return WriteItemWithLengthStart();
}
void WriteItemEnd(int nStart)
{
WriteItemWithLengthEnd(nStart);
}
int WriteItemWithLengthStart()
{
//
int nStartPos = m_oStream.GetPosition();
m_oStream.Skip(4);
return nStartPos;
}
void WriteItemWithLengthEnd(int nStart)
{
//Length
int nEnd = m_oStream.GetPosition();
m_oStream.SetPosition(nStart);
m_oStream.WriteLONG(nEnd - nStart - 4);
m_oStream.SetPosition(nEnd);
}
virtual void BeginEquation()
{
int nCurPos = WriteItemStart(BinDocxRW::c_oSerParType::OMath);
m_aEquationStack.push(nCurPos);
}
virtual void EndEquation()
{
if (!oRManager.IsEmpty())
WriteRun();
if (!m_aEquationStack.empty())
{
int nCurPos = m_aEquationStack.top();
WriteItemEnd(nCurPos);
m_aEquationStack.pop();
}
}
virtual void BeginBlock()
{
if (!m_aCommandStack.empty())
{
CBaseCommand* pCommand = TopCommand();
pCommand->Next();
pCommand->WriteBeginBlock(this);
}
}
virtual void EndBlock()
{
if (!m_aCommandStack.empty())
{
CBaseCommand* pCommand = TopCommand();
pCommand->WriteEndBlock(this);
}
}
virtual void SetSize(uint16_t nSize)
{
nTextSize = nSize*2;
}
virtual void BeginChar(Unicode_t uChar, uint8_t nTypeFace, bool bSpecialSymbol)
{
BOOL bIsOpen;
if (!m_aCommandStack.empty())
bIsOpen = m_aCommandStack.top()->IsOpenNode(); //if false write ctrlPrp
else
bIsOpen = true;
TMathFont* pFont = GetFont(nTypeFace);
if (!pFont && !bIsOpen)
return;
EquationRun oRun;
if (uChar)
{
CString str;
if (bSpecialSymbol)
{
switch(uChar)
{
case specialsymAlignment: str.Insert(0,0x0089); break;
case specialsymZeroSpace: str.Insert(0,0x200B); break;
case specialsymThinSpace: str.Insert(0,0x2009); break; break;
case specialsymThickSpace: str.Insert(0,0x2004); break;
case specialsymLargeSpace: str.Insert(0,0x2005); break;
case specialsymOnePtSpace: str.Insert(0,0x2003); break;
}
}
else
str.Insert(0,uChar);
oRun.AddChar(str, pFont, nTextSize);
oRManager.Add(oRun);
}
}
virtual void AddCharEmbel(MEMBELTYPE eType)
{
oRManager.AddAccent(eType);
}
virtual void EndChar()
{
/*if (!m_aRunStack.empty())
{
int nCurPos = m_aRunStack.top();
WriteItemEnd(nCurPos);
m_aRunStack.pop();
if (bEmbel)
{
int nCurPos;
if (!m_aAccentStack.empty())
{
nCurPos = m_aAccentStack.top();
m_aAccentStack.pop();
WriteItemEnd(nCurPos);
}
if (!m_aAccentStack.empty())
{
nCurPos = m_aAccentStack.top();
m_aAccentStack.pop();
WriteItemEnd(nCurPos);
}
bEmbel = false;
}
}*/
}
virtual void BeginMatrix(uint8_t nVAlign, MMATRIXHORALIGN eHorAlign, MMATRIXVERALIGN eVerAlign, bool bEqualRows, bool bEqualCols, uint8_t nRows, uint8_t nCols, uint8_t* pVerBorders, uint8_t* pHorBorders)
{
if (!oRManager.IsEmpty())
WriteRun();
CMatrixCommand* pCommand = (CMatrixCommand*)PushCommand(commandMatrix);
pCommand->SetProps(nRows, nCols);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Matrix);
m_aMatrixStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::MPr);
WriteItemValLong(BinDocxRW::c_oSer_OMathBottomNodesType::Row, nRows);
int nCurPos2 = WriteItemStart(BinDocxRW::c_oSer_OMathBottomNodesType::Mcs);
int nCurPos3 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Mc);
int nCurPos4 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::McPr);
WriteItemValLong(BinDocxRW::c_oSer_OMathBottomNodesType::Count, nCols);
BYTE horAlign;
switch(eHorAlign)
{
case matrixhoralignLeft: horAlign = SimpleTypes::xalignLeft;
case matrixhoralignCenter: horAlign = SimpleTypes::xalignCenter;
case matrixhoralignRight: horAlign = SimpleTypes::xalignRight;
case matrixhoralignEqualSign: horAlign = SimpleTypes::xalignCenter;
case matrixhoralignCommaSign: horAlign = SimpleTypes::xalignCenter;
}
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::McJc, horAlign);
WriteItemEnd(nCurPos4);
WriteItemEnd(nCurPos3);
WriteItemEnd(nCurPos2);
WriteItemEnd(nCurPos1);
}
virtual void EndMatrix()
{
PopCommand();
if (!m_aMatrixStack.empty())
{
int nCurPos = m_aMatrixStack.top();
WriteItemEnd(nCurPos);
m_aMatrixStack.pop();
}
}
virtual void StartPile(uint8_t nHAlign, uint8_t nVAlign)
{
if (!m_aCommandStack.empty())
m_aCommandStack.top()->SetPile(true);
}
virtual void EndPile()
{
if (!m_aCommandStack.empty())
{
m_aCommandStack.top()->SetPile(false);
CBaseCommand* pCommand = TopCommand();
pCommand->WriteEndBlock(this);
int nRows = m_aRowsCounter.top();
int nPos = m_aRowsPosCounter.top();
m_aRowsCounter.pop();
m_aRowsPosCounter.pop();
int nEnd = m_oStream.GetPosition();
m_oStream.SetPosition(nPos);
m_oStream.WriteLONG(nRows);
m_oStream.SetPosition(nEnd);
ECommandType type;
type = pCommand->GetCommand();
if (type == commandIntegral || type == commandNArray)
pCommand->Next();
}
}
virtual void BeginBrackets(MBRACKETSTYPE eType, bool bOpen, bool bClose)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandBrackets);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Delimiter);
m_aDelimiterStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::DelimiterPr);
int nCurPos2 = WriteItemStart(BinDocxRW::c_oSer_OMathBottomNodesType::Column);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Long);
int nStartPos = m_oStream.GetPosition();
m_oStream.Skip(4);
m_aDelimiterCounter.push(nStartPos);
WriteItemEnd(nCurPos2);
if (!bOpen)
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::BegChr, _T(""));
else
{
CString strOpen;
switch(eType)
{
case bracketsAngle: strOpen.Insert(0, 0x27E8); break;
case bracketsRound: strOpen.Insert(0, 0x0028); break;
case bracketsCurve: strOpen.Insert(0, 0x007B); break;
case bracketsSquare: strOpen.Insert(0, 0x005B); break;
case bracketsLine: strOpen.Insert(0, 0x007C); break;
case bracketsDLine: strOpen.Insert(0, 0x2016); break;
case bracketsFloor: strOpen.Insert(0, 0x23A3); break;
case bracketsCeil: strOpen.Insert(0, 0x23A1); break;
case bracketsSquareOpenOpen: strOpen.Insert(0, 0x005B); break;
case bracketsSquareCloseClose: strOpen.Insert(0, 0x005D); break;
case bracketsSquareCloseOpen: strOpen.Insert(0, 0x005D); break;
case bracketsSquareRound: strOpen.Insert(0, 0x005B); break;
case bracketsRoundSquare: strOpen.Insert(0, 0x0028); break;
}
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::BegChr, strOpen);
}
if (!bClose)
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::EndChr, _T(""));
else
{
CString strEnd;
switch(eType)
{
case bracketsAngle: strEnd.Insert(0, 0x27E9); break;
case bracketsRound: strEnd.Insert(0, 0x0029); break;
case bracketsCurve: strEnd.Insert(0, 0x007D); break;
case bracketsSquare: strEnd.Insert(0, 0x005D); break;
case bracketsLine: strEnd.Insert(0, 0x007C); break;
case bracketsDLine: strEnd.Insert(0, 0x2016); break;
case bracketsFloor: strEnd.Insert(0, 0x23A6); break;
case bracketsCeil: strEnd.Insert(0, 0x23A4); break;
case bracketsSquareOpenOpen: strEnd.Insert(0, 0x005B); break;
case bracketsSquareCloseClose: strEnd.Insert(0, 0x005D); break;
case bracketsSquareCloseOpen: strEnd.Insert(0, 0x005B); break;
case bracketsSquareRound: strEnd.Insert(0, 0x0029); break;
case bracketsRoundSquare: strEnd.Insert(0, 0x005D); break;
}
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::EndChr, strEnd);
}
WriteItemEnd(nCurPos1);
}
virtual void EndBrackets (MBRACKETSTYPE eType, bool bOpen, bool bClose)
{
if (!m_aDelimiterCounter.empty())
{
int nCount = m_aCommandStack.top()->GetCount();
int nPos = m_aDelimiterCounter.top();
int nEnd = m_oStream.GetPosition();
m_oStream.SetPosition(nPos);
m_oStream.WriteLONG(nCount);
m_oStream.SetPosition(nEnd);
m_aDelimiterCounter.pop();
}
PopCommand();
if (!m_aDelimiterStack.empty())
{
int nCurPos = m_aDelimiterStack.top();
WriteItemEnd(nCurPos);
m_aDelimiterStack.pop();
}
}
virtual void BeginRoot(bool bDegree)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandRoot);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Rad);
m_aRadicalStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::RadPr);
if (!bDegree)
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::DegHide, true);
WriteItemEnd(nCurPos1);
}
virtual void EndRoot ()
{
PopCommand();
if (!m_aRadicalStack.empty())
{
int nCurPos = m_aRadicalStack.top();
WriteItemEnd(nCurPos);
m_aRadicalStack.pop();
}
}
virtual void BeginFraction(MFRACTIONTYPES eType, bool bInline)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandFraction);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Fraction);
m_aFractionStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::FPr);
BYTE fracType;
switch(eType)
{
case fractionRegular:
fracType = SimpleTypes::fTypeBar;
break;
case fractionSlanted:
if (bInline)
fracType = SimpleTypes::fTypeLin;
else
fracType = SimpleTypes::fTypeSkw;
break;
}
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::Type, fracType);
WriteItemEnd(nCurPos1);
}
virtual void EndFraction ()
{
PopCommand();
if (!m_aFractionStack.empty())
{
int nCurPos = m_aFractionStack.top();
WriteItemEnd(nCurPos);
m_aFractionStack.pop();
}
}
virtual void BeginScript(MSCRIPTALIGN eAlign, bool bBase = false, bool bSup = false, bool bSub = false, bool bInline = true)
{
bool bSaveLastRun = false;
if (!bBase && !oRManager.IsEmpty())
bSaveLastRun = true;
WriteRun(bSaveLastRun);
CScriptCommand* pCommand = (CScriptCommand*)PushCommand(commandScript);
pCommand->SetProps(bInline, bBase, bSup, bSub);
int nCurPos;
int nCurPos1;
switch(eAlign)
{
case scriptalignRight:
case scriptalignCenter:
case scriptalignLeft:
if (bSub)
{
if (bSup)
{
nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSubSup);
nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSubSupPr);
}
else
{
nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSub);
nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSubPr);
}
}
else if (bSup)
{
nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSup);
nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SSupPr);
}
break;
/*case scriptalignLeft: ,
{
nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SPre);
nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::SPrePr);
}
break;*/
}
if (bInline)
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::AlnScr, true);
WriteItemEnd(nCurPos1);
m_aScriptStack.push(nCurPos);
if (!bBase && !oRManager.IsEmpty())
{
int nCurPos2 = nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
WriteRun();
WriteItemEnd(nCurPos2);
}
}
virtual void EndScript ()
{
PopCommand();
if (!m_aScriptStack.empty())
{
int nCurPos = m_aScriptStack.top();
WriteItemEnd(nCurPos);
m_aScriptStack.pop();
}
}
virtual void BeginBar(MBARTYPE eType, bool bTop)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandBar);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChr);
m_aGroupChrStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChrPr);
BYTE pos, vertJc;
if (bTop)
{
pos = SimpleTypes::tbTop;
vertJc = SimpleTypes::tbBot;
}
else
{
pos = SimpleTypes::tbBot;
vertJc = SimpleTypes::tbTop;
}
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::Pos, pos);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::VertJc, vertJc);
CString str;
switch(eType)
{
case bartypeLine: str.Insert(0,0x0305);break;
case bartypeDoubleLine: str.Insert(0,0x033F);break;
case bartypeArrowLeft: str.Insert(0,0x20D6);break;
case bartypeArrowRight: str.Insert(0,0x20D7);break;
case bartypeArrowDouble: str.Insert(0,0x20E1);break;
}
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemEnd(nCurPos1);
}
virtual void EndBar ()
{
PopCommand();
if (!m_aGroupChrStack.empty())
{
int nCurPos = m_aGroupChrStack.top();
WriteItemEnd(nCurPos);
m_aGroupChrStack.pop();
}
}
virtual void BeginArrow(MARROWTYPE eType, bool bTop)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandArrow);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChr);
m_aGroupChrStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChrPr);
BYTE pos, vertJc;
if (bTop)
{
pos = SimpleTypes::tbBot;
vertJc = SimpleTypes::tbBot;
}
else
{
pos = SimpleTypes::tbTop;
vertJc = SimpleTypes::tbTop;
}
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::Pos, pos);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::VertJc, vertJc);
CString str;
switch(eType)
{
case arrowtypeLeft: str.Insert(0,0x2190);break;
case arrowtypeRight: str.Insert(0,0x2192);break;
case arrowtypeDouble: str.Insert(0,0x2194);break;
}
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemEnd(nCurPos1);
}
virtual void EndArrow ()
{
PopCommand();
if (!m_aGroupChrStack.empty())
{
int nCurPos = m_aGroupChrStack.top();
WriteItemEnd(nCurPos);
m_aGroupChrStack.pop();
}
}
virtual void BeginIntegral(MINTEGRALTYPE eType)
{
if (!oRManager.IsEmpty())
WriteRun();
PushCommand(commandIntegral);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Nary);
m_aNArrayStack.push(nCurPos);
int lCount = 0;
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::NaryPr);
CString str;
switch(eType)
{
case integraltypeSingle:
str.Insert(0,0x222B);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 1;
break;
case integraltypeSingleRSub:
str.Insert(0,0x222B);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 1;
break;
case integraltypeSingleRSubSup:
str.Insert(0,0x222B);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
lCount = 1;
break;
case integraltypeSingleOriented:
str.Insert(0,0x222E);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 1;
break;
case integraltypeSingleOrientedRSub:
str.Insert(0,0x222E);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 1;
break;
case integraltypeDouble:
str.Insert(0,0x222C);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 2;
break;
case integraltypeDoubleRSub:
str.Insert(0,0x222C);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 2;
break;
case integraltypeDoubleOriented:
str.Insert(0,0x222F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 2;
break;
case integraltypeDoubleOrientedRSub:
str.Insert(0,0x222F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 2;
break;
case integraltypeTriple:
str.Insert(0,0x222D);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 3;
break;
case integraltypeTripleRSub:
str.Insert(0,0x222D);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 3;
break;
case integraltypeTripleOriented:
str.Insert(0,0x2230);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
lCount = 3;
break;
case integraltypeTripleOrientedRSub:
str.Insert(0,0x2230);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 3;
break;
case integraltypeSingleCSubSup:
str.Insert(0,0x222B);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
lCount = 1;
break;
case integraltypeSingleCSub:
str.Insert(0,0x222B);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 1;
break;
case integraltypeSingleOrientedCSub:
str.Insert(0,0x222E);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 1;
break;
case integraltypeDoubleOrientedCSub:
str.Insert(0,0x222F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 2;
break;
case integraltypeDoubleCSub:
str.Insert(0,0x222C);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 2;
break;
case integraltypeTripleOrientedCSub:
str.Insert(0,0x2230);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 3;
break;
case integraltypeTripleCSub:
str.Insert(0,0x222D);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
lCount = 3;
break;
}
m_aNArrayCutStack.push(lCount);
WriteItemEnd(nCurPos1);
}
virtual void EndIntegral ()
{
PopCommand();
if (!m_aNArrayCutStack.empty())
{
int lCount = m_aNArrayCutStack.top();
if (!oRManager.IsEmpty())
CutRun(lCount);
m_aNArrayCutStack.pop();
}
if (!m_aNArrayStack.empty())
{
int nCurPos = m_aNArrayStack.top();
WriteItemEnd(nCurPos);
m_aNArrayStack.pop();
}
}
virtual void BeginVerticalBrace(bool bTop)
{
if (!oRManager.IsEmpty())
WriteRun();
BYTE pos, vertJc;
CString chr;
if (bTop)
{
chr.Insert(0,0x23DE);
vertJc = SimpleTypes::verticaljcBottom;
pos = SimpleTypes::tbTop;
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::LimUpp);
m_aLimitStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::LimUppPr);
//+ctrlprp
WriteItemEnd(nCurPos1);
}
else
{
chr.Insert(0,0x23DF);
vertJc = SimpleTypes::verticaljcTop;
pos = SimpleTypes::tbBot;
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::LimLow);
m_aLimitStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::LimLowPr);
//+ctrlprp
WriteItemEnd(nCurPos1);
}
int nCurPos2 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
m_aLimitStack.push(nCurPos2);
int nCurPos3 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChr);
m_aLimitStack.push(nCurPos3);
int nCurPos4 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::GroupChrPr);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, chr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::Pos, pos);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::VertJc, vertJc);
WriteItemEnd(nCurPos4);
PushCommand(commandVerticalBrace);
}
virtual void EndVerticalBrace ()
{
PopCommand();
if (!m_aLimitStack.empty())
{
int nCurPos = m_aLimitStack.top();
WriteItemEnd(nCurPos);
m_aLimitStack.pop();
}
}
virtual void BeingNArray(MNARRAYTYPE eType)
{
if (!oRManager.IsEmpty())
WriteRun();
CNArrayCommand* pCommand = (CNArrayCommand*)PushCommand(commandNArray);
pCommand->SetType(eType);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Nary);
m_aNArrayStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::NaryPr);
CString str;
switch(eType)
{
case narySumCSub:
str.Insert(0,0x2211);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case narySumCSubSup:
str.Insert(0,0x2211);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
break;
case narySum:
str.Insert(0,0x2211);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
break;
case narySumRSub:
str.Insert(0,0x2211);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case narySumRSubSup:
str.Insert(0,0x2211);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
break;
case naryProdCSub:
str.Insert(0,0x220F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryProdCSubSup:
str.Insert(0,0x220F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
break;
case naryProd:
str.Insert(0,0x220F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
break;
case naryProdRSub:
str.Insert(0,0x220F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryProdRSubSup:
str.Insert(0,0x220F);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
break;
case naryCoProdCSub:
str.Insert(0,0x2210);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryCoProdCSubSup:
str.Insert(0,0x2210);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
break;
case naryCoProd:
str.Insert(0,0x2210);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
break;
case naryCoProdRSub:
str.Insert(0,0x2210);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryCoProdRSubSup:
str.Insert(0,0x2210);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
break;
case naryUnionCSub:
str.Insert(0,0x22C3);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryUnionCSubSup:
str.Insert(0,0x22C3);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
break;
case naryUnion:
str.Insert(0,0x22C3);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
break;
case naryUnionRSub:
str.Insert(0,0x22C3);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryUnionRSubSup:
str.Insert(0,0x22C3);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
break;
case naryIntersectCSub:
str.Insert(0,0x22C2);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryIntersectCSubSup:
str.Insert(0,0x22C2);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
break;
case naryIntersect:
str.Insert(0,0x22C2);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocUndOvr);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SubHide, true);
break;
case naryIntersectRSub:
str.Insert(0,0x22C2);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::SupHide, true);
break;
case naryIntersectRSubSup:
str.Insert(0,0x22C2);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::Chr, str);
WriteItemVal(BinDocxRW::c_oSer_OMathBottomNodesType::LimLoc, SimpleTypes::limLocSubSup);
break;
}
m_aNArrayCutStack.push(1);
WriteItemEnd(nCurPos1);
}
virtual void EndNArray ()
{
CNArrayCommand* pCommand = (CNArrayCommand*)TopCommand();
MNARRAYTYPE eType = pCommand->GetType();
PopCommand();
if (!m_aNArrayCutStack.empty())
{
int lCount = m_aNArrayCutStack.top();
if (!oRManager.IsEmpty())
CutRun(lCount);
m_aNArrayCutStack.pop();
}
if (!m_aNArrayStack.empty())
{
int nCurPos = m_aNArrayStack.top();
WriteItemEnd(nCurPos);
m_aNArrayStack.pop();
}
}
virtual void BeginLongDivision(MLONGDIVISION eType)
{
if (!oRManager.IsEmpty())
WriteRun();
//PushCommand(commandLongDivision);
if (eType == longdivisionWithResult)
{
BeginFraction(fractionRegular, true);
}
else if (eType == longdivisionRegular)
{
BeginBrackets(bracketsLine, true, false);
}
}
virtual void EndLongDivision ()
{
ECommandType eType;
CBaseCommand* pCommand = TopCommand();
eType = pCommand->GetCommand();
if (eType == commandFraction)
{
EndFraction();
}
else if (eType == commandBrackets)
{
MBRACKETSTYPE ebType;
EndBrackets(ebType, false,false);
}
}
virtual void BeginAngleBracketsWithSeparator(MANGLEBRACKETSWITHSEPARATORTYPE eType)
{
if (!oRManager.IsEmpty())
WriteRun();
CBracketsWithSeparatorCommand* pCommand = (CBracketsWithSeparatorCommand*)PushCommand(commandBracketsSep);
pCommand->SetType(eType);
int nCurPos = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Delimiter);
m_aDelimiterStack.push(nCurPos);
int nCurPos1 = WriteItemStart(BinDocxRW::c_oSer_OMathContentType::DelimiterPr);
CString beg, sep, end;
switch (eType)
{
case angbrwithsepBoth: // < | >
beg.Insert(0,0x27E8); sep.Insert(0, 0x007C); end.Insert(0, 0x27E9);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::BegChr, beg);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::SepChr, sep);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::EndChr, end);
WriteItemValLong(BinDocxRW::c_oSer_OMathBottomNodesType::Column, 2);
break;
case angbrwithsepLeft: // < |
beg.Insert(0,0x27E8); end.Insert(0, 0x007C);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::BegChr, beg);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::EndChr, end);
break;
case angbrwithsepRight: // | >
beg.Insert(0,0x007C); end.Insert(0, 0x27E9);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::BegChr, beg);
WriteItemValStr(BinDocxRW::c_oSer_OMathBottomNodesType::EndChr, end);
break;
}
WriteItemEnd(nCurPos1);
}
virtual void EndAngleBracketsWithSeparator ()
{
PopCommand();
if (!m_aDelimiterStack.empty())
{
int nCurPos = m_aDelimiterStack.top();
WriteItemEnd(nCurPos);
m_aDelimiterStack.pop();
}
}
void AddFont(uint8_t nTypeFace, std::string sName, bool bBold, bool bItalic)
{
TMathFont aFont;
aFont.sName = sName;
aFont.bBold = bBold;
aFont.bItalic = bItalic;
m_mFonts[nTypeFace] = aFont;
}
void WriteItemVal(BYTE name, BYTE val)
{
int nCurPos = WriteItemStart(name);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Byte);
m_oStream.WriteBYTE(val);
WriteItemEnd(nCurPos);
}
void WriteItemValLong(BYTE name, LONG val)
{
int nCurPos = WriteItemStart(name);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Long);
m_oStream.WriteLONG(val);
WriteItemEnd(nCurPos);
}
void WriteItemVal(BYTE name, BOOL val)
{
int nCurPos = WriteItemStart(name);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Byte);
m_oStream.WriteBOOL(val);
WriteItemEnd(nCurPos);
}
void WriteItemValStr(BYTE name, CString val)
{
int nCurPos = WriteItemStart(name);
m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Variable);
m_oStream.WriteStringW(val);
WriteItemEnd(nCurPos);
}
private:
enum ECommandType
{
commandMatrix = 0x00,
commandBrackets = 0x01,
commandRoot = 0x02,
commandFraction = 0x03,
commandScript = 0x04,
commandBar = 0x05,
commandArrow = 0x06,
commandIntegral = 0x07,
commandVerticalBrace = 0x08,
commandNArray = 0x09,
//commandLongDivision = 0x0a,
commandBracketsSep = 0x0b,
commandVerticalBraceLim = 0x0c
};
class CBaseCommand
{
public:
CBaseCommand() : nBlockNum(-1), bPile(false), bEqArrayStart(false), nCount(0)
{
}
virtual ~CBaseCommand()
{
}
void Next()
{
BOOL bCurPile;
bCurPile = GetPile();
if (!bCurPile || (nBlockNum == -1))
nBlockNum++;
}
BOOL IsOpenNode()
{
return bOpenNode;
}
int GetCount()
{
return nCount;
}
void SetPile(BOOL bSetPile)
{
bPile = bSetPile;
bEqArrayStart = !bSetPile;
}
bool GetPile()
{
return bPile;
}
int GetBlockNum()
{
return nBlockNum;
}
void WriteBeginNode(BinaryEquationWriter* pWriter, BYTE elem)
{
int nElemPos;
if (bEqArrayStart)
{
nElemPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
nRows++;
}
else
{
nElemPos = pWriter->WriteItemStart(elem);
nCount++;
}
m_aBaseStack.push(nElemPos);
if (bPile && !bEqArrayStart)
{
bEqArrayStart = true;
nElemPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::EqArr);
m_aBaseStack.push(nElemPos);
nElemPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::EqArrPr);
int nCurPos1 = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathBottomNodesType::Row);
pWriter->m_oStream.WriteBYTE(BinDocxRW::c_oSer_OMathBottomNodesValType::Val);
pWriter->m_oStream.WriteBYTE(BinDocxRW::c_oSerPropLenType::Long);
pWriter->m_aRowsPosCounter.push( pWriter->WriteItemWithLengthStart());
pWriter->WriteItemEnd(nCurPos1);
pWriter->WriteItemEnd(nElemPos);
nElemPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
nRows = 1;
m_aBaseStack.push(nElemPos);
}
}
void WriteEndNode(BinaryEquationWriter* pWriter)
{
int nCurPos;
if (!m_aBaseStack.empty())
{
nCurPos = m_aBaseStack.top();
m_aBaseStack.pop();
}
if (!pWriter->oRManager.IsEmpty())
{
pWriter->WriteRun();
}
if (bPile && bEqArrayStart)
pWriter->WriteItemEnd(nCurPos);
else if (!bPile && !bEqArrayStart)
pWriter->WriteItemEnd(nCurPos);
else if (!bPile && bEqArrayStart)
{
pWriter->m_aRowsCounter.push(nRows);
bEqArrayStart = false;
pWriter->WriteItemEnd(nCurPos);//eqArr
if (!m_aBaseStack.empty())
{
nCurPos = m_aBaseStack.top();
m_aBaseStack.pop();
}
pWriter->WriteItemEnd(nCurPos);
}
}
virtual ECommandType GetCommand() = 0;
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter) = 0;
virtual void WriteEndBlock(BinaryEquationWriter* pWriter) = 0;
protected:
int nCount;
int nRows;
std::stack<int> m_aBaseStack;
BOOL bOpenNode;
BOOL bPile;
BOOL bEqArrayStart;
int nBlockNum;
};
class CMatrixCommand : public CBaseCommand
{
public:
CMatrixCommand() : nRows(0), nCols(0) {}
virtual ~CMatrixCommand() {}
virtual ECommandType GetCommand()
{
return commandMatrix;
}
void SetProps(int nRows, int nCols)
{
this->nRows = nRows;
this->nCols = nCols;
}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
int nCurRow = nBlockNum / nCols;
int nCurCol = nBlockNum % nCols;
if (0 == nCurCol)
nRowPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Mr);
nColPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
int nCurRow = nBlockNum / nCols;
int nCurCol = nBlockNum % nCols;
if (!pWriter->oRManager.IsEmpty())
{
pWriter->WriteRun();
}
pWriter->WriteItemEnd(nColPos);
if (nCols - 1 == nCurCol)
pWriter->WriteItemEnd(nRowPos);
}
private:
int nRowPos;
int nColPos;
int nRows;
int nCols;
};
class CBracketsCommand : public CBaseCommand
{
public:
CBracketsCommand() {}
virtual ~CBracketsCommand() {}
virtual ECommandType GetCommand(){return commandBrackets;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
private:
int nElemPos;
};
class CRootCommand : public CBaseCommand
{
public:
CRootCommand() {}
virtual ~CRootCommand() {}
virtual ECommandType GetCommand(){return commandRoot;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
else if (1 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Deg);
else
WriteEndNode(pWriter);
}
}
private:
int nElemPos;
int nDegPos;
};
class CFractionCommand : public CBaseCommand
{
public:
CFractionCommand() {}
virtual ~CFractionCommand() {}
virtual ECommandType GetCommand(){return commandFraction;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Num);
else
WriteEndNode(pWriter);
}
else if (1 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Den);
else
WriteEndNode(pWriter);
}
}
};
class CScriptCommand : public CBaseCommand
{
public:
CScriptCommand() {}
virtual ~CScriptCommand() {}
virtual ECommandType GetCommand(){return commandScript;}
void SetProps(bool bInline, bool bBase, bool bSup, bool bSub)
{
this->bBase = bBase;
this->bInline = bInline;
this->bSub = bSub;
this->bSup = bSup;
}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
private:
void Write(BinaryEquationWriter* pWriter, bool bBegin)
{
bOpenNode = bBegin;
if (bInline)
{
if (0 == nBlockNum)
{
if (bBase)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
else if (bSub)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sub);
else
WriteEndNode(pWriter);
}
else if (bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
else if (1 == nBlockNum)
{
if (bBase)
{
if (bSub)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sub);
else
WriteEndNode(pWriter);
}
else if (bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
else if (bSub && bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
else if (2 == nBlockNum)
{
if (bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
}
else
{
if (0 == nBlockNum) //sSubSup
{
if (bSub)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sub);
else
WriteEndNode(pWriter);
}
else if (bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
else if (bBase)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
else if (1 == nBlockNum)
{
if (bSub)
{
if (bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
else if (bBase)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
else if (bSup && bBase)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
else if (2 == nBlockNum)
{
if (bBase && bSub && bSup)
{
if (bBegin)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
}
}
private:
bool bBase;
bool bSup;
bool bSub;
bool bInline;
};
class CBarCommand : public CBaseCommand
{
public:
CBarCommand() {}
virtual ~CBarCommand() {}
virtual ECommandType GetCommand(){return commandBar;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
private:
int nElemPos;
};
class CArrowCommand : public CBaseCommand
{
public:
CArrowCommand() {}
virtual ~CArrowCommand() {}
virtual ECommandType GetCommand(){return commandArrow;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
nElemPos = pWriter->WriteItemStart(BinDocxRW::c_oSer_OMathContentType::Element);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
pWriter->WriteItemEnd(nElemPos);
}
private:
int nElemPos;
};
class CIntegralCommand : public CBaseCommand
{
public:
CIntegralCommand() {}
virtual ~CIntegralCommand() {}
virtual ECommandType GetCommand(){return commandIntegral;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
private:
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
else if (1 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sub);
else
WriteEndNode(pWriter);
}
else if (2 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
};
class CVerticalBraceCommand : public CBaseCommand
{
public:
CVerticalBraceCommand() {}
virtual ~CVerticalBraceCommand() {}
virtual ECommandType GetCommand(){return commandVerticalBrace;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
{
WriteEndNode(pWriter);
pWriter->PopCommand();
int nCurPos = pWriter->m_aLimitStack.top();
pWriter->WriteItemEnd(nCurPos); //groupChr
pWriter->m_aLimitStack.pop();
nCurPos = pWriter->m_aLimitStack.top();
pWriter->WriteItemEnd(nCurPos); //lim element
pWriter->m_aLimitStack.pop();
pWriter->PushCommand(commandVerticalBraceLim);
CBaseCommand* pCommand = pWriter->TopCommand();
pCommand->WriteBeginBlock(pWriter);
}
}
}
private:
int nBasePos;
int nBraceBasePos;
};
class CVerticalBraceLimCommand : public CBaseCommand
{
public:
CVerticalBraceLimCommand() {}
virtual ~CVerticalBraceLimCommand() {}
virtual ECommandType GetCommand(){return commandVerticalBraceLim;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Lim);
else
WriteEndNode(pWriter);
}
}
private:
int nBasePos;
int nBraceBasePos;
};
class CNArrayCommand : public CBaseCommand
{
public:
CNArrayCommand() {}
virtual ~CNArrayCommand() {}
virtual ECommandType GetCommand(){return commandNArray;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
void SetType(MNARRAYTYPE eType)
{
this->eType = eType;
}
MNARRAYTYPE GetType()
{
return eType;
}
private:
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
else if (1 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sub);
else
WriteEndNode(pWriter);
}
else if (2 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Sup);
else
WriteEndNode(pWriter);
}
}
private:
MNARRAYTYPE eType;
};
/*class CLongDivisionCommand : public CBaseCommand
{
public:
CLongDivisionCommand() {}
virtual ~CLongDivisionCommand() {}
virtual ECommandType GetCommand(){return commandLongDivision;}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
if (0 == nBlockNum)
pWriter->WriteNodeBegin("base");
else
pWriter->WriteNodeBegin("result");
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
if (0 == nBlockNum)
pWriter->WriteNodeEnd("base");
else
pWriter->WriteNodeEnd("result");
}
private:
BOOL bPile;
};*/
class CBracketsWithSeparatorCommand : public CBaseCommand
{
public:
CBracketsWithSeparatorCommand() {}
virtual ~CBracketsWithSeparatorCommand() {}
virtual ECommandType GetCommand(){return commandBracketsSep;}
void SetType(MANGLEBRACKETSWITHSEPARATORTYPE eType)
{
this->eType = eType;
}
virtual void WriteBeginBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, true);
}
virtual void WriteEndBlock(BinaryEquationWriter* pWriter)
{
Write(pWriter, false);
}
private:
void Write(BinaryEquationWriter* pWriter, bool bBeginNode)
{
bOpenNode = bBeginNode;
if (0 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
else if (1 == nBlockNum)
{
if (bBeginNode)
WriteBeginNode(pWriter, BinDocxRW::c_oSer_OMathContentType::Element);
else
WriteEndNode(pWriter);
}
}
private:
MANGLEBRACKETSWITHSEPARATORTYPE eType;
};
CBaseCommand* PushCommand(ECommandType eType)
{
CBaseCommand* pCommand = NULL;
switch(eType)
{
case commandMatrix: pCommand = new CMatrixCommand(); break;
case commandBrackets: pCommand = new CBracketsCommand(); break;
case commandRoot: pCommand = new CRootCommand(); break;
case commandFraction: pCommand = new CFractionCommand(); break;
case commandScript: pCommand = new CScriptCommand(); break;
case commandBar: pCommand = new CBarCommand(); break;
case commandArrow: pCommand = new CArrowCommand(); break;
case commandIntegral: pCommand = new CIntegralCommand(); break;
case commandVerticalBrace: pCommand = new CVerticalBraceCommand(); break;
case commandVerticalBraceLim: pCommand = new CVerticalBraceLimCommand(); break;
case commandNArray: pCommand = new CNArrayCommand(); break;
//case commandLongDivision: pCommand = new CLongDivisionCommand(); break;
case commandBracketsSep: pCommand = new CBracketsWithSeparatorCommand(); break;
}
m_aCommandStack.push(pCommand);
return pCommand;
}
void PopCommand()
{
CBaseCommand* pCommand = m_aCommandStack.top();
if (pCommand)
delete pCommand;
m_aCommandStack.pop();
}
CBaseCommand* TopCommand()
{
return m_aCommandStack.top();
}
private:
CString rRet;
bool bEmbel;
std::stack<CBaseCommand*> m_aCommandStack;
};
}
#endif //BINEQUATIONWRITER_H
\ No newline at end of file
#ifndef DOCX_BIN_READER_WRITER_DEFINES
#define DOCX_BIN_READER_WRITER_DEFINES
namespace BinDocxRW
{
const double eps = 0.001;
const int Page_Width = 210;
const int Page_Height = 297;
const int X_Left_Margin = 30; // 3 cm
const int X_Right_Margin = 15; // 1.5 cm
const int Y_Bottom_Margin = 20; // 2 cm
const int Y_Top_Margin = 20; // 2 cm
const double Y_Default_Header = 12.5; // 1.25 cm
const double Y_Default_Footer = 12.5; // 1.25 cm
const int shd_Clear = 0;
const int shd_Nil = 1;
const int g_tabtype_left = 0;
const int g_tabtype_right = 1;
const int g_tabtype_center = 2;
const int g_tabtype_clear = 3;
const int border_None = 0x0000;
const int border_Single = 0x0001;
const int heightrule_AtLeast = 0x00;
const int heightrule_Auto = 0x01;
const int heightrule_Exact = 0x02;
const int vertalign_Baseline = 0;
const int vertalign_SuperScript = 1;
const int vertalign_SubScript = 2;
const int align_Right = 0;
const int align_Left = 1;
const int align_Center = 2;
const int align_Justify = 3;
const int vertalignjc_Top = 0x00;
const int vertalignjc_Center = 0x01;
const int vertalignjc_Bottom = 0x02;
const int vmerge_Restart = 0x01;
const int vmerge_Continue = 0x02;
const int linerule_AtLeast = 0;
const int linerule_Auto = 1;
const int linerule_Exact = 2;
const int orientation_Portrait = 0x00;
const int orientation_Landscape = 0x01;
const int numbering_numfmt_None = 0x0000;
const int numbering_numfmt_Bullet = 0x1001;
const int numbering_numfmt_Decimal = 0x2002;
const int numbering_numfmt_LowerRoman = 0x2003;
const int numbering_numfmt_UpperRoman = 0x2004;
const int numbering_numfmt_LowerLetter = 0x2005;
const int numbering_numfmt_UpperLetter = 0x2006;
const int numbering_numfmt_DecimalZero = 0x2007;
const int numbering_suff_Tab = 1;
const int numbering_suff_Space = 2;
const int numbering_suff_Nothing = 3;
const int tblwidth_Auto = 0x00;
const int tblwidth_Mm = 0x01;
const int tblwidth_Nil = 0x02;
const int tblwidth_Pct = 0x03;
const int fontstyle_mask_regular = 1;
const int fontstyle_mask_italic = 2;
const int fontstyle_mask_bold = 4;
const int fontstyle_mask_bolditalic = 8;
const int styletype_Character = 0x01;
const int styletype_Numbering = 0x02;
const int styletype_Paragraph = 0x03;
const int styletype_Table = 0x04;
const int fieldstruct_none = 0;
const int fieldstruct_toc = 1;
const int fieldstruct_hyperlink = 2;
const double g_dKoef_mm_to_pt = 72 / (2.54 * 10);
const double g_dKoef_mm_to_twips = 20 * g_dKoef_mm_to_pt;
const double g_dKoef_mm_to_emu = 36000;
const double g_dKoef_mm_to_eightpoint = 8 * g_dKoef_mm_to_pt;
const double g_dKoef_mm_to_hps = 2 * g_dKoef_mm_to_pt;
const static TCHAR* g_sFormatSignature = _T("DOCY");
const int g_nFormatVersion = 5;
extern int g_nCurFormatVersion;
namespace c_oAscWrapStyle{enum c_oSerFormat
{
Inline = 0,
Flow = 1
};}
namespace c_oSerConstants{enum c_oSerConstants
{
ErrorFormat = -2,
ErrorUnknown = -1,
ReadOk = 0,
ReadUnknown = 1,
ErrorStream = 0x55
};}
namespace c_oSerTableTypes{enum c_oSerTableTypes
{
Signature = 0,
Info = 1,
Media = 2,
Numbering = 3,
HdrFtr = 4,
Style = 5,
Document = 6,
Other = 7,
Comments = 8,
Settings = 9
};}
namespace c_oSerSigTypes{enum c_oSerSigTypes
{
Version = 0
};}
namespace c_oSerHdrFtrTypes{enum c_oSerHdrFtrTypes
{
Header = 0,
Footer = 1,
HdrFtr_First = 2,
HdrFtr_Even = 3,
HdrFtr_Odd = 4,
HdrFtr_Content = 5,
HdrFtr_Y2 = 6,//
HdrFtr_Y = 7//
};}
namespace c_oSerNumTypes{enum c_oSerNumTypes
{
AbstractNums = 0,
AbstractNum = 1,
AbstractNum_Id = 2,
AbstractNum_Type = 3,
AbstractNum_Lvls = 4,
Lvl = 5,
lvl_Format = 6,
lvl_Jc = 7,
lvl_LvlText = 8,
lvl_LvlTextItem = 9,
lvl_LvlTextItemText = 10,
lvl_LvlTextItemNum = 11,
lvl_Restart = 12,
lvl_Start = 13,
lvl_Suff = 14,
lvl_ParaPr = 15,
lvl_TextPr = 16,
Nums = 17,
Num = 18,
Num_ANumId = 19,
Num_NumId = 20,
lvl_PStyle = 21,
NumStyleLink = 22,
StyleLink = 23
};}
namespace c_oSerOtherTableTypes{enum c_oSerOtherTableTypes
{
ImageMap = 0,
ImageMap_Src = 1,
EmbeddedFonts = 2,
DocxTheme = 3
};}
namespace c_oSerFontsTypes{enum c_oSerFontsTypes
{
Name = 0
};}
namespace c_oSerImageMapTypes{enum c_oSerImageMapTypes
{
Src = 0
};}
namespace c_oSerStyleTypes{enum c_oSerStyleTypes
{
Name = 0,
BasedOn = 1,
Next = 2
};}
namespace c_oSerPropLenType{enum c_oSerPropLenType
{
Null = 0,
Byte = 1,
Short = 2,
Three = 3,
Long = 4,
Double = 5,
Variable = 6,
Double64 = 7,
Long64 = 8
};}
namespace c_oSer_st{enum c_oSer_st
{
DefpPr = 0,
DefrPr = 1,
Styles = 2
};}
namespace c_oSer_sts{enum c_oSer_sts
{
Style = 0,
Style_Id = 1,
Style_Name = 2,
Style_BasedOn = 3,
Style_Next = 4,
Style_TextPr = 5,
Style_ParaPr = 6,
Style_TablePr = 7,
Style_Default = 8,
Style_Type = 9,
Style_qFormat = 10,
Style_uiPriority = 11,
Style_hidden = 12,
Style_semiHidden = 13,
Style_unhideWhenUsed = 14,
Style_RowPr = 15,
Style_CellPr = 16,
Style_TblStylePr = 17
};}
namespace c_oSerProp_tblStylePrType{enum c_oSerProp_tblStylePrType
{
TblStylePr = 0,
Type = 1,
RunPr = 2,
ParPr = 3,
TblPr = 4,
TrPr = 5,
TcPr = 6
};}
namespace c_oSerProp_tblPrType{enum c_oSerProp_tblPrType
{
Rows = 0,
Cols = 1,
Jc = 2,
TableInd = 3,
TableW = 4,
TableCellMar = 5,
TableBorders = 6,
Shd = 7,
tblpPr = 8,
Look = 9,
Style = 10,
tblpPr2 = 11,
Layout = 12
};}
namespace c_oSer_tblpPrType{enum c_oSer_tblpPrType
{
Page = 0,
X = 1,
Y = 2,
Paddings = 3
};}
namespace c_oSer_tblpPrType2{enum c_oSer_tblpPrType2
{
HorzAnchor = 0,
TblpX = 1,
TblpXSpec = 2,
VertAnchor = 3,
TblpY = 4,
TblpYSpec = 5,
Paddings = 6
};}
namespace c_oSerProp_pPrType{enum c_oSerProp_pPrType
{
ContextualSpacing = 0,
Ind = 1,
Ind_Left = 2,
Ind_Right = 3,
Ind_FirstLine = 4,
Jc = 5,
KeepLines = 6,
KeepNext = 7,
PageBreakBefore = 8,
Spacing = 9,
Spacing_Line = 10,
Spacing_LineRule = 11,
Spacing_Before = 12,
Spacing_After = 13,
Shd = 14,
Tab = 17,
Tab_Item = 18,
Tab_Item_Pos = 19,
Tab_Item_Val = 20,
ParaStyle = 21,
numPr = 22,
numPr_lvl = 23,
numPr_id = 24,
WidowControl = 25,
pPr_rPr = 26,
pBdr = 27,
Spacing_BeforeAuto = 28,
Spacing_AfterAuto = 29,
FramePr = 30,
SectPr = 31
};}
namespace c_oSerProp_rPrType{enum c_oSerProp_rPrType
{
Bold = 0,
Italic = 1,
Underline = 2,
Strikeout = 3,
FontAscii = 4,
FontHAnsi = 5,
FontAE = 6,
FontCS = 7,
FontSize = 8,
Color = 9,
VertAlign = 10,
HighLight = 11,
HighLightTyped = 12,
RStyle = 13,
Spacing = 14,
DStrikeout = 15,
Caps = 16,
SmallCaps = 17,
Position = 18,
FontHint = 19,
BoldCs = 20,
ItalicCs = 21,
FontSizeCs = 22,
Cs = 23,
Rtl = 24,
Lang = 25,
LangBidi = 26,
LangEA = 27,
ColorTheme = 28,
Shd = 29,
Vanish = 30
};}
namespace c_oSerProp_rowPrType{enum c_oSerProp_rowPrType
{
CantSplit = 0,
GridAfter = 1,
GridBefore = 2,
Jc = 3,
TableCellSpacing = 4,
Height = 5,
Height_Rule = 6,
Height_Value = 7,
WAfter = 8,
WBefore = 9,
WAfterBefore_W = 10,
WAfterBefore_Type = 11,
After = 12,
Before = 13,
TableHeader = 14
};}
namespace c_oSerProp_cellPrType{enum c_oSerProp_cellPrType
{
GridSpan = 0,
Shd = 1,
TableCellBorders = 2,
TableCellW = 3,
VAlign = 4,
VMerge = 5,
CellMar = 6
};}
namespace c_oSerProp_secPrType{enum c_oSerProp_secPrType
{
pgSz = 0,
pgMar = 1,
setting = 2,
headers = 3,
footers = 4,
hdrftrelem = 5,
pageNumType = 6
};}
namespace c_oSerProp_secPrSettingsType{enum c_oSerProp_secPrSettingsType
{
titlePg = 0,
EvenAndOddHeaders = 1,
SectionType = 2
};}
namespace c_oSerProp_secPrPageNumType{enum c_oSerProp_secPrPageNumType
{
start = 0
};}
namespace c_oSerParType{enum c_oSerParType
{
Par = 0,
pPr = 1,
Content = 2,
Table = 3,
sectPr = 4,
Run = 5,
CommentStart = 6,
CommentEnd = 7,
OMathPara = 8,
OMath = 9,
Hyperlink = 10,
FldSimple = 11
};}
namespace c_oSerDocTableType{enum c_oSerDocTableType
{
tblPr = 0,
tblGrid = 1,
tblGrid_Item = 2,
Content = 3,
Row = 4,
Row_Pr = 4,
Row_Content = 5,
Cell = 6,
Cell_Pr = 7,
Cell_Content = 8
};}
namespace c_oSerRunType{enum c_oSerRunType
{
run = 0,
rPr = 1,
tab = 2,
pagenum = 3,
pagebreak = 4,
linebreak = 5,
image = 6,
table = 7,
Content = 8,
fldstart = 9,
fldend = 10,
CommentReference = 11,
pptxDrawing = 12,
object = 14
};}
namespace c_oSerImageType{enum c_oSerImageType
{
MediaId = 0,
Type = 1,
Width = 2,
Height = 3,
X = 4,
Y = 5,
Page = 6,
Padding = 7
};}
namespace c_oSerImageType2{enum c_oSerImageType2
{
Type = 0,
PptxData = 1,
AllowOverlap = 2,
BehindDoc = 3,
DistB = 4,
DistL = 5,
DistR = 6,
DistT = 7,
Hidden = 8,
LayoutInCell = 9,
Locked = 10,
RelativeHeight = 11,
BSimplePos = 12,
EffectExtent = 13,
Extent = 14,
PositionH = 15,
PositionV = 16,
SimplePos = 17,
WrapNone = 18,
WrapSquare = 19,
WrapThrough = 20,
WrapTight = 21,
WrapTopAndBottom = 22,
Chart = 23,
ChartImg = 24,
Chart2 = 25
};}
namespace c_oSerEffectExtent{enum c_oSerEffectExtent
{
Left = 0,
Top = 1,
Right = 2,
Bottom = 3
};}
namespace c_oSerExtent{enum c_oSerExtent
{
Cx = 0,
Cy = 1
};}
namespace c_oSerPosHV{enum c_oSerPosHV
{
RelativeFrom = 0,
Align = 1,
PosOffset = 2,
PctOffset = 3
};}
namespace c_oSerSimplePos{enum c_oSerSimplePos
{
X = 0,
Y = 1
};}
namespace c_oSerWrapSquare{enum c_oSerWrapSquare
{
DistL = 0,
DistT = 1,
DistR = 2,
DistB = 3,
WrapText = 4,
EffectExtent = 5
};}
namespace c_oSerWrapThroughTight{enum c_oSerWrapThroughTight
{
DistL = 0,
DistR = 1,
WrapText = 2,
WrapPolygon = 3
};}
namespace c_oSerWrapTopBottom{enum c_oSerWrapTopBottom
{
DistT = 0,
DistB = 1,
EffectExtent = 2
};}
namespace c_oSerWrapPolygon{enum c_oSerWrapPolygon
{
Edited = 0,
Start = 1,
ALineTo = 2,
LineTo = 3
};}
namespace c_oSerPoint2D{enum c_oSerPoint2D
{
X = 0,
Y = 1
};}
namespace c_oSerBorderType{enum c_oSerBorderType
{
Color = 0,
Space = 1,
Size = 2,
Value = 3,
ColorTheme = 4
};}
namespace c_oSerShdType{enum c_oSerShdType
{
Value = 0,
Color = 1,
ColorTheme = 2
};}
namespace c_oSerPaddingType{enum c_oSerPaddingType
{
left = 0,
top = 1,
right = 2,
bottom = 3
};}
namespace c_oSerMarginsType{enum c_oSerMarginsType
{
left = 0,
top = 1,
right = 2,
bottom = 3
};}
namespace c_oSerBordersType{enum c_oSerBordersType
{
left = 0,
top = 1,
right = 2,
bottom = 3,
insideV = 4,
insideH = 5,
start = 6,
end = 7,
tl2br = 8,
tr2bl = 9,
bar = 10,
between = 11
};}
namespace c_oSerWidthType{enum c_oSerWidthType
{
Type = 0,
W = 1,
WDocx = 2
};}
namespace c_oSer_pgSzType{enum c_oSer_pgSzType
{
W = 0,
H = 1,
Orientation = 2
};}
namespace c_oSer_pgMarType{enum c_oSer_pgMarType
{
Left = 0,
Top = 1,
Right = 2,
Bottom = 3,
Header = 4,
Footer = 5
};}
namespace c_oSer_ColorType{enum c_oSer_ColorType
{
None = 0,
Auto = 1
};}
namespace c_oSer_CommentsType{enum c_oSer_CommentsType
{
Comment = 0,
Id = 1,
Initials = 2,
UserName = 3,
UserId = 4,
Date = 5,
Text = 6,
QuoteText = 7,
Solved = 8,
Replies = 9
};}
namespace c_oSer_SettingsType{enum c_oSer_SettingsType
{
ClrSchemeMapping = 0,
DefaultTabStop = 1,
MathPr = 2
};}
namespace c_oSer_MathPrType{enum c_oSer_SettingsType
{
BrkBin = 0,
BrkBinSub = 1,
DefJc = 2,
DispDef = 3,
InterSp = 4,
IntLim = 5,
IntraSp = 6,
LMargin = 7,
MathFont = 8,
NaryLim = 9,
PostSp = 10,
PreSp = 11,
RMargin = 12,
SmallFrac = 13,
WrapIndent = 14,
WrapRight = 15
};}
namespace c_oSer_ClrSchemeMappingType{enum c_oSer_ClrSchemeMappingType
{
Accent1 = 0,
Accent2 = 1,
Accent3 = 2,
Accent4 = 3,
Accent5 = 4,
Accent6 = 5,
Bg1 = 6,
Bg2 = 7,
FollowedHyperlink = 8,
Hyperlink = 9,
T1 = 10,
T2 = 11
};}
namespace c_oSer_OMathBottomNodesType{enum c_oSer_OMathBottomNodesType
{
Aln = 0,
AlnScr = 1,
ArgSz = 2,
BaseJc = 3,
BegChr = 4,
Brk = 5,
CGp = 6,
CGpRule = 7,
Chr = 8,
Count = 9,
CSp = 10,
CtrlPr = 11,
DegHide = 12,
Diff = 13,
EndChr = 14,
Grow = 15,
HideBot = 16,
HideLeft = 17,
HideRight = 18,
HideTop = 19,
MJc = 20,
LimLoc = 21,
Lit = 22,
MaxDist = 23,
McJc = 24,
Mcs = 25,
NoBreak = 26,
Nor = 27,
ObjDist = 28,
OpEmu = 29,
PlcHide = 30,
Pos = 31,
RSp = 32,
RSpRule = 33,
Scr = 34,
SepChr = 35,
Show = 36,
Shp = 37,
StrikeBLTR = 38,
StrikeH = 39,
StrikeTLBR = 40,
StrikeV = 41,
Sty = 42,
SubHide = 43,
SupHide = 44,
Transp = 45,
Type = 46,
VertJc = 47,
ZeroAsc = 48,
ZeroDesc = 49,
ZeroWid = 50,
Column = 51,
Row = 52
};}
namespace c_oSer_OMathBottomNodesValType{enum c_oSer_OMathBottomNodesValType
{
Val = 0,
AlnAt = 1
};}
namespace c_oSer_OMathContentType{enum c_oSer_OMathContentType
{
Acc = 0,
AccPr = 1,
ArgPr = 2,
Bar = 3,
BarPr = 4,
BorderBox = 5,
BorderBoxPr = 6,
Box = 7,
BoxPr = 8,
Deg = 9,
Den = 10,
Delimiter = 11,
DelimiterPr = 12,
Element = 13,
EqArr = 14,
EqArrPr = 15,
FName = 16,
Fraction = 17,
FPr = 18,
Func = 19,
FuncPr = 20,
GroupChr = 21,
GroupChrPr = 22,
Lim = 23,
LimLow = 24,
LimLowPr = 25,
LimUpp = 26,
LimUppPr = 27,
Matrix = 28,
MathPr = 29,
Mc = 30,
McPr = 31,
MPr = 32,
Mr = 33,
Nary = 34,
NaryPr = 35,
Num = 36,
OMath = 37,
OMathPara = 38,
OMathParaPr = 39,
Phant = 40,
PhantPr = 41,
MRun = 42,
Rad = 43,
RadPr = 44,
RPr = 45,
MRPr = 46,
SPre = 47,
SPrePr = 48,
SSub = 49,
SSubPr = 50,
SSubSup = 51,
SSubSupPr = 52,
SSup = 53,
SSupPr = 54,
Sub = 55,
Sup = 56,
MText = 57,
CtrlPr = 58,
pagebreak = 59,
linebreak = 60,
Run = 61
};}
namespace c_oSer_FramePrType{ enum c_oSer_FramePrType
{
DropCap = 0,
H = 1,
HAnchor = 2,
HRule = 3,
HSpace = 4,
Lines = 5,
VAnchor = 6,
VSpace = 7,
W = 8,
Wrap = 9,
X = 10,
XAlign = 11,
Y = 12,
YAlign = 13
};}
namespace c_oSer_HyperlinkType{ enum c_oSer_HyperlinkType
{
Content = 0,
Link = 1,
Anchor = 2,
Tooltip = 3,
History = 4,
DocLocation = 5,
TgtFrame = 6
};}
namespace c_oSer_FldSimpleType{ enum c_oSer_FldSimpleType
{
Content = 0,
Instr = 1
};}
namespace c_oSer_ColorThemeType{ enum c_oSer_ColorThemeType
{
Auto = 0,
Color = 1,
Tint = 2,
Shade = 3
};}
}
#endif // #ifndef DOCX_BIN_READER_WRITER_DEFINES
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
#include "DocxSerializer.h"
#include "../../DesktopEditor/common/Directory.h"
#include "../../DesktopEditor/common/File.h"
#include "../../DesktopEditor/common/Path.h"
#include "../BinWriter/BinWriters.h"
#include "../BinReader/Readers.h"
#include "../../ASCOfficePPTXFile/Editor/FontPicker.h"
#include "../../ASCOfficeUtils/ASCOfficeUtilsLib/OfficeUtils.h"
int BinDocxRW::g_nCurFormatVersion = 0;
BinDocxRW::CDocxSerializer::CDocxSerializer()
{
m_oBinaryFileWriter = NULL;
m_pCurFileWriter = NULL;
m_bIsNoBase64Save = false;
m_bSaveChartAsImg = false;
}
bool BinDocxRW::CDocxSerializer::ConvertDocxToDoct(const CString& sSrcFileName, const CString& sDstFileName, const CString& sTmpDir, const CString& sXMLOptions)
{
std::wstring strDirSrc = NSSystemPath::Combine(string2std_string(sTmpDir), _T("from"));
std::wstring strDirDst = NSSystemPath::Combine(string2std_string(sTmpDir), _T("to"));
std::wstring strEditorBin = NSSystemPath::Combine(strDirDst, _T("Editor.bin"));
NSDirectory::CreateDirectory(strDirSrc);
NSDirectory::CreateDirectory(strDirDst);
CString sDirSrc = std_string2string(strDirSrc);
CString sEditorBin = std_string2string(strEditorBin);
COfficeUtils oCOfficeUtils(NULL);
if(S_OK == oCOfficeUtils.ExtractToDirectory(string2std_string(sSrcFileName), strDirSrc, NULL, 0))
if(saveToFile(sEditorBin, sDirSrc, sXMLOptions))
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, string2std_string(sDstFileName), -1))
return true;
return false;
}
bool BinDocxRW::CDocxSerializer::ConvertDoctToDocx(const CString& sSrcFileName, const CString& sDstFileName, const CString& sTmpDir, const CString& sXMLOptions)
{
std::wstring strDirSrc = NSSystemPath::Combine(string2std_string(sTmpDir), _T("from"));
std::wstring strEditorBin = NSSystemPath::Combine(strDirSrc, _T("Editor.bin"));
std::wstring strDirDst = NSSystemPath::Combine(string2std_string(sTmpDir), _T("to"));
NSDirectory::CreateDirectory(strDirSrc);
NSDirectory::CreateDirectory(strDirDst);
CString sEditorBin = std_string2string(strEditorBin);
COfficeUtils oCOfficeUtils(NULL);
if(S_OK == oCOfficeUtils.ExtractToDirectory(string2std_string(sSrcFileName), strDirSrc, NULL, 0))
{
CString sMediaPath;
CString sThemePath;
CreateDocxFolders(std_string2string(strDirDst), sThemePath, sMediaPath);
if(loadFromFile(sEditorBin, std_string2string(strDirDst), sXMLOptions, sThemePath, sMediaPath))
{
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, string2std_string(sDstFileName), -1))
return true;
}
}
return false;
}
bool BinDocxRW::CDocxSerializer::saveToFile(const CString& sSrcFileName, const CString& sDstPath, const CString& sXMLOptions)
{
OOX::CPath pathMain(sSrcFileName);
OOX::CPath pathMedia = pathMain.GetDirectory() + FILE_SEPARATOR_STR + _T("media");
NSDirectory::CreateDirectory(string2std_string(pathMedia.GetPath()));
COfficeFontPicker* pFontPicker = new COfficeFontPicker();
pFontPicker->Init(m_sFontDir);
CFontManager* pFontManager = pFontPicker->get_FontManager();
DocWrapper::FontProcessor fp;
fp.setFontManager(pFontManager);
NSBinPptxRW::CDrawingConverter oDrawingConverter;
oDrawingConverter.SetFontManager(pFontManager);
NSBinPptxRW::CBinaryFileWriter& oBufferedStream = *oDrawingConverter.m_pBinaryWriter;
NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager = NULL;
if(false == m_sEmbeddedFontsDir.IsEmpty())
{
NSDirectory::CreateDirectory(string2std_string(m_sEmbeddedFontsDir));
pFontPicker->SetEmbeddedFontsDirectory(m_sEmbeddedFontsDir);
pEmbeddedFontsManager = pFontPicker->GetNativeCutter();
//добавляем весь латинский алфавит для списков.
pEmbeddedFontsManager->CheckString(CString(_T("abcdefghijklmnopqrstuvwxyz")));
//добавим мега шрифт
pEmbeddedFontsManager->CheckFont(_T("Wingdings 3"), fp.getFontManager());
pEmbeddedFontsManager->CheckFont(_T("Arial"), fp.getFontManager());
//pEmbeddedFontsManager добавляются все цифры
}
oDrawingConverter.SetFontDir(m_sFontDir);
oDrawingConverter.SetFontPicker(pFontPicker);
oDrawingConverter.SetMainDocument(this);
oDrawingConverter.SetMediaDstPath(pathMedia.GetPath());
ParamsWriter oParamsWriter(&oBufferedStream, &fp, &oDrawingConverter, pEmbeddedFontsManager);
m_oBinaryFileWriter = new BinaryFileWriter(oParamsWriter);
m_oBinaryFileWriter->intoBindoc(sDstPath);
BYTE* pbBinBuffer = oBufferedStream.GetBuffer();
int nBinBufferLen = oBufferedStream.GetPosition();
if (m_bIsNoBase64Save)
{
NSFile::CFileBinary oFile;
oFile.CreateFileW(string2std_string(sSrcFileName));
oFile.WriteFile(pbBinBuffer, nBinBufferLen);
oFile.CloseFile();
}
else
{
int nBase64BufferLen = Base64::Base64EncodeGetRequiredLength(nBinBufferLen, Base64::B64_BASE64_FLAG_NOCRLF);
BYTE* pbBase64Buffer = new BYTE[nBase64BufferLen + 64];
// if(TRUE == Base64::Base64Encode(pbBinBuffer, nBinBufferLen, (LPSTR)pbBase64Buffer, &nBase64BufferLen, Base64::B64_BASE64_FLAG_NOCRLF))
if(TRUE == Base64_1::Base64Encode(pbBinBuffer, nBinBufferLen, pbBase64Buffer, &nBase64BufferLen))
{
NSFile::CFileBinary oFile;
oFile.CreateFileW(string2std_string(sSrcFileName));
oFile.WriteStringUTF8(string2std_string(m_oBinaryFileWriter->WriteFileHeader(nBinBufferLen)));
oFile.WriteFile(pbBase64Buffer, nBase64BufferLen);
oFile.CloseFile();
}
RELEASEARRAYOBJECTS(pbBase64Buffer);
}
RELEASEOBJECT(m_oBinaryFileWriter);
RELEASEOBJECT(pFontPicker);
return true;
}
void BinDocxRW::CDocxSerializer::CreateDocxFolders(CString strDirectory, CString& sThemePath, CString& sMediaPath)
{
// rels
OOX::CPath pathRels = strDirectory + FILE_SEPARATOR_STR + _T("_rels");
FileSystem::Directory::CreateDirectory(pathRels.GetPath());
// word
OOX::CPath pathWord = strDirectory + FILE_SEPARATOR_STR + _T("word");
FileSystem::Directory::CreateDirectory(pathWord.GetPath());
// documentRels
OOX::CPath pathWordRels = pathWord + FILE_SEPARATOR_STR + _T("_rels");
FileSystem::Directory::CreateDirectory(pathWordRels.GetPath());
//media
OOX::CPath pathMedia = pathWord + FILE_SEPARATOR_STR + _T("media");
sMediaPath = pathMedia.GetPath();
// theme
OOX::CPath pathTheme = pathWord + FILE_SEPARATOR_STR + _T("theme");
FileSystem::Directory::CreateDirectory(pathTheme.GetPath());
OOX::CPath pathThemeRels = pathTheme + FILE_SEPARATOR_STR + _T("_rels");
FileSystem::Directory::CreateDirectory(pathThemeRels.GetPath());
pathTheme = pathTheme + FILE_SEPARATOR_STR + _T("theme1.xml");
sThemePath = pathTheme.GetPath();
}
bool BinDocxRW::CDocxSerializer::loadFromFile(const CString& sSrcFileName, const CString& sDstPath, const CString& sXMLOptions, const CString& sThemePath, const CString& sMediaPath)
{
bool bResultOk = false;
NSFile::CFileBinary oFile;
if(oFile.OpenFile(string2std_string(sSrcFileName)))
{
DWORD nBase64DataSize = 0;
BYTE* pBase64Data = new BYTE[oFile.GetFileSize()];
oFile.ReadFile(pBase64Data, oFile.GetFileSize(), nBase64DataSize);
oFile.CloseFile();
//проверяем формат
bool bValidFormat = false;
CString sSignature(g_sFormatSignature);
int nSigLength = sSignature.GetLength();
if(nBase64DataSize > nSigLength)
{
CStringA sCurSig((char*)pBase64Data, nSigLength);
if((CStringA)sSignature == sCurSig)
{
bValidFormat = true;
}
}
if(bValidFormat)
{
//Читаем из файла версию и длину base64
int nIndex = nSigLength;
int nType = 0;
CStringA version = "";
CStringA dst_len = "";
while (true)
{
nIndex++;
BYTE _c = pBase64Data[nIndex];
if (_c == ';')
{
if(0 == nType)
{
nType = 1;
continue;
}
else
{
nIndex++;
break;
}
}
if(0 == nType)
version.AppendChar(_c);
else
dst_len.AppendChar(_c);
}
int nDataSize = atoi(dst_len);
BYTE* pData = new BYTE[nDataSize];
if(FALSE != Base64::Base64Decode((LPCSTR)(pBase64Data + nIndex), nBase64DataSize - nIndex, pData, &nDataSize))
{
NSBinPptxRW::CDrawingConverter oDrawingConverter;
NSBinPptxRW::CBinaryFileReader& oBufferedStream = *oDrawingConverter.m_pReader;
oBufferedStream.Init(pData, 0, nDataSize);
int nVersion = g_nFormatVersion;
if(version.GetLength() > 0)
{
version = version.Right(version.GetLength() - 1);
int nTempVersion = atoi(version);
if(0 != nTempVersion)
{
g_nCurFormatVersion = nVersion = nTempVersion;
}
}
oDrawingConverter.SetMainDocument(this);
oDrawingConverter.SetMediaDstPath(sMediaPath);
m_pCurFileWriter = new Writers::FileWriter(sDstPath, m_sFontDir, nVersion, m_bSaveChartAsImg, &oDrawingConverter, sThemePath);
//папка с картинками
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(string2std_string(sSrcFileName));
CString sFileInDir = strFileInDir.c_str();
VARIANT var;
var.vt = VT_BSTR;
#if defined(_WIN32) || defined (_WIN64)
var.bstrVal = sFileInDir.AllocSysString();
oDrawingConverter.SetAdditionalParam(CString(L"SourceFileDir"), var);
RELEASESYSSTRING(var.bstrVal);
#else
var.bstrVal = sFileInDir.GetString();
oDrawingConverter.SetAdditionalParam(CString(L"SourceFileDir"), var);
#endif
//default theme
m_pCurFileWriter->m_oDefaultTheme.Write(sThemePath);
BinaryFileReader oBinaryFileReader(sFileInDir, oBufferedStream, *m_pCurFileWriter);
oBinaryFileReader.ReadFile();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
OOX::CContentTypes oContentTypes;
//docProps
OOX::CPath pathDocProps = sDstPath + FILE_SEPARATOR_STR + _T("docProps");
FileSystem::Directory::CreateDirectory(pathDocProps.GetPath());
OOX::CPath DocProps = CString(_T("docProps"));
OOX::CApp* pApp = new OOX::CApp();
if (pApp)
{
pApp->SetApplication(_T("OnlyOffice"));
pApp->SetAppVersion(_T("3.0000"));
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);
delete pApp;
}
OOX::CCore* pCore = new OOX::CCore();
if (pCore)
{
pCore->SetCreator(_T(""));
pCore->SetLastModifiedBy(_T(""));
pCore->write(pathDocProps + FILE_SEPARATOR_STR + _T("core.xml"), DocProps, oContentTypes);
delete pCore;
}
/////////////////////////////////////////////////////////////////////////////////////
VARIANT vt;
oDrawingConverter.GetAdditionalParam(CString(_T("ContentTypes")), &vt);
if(VT_BSTR == vt.vt)
m_pCurFileWriter->m_oContentTypesWriter.AddOverrideRaw(CString(vt.bstrVal));
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();
//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);
}
return bResultOk;
}
bool BinDocxRW::CDocxSerializer::getXmlContent(NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, CString& sOutputXml)
{
long nLength = oBufferedStream.GetLong();
Writers::ContentWriter oTempContentWriter;
BinDocxRW::Binary_DocumentTableReader oBinary_DocumentTableReader(oBufferedStream, *m_pCurFileWriter, oTempContentWriter, m_pCurFileWriter->m_pComments);
int res = oBinary_DocumentTableReader.Read1(nLength, &BinDocxRW::Binary_DocumentTableReader::ReadDocumentContent, &oBinary_DocumentTableReader, NULL);
sOutputXml = oTempContentWriter.m_oContent.GetData().GetString();
return true;
}
bool BinDocxRW::CDocxSerializer::getBinaryContent(const CString& bsTxContent, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize)
{
if(NULL == m_oBinaryFileWriter)
return false;
long nStartPos = oBufferedStream.GetPosition();
XmlUtils::CXmlLiteReader oReader;
// CString 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>");
CString 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\">"));
CString sEnd(_T("</root>"));
CString bsTxContentTemp = sBegin + bsTxContent + sEnd;
OOX::Logic::CSdtContent oSdtContent;
if (oReader.FromString(bsTxContentTemp))
{
oReader.ReadNextNode();//root
oReader.ReadNextNode();//v:textbox
CString sRootName = XmlUtils::GetNameNoNS(oReader.GetName());
if(_T("textbox") == sRootName)
oReader.ReadNextNode();//w:txbxContent
oSdtContent.fromXML(oReader);
}
BinDocxRW::ParamsWriter& oParamsWriter = m_oBinaryFileWriter->m_oParamsWriter;
NSBinPptxRW::CBinaryFileWriter* pBufferedStreamOld = oParamsWriter.m_pCBufferedStream;
oParamsWriter.m_pCBufferedStream = &oBufferedStream;
BinDocxRW::BinaryCommonWriter oBinaryCommonWriter(oParamsWriter);
int nCurPos = oBinaryCommonWriter.WriteItemWithLengthStart();
BinDocxRW::ParamsDocumentWriter oParams(oParamsWriter.m_pCurRels, oParamsWriter.m_sCurDocumentPath);
BinDocxRW::BinaryDocumentTableWriter oBinaryDocumentTableWriter(oParamsWriter, oParams, &oParamsWriter.m_mapIgnoreComments, NULL);
oBinaryDocumentTableWriter.WriteDocumentContent(oSdtContent.m_arrItems);
oBinaryCommonWriter.WriteItemWithLengthEnd(nCurPos);
oParamsWriter.m_pCBufferedStream = pBufferedStreamOld;
long nEndPos = oBufferedStream.GetPosition();
lDataSize = nEndPos - nStartPos;
return true;
}
void BinDocxRW::CDocxSerializer::setFontDir(const CString& sFontDir)
{
m_sFontDir = sFontDir;
}
void BinDocxRW::CDocxSerializer::setEmbeddedFontsDir(const CString& sEmbeddedFontsDir)
{
m_sEmbeddedFontsDir = sEmbeddedFontsDir;
}
void BinDocxRW::CDocxSerializer::setIsNoBase64Save(bool bIsNoBase64Save)
{
m_bIsNoBase64Save = bIsNoBase64Save;
}
void BinDocxRW::CDocxSerializer::setSaveChartAsImg(bool bSaveChartAsImg)
{
m_bSaveChartAsImg = bSaveChartAsImg;
}
#ifndef DOCX_SERIALIZER
#define DOCX_SERIALIZER
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
namespace Writers
{
class FileWriter;
}
namespace NSBinPptxRW
{
class CBinaryFileReader;
class CBinaryFileWriter;
}
namespace BinDocxRW
{
class BinaryFileWriter;
class CDocxSerializer
{
private:
CString m_sFontDir;
CString m_sEmbeddedFontsDir;
bool m_bIsNoBase64Save;
bool m_bSaveChartAsImg;
BinaryFileWriter* m_oBinaryFileWriter;
Writers::FileWriter* m_pCurFileWriter;
public:
CDocxSerializer();
bool ConvertDocxToDoct(const CString& sSrcFileName, const CString& sDstFileName, const CString& sTmpDir, const CString& sXMLOptions);
bool ConvertDoctToDocx(const CString& sSrcFileName, const CString& sDstFileName, const CString& sTmpDir, const CString& sXMLOptions);
bool loadFromFile(const CString& sSrcFileName, const CString& sDstPath, const CString& sXMLOptions, const CString& sThemePath, const CString& sMediaPath);
bool saveToFile(const CString& sSrcFileName, const CString& sDstPath, const CString& sXMLOptions);
void CreateDocxFolders(CString strDirectory, CString& sThemePath, CString& sMediaPath);
bool getXmlContent(NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, CString& sOutputXml);
bool getBinaryContent(const CString& bsTxContent, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize);
void setFontDir(const CString& sFontDir);
void setEmbeddedFontsDir(const CString& sEmbeddedFontsDir);
void setIsNoBase64Save(bool bIsNoBase64Save);
void setSaveChartAsImg(bool bSaveChartAsImg);
};
}
#endif // #ifndef DOCX_SERIALIZER
//#include "stdafx.h"
#include "FontProcessor.h"
#include "../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
#include "../../Common/DocxFormat/Source/DocxFormat/Docx.h"
#include "../../Common/ASCUtils.h"
namespace DocWrapper {
TCHAR* gc_sNoNameFont = _T("NoNameFont");
TCHAR* gc_sDefaultFontName = _T("Arial");
FontProcessor::FontProcessor() : m_pFontManager(NULL)
{
}
FontProcessor::~FontProcessor()
{
}
void FontProcessor::setFontManager(CFontManager* pFontManager)
{
m_pFontManager = pFontManager;
}
CFontManager* FontProcessor::getFontManager()
{
return m_pFontManager;
}
void FontProcessor::setFontTable(OOX::CFontTable* fontTable)
{
// js
return;
for (int i = 0; i < fontTable->m_arrFonts.size(); ++i)
addToFontMap(*fontTable->m_arrFonts[i]);
}
CString FontProcessor::getFont(const CString& name)
{
// js
return name;
CString fontName = gc_sDefaultFontName;
if (fontMap.find(name) != fontMap.end())
fontName = fontMap[name];
else
{
OOX::CFont font;
font.m_sName = name;
addToFontMap(font);
if (fontMap.find(name) != fontMap.end())
fontName = fontMap[name];
}
return fontName;
}
CString FontProcessor::getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::CString_>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, OOX::CTheme* pTheme)
{
CFontSelectFormat oFontSelectFormat;
CString sFontName;
if(oScheme.IsInit() && oScheme->m_oFontScheme.IsInit())
{
//
const SimpleTypes::Spreadsheet::EFontScheme eFontScheme = oScheme->m_oFontScheme->GetValue();
if(SimpleTypes::Spreadsheet::fontschemeMajor == eFontScheme)
sFontName = pTheme->GetMajorFont();
else if(SimpleTypes::Spreadsheet::fontschemeMinor == eFontScheme)
sFontName = pTheme->GetMinorFont();
}
if(sFontName.IsEmpty() && oRFont.IsInit() && oRFont->m_sVal.IsInit())
sFontName = oRFont->ToString2();
if(sFontName.IsEmpty())
sFontName = CString(gc_sNoNameFont);
// js
return sFontName;
oFontSelectFormat.wsName = new std::wstring;
*oFontSelectFormat.wsName = string2std_string(sFontName);
if(oCharset.IsInit() && oCharset->m_oCharset.IsInit())
{
SimpleTypes::Spreadsheet::EFontCharset eCharset = oCharset->m_oCharset->GetValue();
// fontcharsetANSI fontcharsetDefault, , dll
if(SimpleTypes::fontcharsetANSI != eCharset && SimpleTypes::fontcharsetDefault != eCharset)
{
oFontSelectFormat.unCharset = new BYTE;
*oFontSelectFormat.unCharset = (BYTE)eCharset;
}
}
if(oFamily.IsInit() && oFamily->m_oFontFamily.IsInit())
{
oFontSelectFormat.wsFamilyClass = new std::wstring;
*oFontSelectFormat.wsFamilyClass = oFamily->m_oFontFamily->ToStringWord();
}
CString sRes;
CFontInfo* pFontInfo = m_pFontManager->GetFontInfoByParams(oFontSelectFormat);
if(NULL != pFontInfo)
sRes = std_string2string(pFontInfo->m_wsFontName);
else
sRes = gc_sDefaultFontName;
fontMap[sFontName] = sRes;
return sRes;
}
void FontProcessor::addToFontMap(OOX::CFont& font)
{
CFontSelectFormat oFontSelectFormat;
CString sFontName;
if(font.m_sName.IsEmpty())
sFontName = CString(gc_sNoNameFont);
else
sFontName = font.m_sName;
oFontSelectFormat.wsName = new std::wstring;
*oFontSelectFormat.wsName = string2std_string(sFontName);
if (font.m_oAltName.IsInit() && font.m_oAltName->GetLength() > 0)
{
oFontSelectFormat.wsAltName = new std::wstring;
*oFontSelectFormat.wsAltName = string2std_string(*font.m_oAltName);
}
if(font.m_oCharset.IsInit())
{
SimpleTypes::EFontCharset eCharset = font.m_oCharset->GetValue();
// fontcharsetANSI fontcharsetDefault, , dll
if(SimpleTypes::fontcharsetANSI != eCharset && SimpleTypes::fontcharsetDefault != eCharset)
{
oFontSelectFormat.unCharset = new BYTE;
*oFontSelectFormat.unCharset = (BYTE)eCharset;
}
}
if(font.m_oFamily.IsInit())
{
oFontSelectFormat.wsFamilyClass = new std::wstring;
*oFontSelectFormat.wsFamilyClass = font.m_oFamily->ToString();
}
if(font.m_oPanose.IsInit())
{
bool bIsPanose = false;
oFontSelectFormat.pPanose = new BYTE[10];
for(int i = 0; i < 10; ++i)
{
unsigned char cCurVal = font.m_oPanose->Get_Number(i);
oFontSelectFormat.pPanose[i] = cCurVal;
// 0, Panose
if ( 0 != cCurVal )
bIsPanose = true;
}
if(!bIsPanose)
RELEASEARRAYOBJECTS(oFontSelectFormat.pPanose);
}
if(font.m_oPitch.IsInit())
{
oFontSelectFormat.bFixedWidth = new INT;
if (font.m_oPitch->GetValue() == SimpleTypes::pitchFixed)
*oFontSelectFormat.bFixedWidth = 1;
else
*oFontSelectFormat.bFixedWidth = 0;
}
ULONG ulRange1 = 0;
ULONG ulRange2 = 0;
ULONG ulRange3 = 0;
ULONG ulRange4 = 0;
ULONG ulCodeRange1 = 0;
ULONG ulCodeRange2 = 0;
if (font.m_oUsb0.IsInit())
ulRange1 = font.m_oUsb0->GetValue();
if (font.m_oUsb1.IsInit())
ulRange2 = font.m_oUsb1->GetValue();
if (font.m_oUsb2.IsInit())
ulRange3 = font.m_oUsb2->GetValue();
if (font.m_oUsb3.IsInit())
ulRange4 = font.m_oUsb3->GetValue();
if (font.m_oCsb0.IsInit())
ulCodeRange1 = font.m_oCsb0->GetValue();
if (font.m_oCsb1.IsInit())
ulCodeRange2 = font.m_oCsb1->GetValue();
if ( !(0 == ulRange1 && 0 == ulRange2 && 0 == ulRange3 && 0 == ulRange4 && 0 == ulCodeRange1 && 0 == ulCodeRange2) )
{
oFontSelectFormat.ulRange1 = new ULONG;
*oFontSelectFormat.ulRange1 = ulRange1;
oFontSelectFormat.ulRange2 = new ULONG;
*oFontSelectFormat.ulRange2 = ulRange2;
oFontSelectFormat.ulRange3 = new ULONG;
*oFontSelectFormat.ulRange3 = ulRange3;
oFontSelectFormat.ulRange4 = new ULONG;
*oFontSelectFormat.ulRange4 = ulRange4;
oFontSelectFormat.ulCodeRange1 = new ULONG;
*oFontSelectFormat.ulCodeRange1 = ulCodeRange1;
oFontSelectFormat.ulCodeRange2 = new ULONG;
*oFontSelectFormat.ulCodeRange2 = ulCodeRange2;
}
CFontInfo* pFontInfo = m_pFontManager->GetFontInfoByParams(oFontSelectFormat);
if(NULL != pFontInfo)
fontMap[sFontName] = std_string2string(pFontInfo->m_wsFontName);
else
fontMap[sFontName] = gc_sDefaultFontName;
}
}
\ No newline at end of file
#pragma once
//#include "../stdafx.h"
#include <map>
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
#include "../../DesktopEditor/fontengine/ApplicationFonts.h"
//#include "DocWrapper/Base.h"
namespace NSCommon{
template<class Type> class nullable;
}
namespace ComplexTypes{
namespace Spreadsheet{
class CString_;
}
}
namespace OOX
{
class CFont;
class CFontTable;
class CTheme;
namespace Spreadsheet
{
class CFont;
class CFontTable;
class CFontScheme;
class CString_;
class CCharset;
class CFontFamily;
}
}
namespace DocWrapper {
class FontProcessor {
CFontManager* m_pFontManager;
std::map<CString, CString> fontMap;
public:
FontProcessor();
~FontProcessor();
void setFontManager(CFontManager* pFontManager);
CFontManager* getFontManager();
void setFontTable(OOX::CFontTable* fontTable);
CString getFont(const CString& name);
CString getFont(const NSCommon::nullable<OOX::Spreadsheet::CFontScheme>& oScheme, const NSCommon::nullable<ComplexTypes::Spreadsheet::CString_>& oRFont, const NSCommon::nullable<OOX::Spreadsheet::CCharset>& oCharset, const NSCommon::nullable<OOX::Spreadsheet::CFontFamily >& oFamily, OOX::CTheme* pTheme);
private:
void addToFontMap(OOX::CFont& font);
};
}
#include "XlsxSerializer.h"
#include "../../DesktopEditor/common/Directory.h"
#include "../../DesktopEditor/common/File.h"
#include "../../DesktopEditor/common/Path.h"
#include "../../XlsxSerializerCom/Reader/BinaryWriter.h"
#include "../../XlsxSerializerCom/Writer/BinaryReader.h"
#include "../../ASCOfficePPTXFile/Editor/FontPicker.h"
#if defined(_WIN32) || defined (_WIN64)
#include "../BinReader/DefaultThemeWriterWin.h"
#else
#include "../BinReader/DefaultThemeWriterLinux.h"
#endif
namespace BinXlsxRW{
int g_nCurFormatVersion = 0;
CXlsxSerializer::CXlsxSerializer()
{
m_pExternalDrawingConverter = NULL;
}
CXlsxSerializer::~CXlsxSerializer()
{
}
void CXlsxSerializer::CreateXlsxFolders(CString& sXmlOptions, CString sDstPath, CString& sMediaPath)
{
OOX::CPath pathMediaDir = sDstPath + FILE_SEPARATOR_STR + _T("xl") + FILE_SEPARATOR_STR + _T("media");
// File Type ( , , ReadFile , )
BYTE fileType;
UINT nCodePage;
WCHAR wcDelimiter;
BYTE saveFileType;
SerializeCommon::ReadFileType(sXmlOptions, fileType, nCodePage, wcDelimiter, saveFileType);
if (c_oFileTypes::CSV != fileType)
{
OOX::CPath pathXlDir = sDstPath + FILE_SEPARATOR_STR + _T("xl");
OOX::CPath pathThemeDir = pathXlDir + FILE_SEPARATOR_STR + OOX::FileTypes::Theme.DefaultDirectory().GetPath();
OOX::CPath pathThemeFile = pathThemeDir + FILE_SEPARATOR_STR + OOX::FileTypes::Theme.DefaultFileName().GetPath();
OOX::CPath pathThemeThemeRelsDir = pathThemeDir + FILE_SEPARATOR_STR + _T("_rels");
NSDirectory::CreateDirectory(string2std_string(pathXlDir.GetPath()));
NSDirectory::CreateDirectory(string2std_string(pathThemeDir.GetPath()));
NSDirectory::CreateDirectory(string2std_string(pathThemeThemeRelsDir.GetPath()));
NSDirectory::CreateDirectory(string2std_string(pathMediaDir.GetPath()));
//Create Default Theme
{
Writers::DefaultThemeWriter oDefaultThemeWriter;
oDefaultThemeWriter.Write(pathThemeFile.GetPath());
}
}
sMediaPath = pathMediaDir.GetPath();
}
bool CXlsxSerializer::loadFromFile(CString& sSrcFileName, CString& sDstPath, CString& sXMLOptions, CString& sMediaDir)
{
NSBinPptxRW::CDrawingConverter oOfficeDrawingConverter;
oOfficeDrawingConverter.SetMediaDstPath(sMediaDir);
//
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(string2std_string(sSrcFileName));
CString sFileInDir = strFileInDir.c_str();
VARIANT var;
var.vt = VT_BSTR;
#if defined(_WIN32) || defined (_WIN64)
var.bstrVal = sFileInDir.AllocSysString();
oOfficeDrawingConverter.SetAdditionalParam(CString(L"SourceFileDir2"), var);
RELEASESYSSTRING(var.bstrVal);
#else
var.bstrVal = sFileInDir.GetString();
oOfficeDrawingConverter.SetAdditionalParam(CString(L"SourceFileDir2"), var);
#endif
BinXlsxRW::BinaryFileReader oBinaryFileReader;
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oOfficeDrawingConverter, sXMLOptions);
return true;
}
bool CXlsxSerializer::saveToFile(CString& sDstFileName, CString& sSrcPath, CString& sXMLOptions)
{
COfficeFontPicker* pFontPicker = new COfficeFontPicker();
pFontPicker->Init(m_sFontDir);
CFontManager* pFontManager = pFontPicker->get_FontManager();
DocWrapper::FontProcessor fp;
fp.setFontManager(pFontManager);
NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager = NULL;
if(false == m_sEmbeddedFontsDir.IsEmpty())
{
NSDirectory::CreateDirectory(string2std_string(m_sEmbeddedFontsDir));
pFontPicker->SetEmbeddedFontsDirectory(m_sEmbeddedFontsDir);
pEmbeddedFontsManager = pFontPicker->GetNativeCutter();
//
pEmbeddedFontsManager->CheckFont(_T("Wingdings 3"), pFontManager);
pEmbeddedFontsManager->CheckFont(_T("Arial"), pFontManager);
//pEmbeddedFontsManager
//
pEmbeddedFontsManager->CheckFont(_T("Calibri"), pFontManager);
pEmbeddedFontsManager->CheckString(CString(_T("ABCDEFGHIJKLMNOPQRSTUVWXYZ")));
// "#NULL!", "#DIV/0!"...
pEmbeddedFontsManager->CheckString(CString(_T("#!/?")));
// num id 0 49
pEmbeddedFontsManager->CheckString(CString(_T(".%E+-():")));
}
NSBinPptxRW::CDrawingConverter oOfficeDrawingConverter;
oOfficeDrawingConverter.SetFontManager(pFontManager);
oOfficeDrawingConverter.SetFontDir(m_sFontDir);
oOfficeDrawingConverter.SetFontPicker(pFontPicker);
BinXlsxRW::BinaryFileWriter oBinaryFileWriter(fp);
oBinaryFileWriter.Open(sSrcPath, sDstFileName, pEmbeddedFontsManager, &oOfficeDrawingConverter, sXMLOptions);
RELEASEOBJECT(pFontPicker);
return true;
}
bool CXlsxSerializer::loadChart(CString& sChartPath, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize)
{
bool bRes = false;
//todo oRootPath
OOX::CPath oRootPath;
OOX::Spreadsheet::CChartSpace oChart(oRootPath, sChartPath);
if(NULL != m_pExternalDrawingConverter)
{
long nStartPos = oBufferedStream.GetPosition();
BinXlsxRW::BinaryCommonWriter oBcw(oBufferedStream);
CString 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;
}
return bRes;
}
bool CXlsxSerializer::saveChart(NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, CString& sFilepath, CString& sContentTypePath, CString** sContentTypeElement)
{
bool bRes = false;
*sContentTypeElement = NULL;
if(NULL != m_pExternalDrawingConverter)
{
m_pExternalDrawingConverter->SetDstContentRels();
// sThemePath bsFilename theme bsFilename
CString sThemePath;
CString sFilenameReverse = sFilepath;sFilenameReverse.MakeReverse();
int nIndex = sFilenameReverse.Find(FILE_SEPARATOR_CHAR);
nIndex = sFilenameReverse.Find(FILE_SEPARATOR_CHAR, nIndex + 1);
if(-1 != nIndex)
sThemePath = sFilepath.Left(sFilepath.GetLength() - nIndex) + _T("theme");
//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);
if(oChartSpace.isValid())
{
std::wstring strFilepath = string2std_string(sFilepath);
CString strDir = std_string2string(NSSystemPath::GetDirectoryName(strFilepath));
CString strFilename = std_string2string(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());
CString sContentType(sContentTypePath);
sContentType.Append(strFilename);
(*sContentTypeElement) = new CString();
(*sContentTypeElement)->Format(_T("<Override PartName=\"%ls\" ContentType=\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\"/>"), sContentType);
(*sContentTypeElement)->Append(oSaveParams.sAdditionalContentTypes);
bRes = true;
}
}
return bRes;
}
void CXlsxSerializer::setFontDir(CString& sFontDir)
{
m_sFontDir = sFontDir;
}
void CXlsxSerializer::setEmbeddedFontsDir(CString& sEmbeddedFontsDir)
{
m_sEmbeddedFontsDir = sEmbeddedFontsDir;
}
void CXlsxSerializer::setDrawingConverter(NSBinPptxRW::CDrawingConverter* pDrawingConverter)
{
m_pExternalDrawingConverter = pDrawingConverter;
}
};
#ifndef XLSX_SERIALIZER
#define XLSX_SERIALIZER
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
namespace NSBinPptxRW{
class CDrawingConverter;
}
namespace NSBinPptxRW{
class CBinaryFileReader;
class CBinaryFileWriter;
}
namespace BinXlsxRW {
class CXlsxSerializer{
private:
CString m_sFontDir;
CString m_sEmbeddedFontsDir;
NSBinPptxRW::CDrawingConverter* m_pExternalDrawingConverter;
public:
CXlsxSerializer();
~CXlsxSerializer();
void CreateXlsxFolders(CString& sXmlOptions, CString sDstPath, CString& sMediaPath);
bool loadFromFile(CString& sSrcFileName, CString& sDstPath, CString& sXMLOptions, CString& sMediaDir);
bool saveToFile(CString& sSrcFileName, CString& sDstPath, CString& sXMLOptions);
bool loadChart(CString& sChartPath, NSBinPptxRW::CBinaryFileWriter& oBufferedStream, long& lDataSize);
bool saveChart(NSBinPptxRW::CBinaryFileReader& oBufferedStream, long lLength, CString& sFilename, CString& sContentTypePath, CString** sContentTypeElement);
void setFontDir(CString& sFontDir);
void setEmbeddedFontsDir(CString& sEmbeddedFontsDir);
void setDrawingConverter(NSBinPptxRW::CDrawingConverter* pDrawingConverter);
};
}
#endif // #ifndef XLSX_SERIALIZER
\ No newline at end of file
#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;
m_oCDocxSerializer.CreateDocxFolders(sDirectoryOut, sThemePath, sMediaPath);
bool bRes = m_oCDocxSerializer.loadFromFile(CString(bstrFileIn), CString(bstrDirectoryOut), CString(_T("")), CString(sThemePath.GetString()), CString(sMediaPath.GetString()));
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:
};
\ No newline at end of file
#-------------------------------------------------
#
# Project created by QtCreator 2014-10-10T14:24:04
#
#-------------------------------------------------
QT -= core gui
TARGET = ASCOfficeDocxFile2Lib
TEMPLATE = lib
CONFIG += staticlib
QMAKE_CXXFLAGS += -std=c++0x -Wall -Wno-ignored-qualifiers
DEFINES += UNICODE \
_UNICODE \
_LINUX \
_LINUX_QT \
LINUX \
NODOCX \
_USE_XMLLITE_READER_ \
USE_LITE_READER \
USE_ATL_CSTRING \
USE_AVSOFFICESTUDIO_XMLUTILS \
SOLUTION_ASCOFFICEDOCXFILE2 \
#DISABLE_FILE_DOWNLOADER \
_USE_LIBXML2_READER_ \
LIBXML_READER_ENABLED
INCLUDEPATH += \
../../DesktopEditor/freetype-2.5.2/include \
../../Common/DocxFormat/Source/XML/libxml2/XML/include
INCLUDEPATH += \
/usr/include/libxml2
LIBS += -lxml2
SOURCES += ../DocWrapper/DocxSerializer.cpp \
../DocWrapper/FontProcessor.cpp \
../DocWrapper/XlsxSerializer.cpp \
../../XlsxSerializerCom/Common/Common.cpp \
../../XlsxSerializerCom/Reader/ChartFromToBinary.cpp \
../../XlsxSerializerCom/Reader/CommonWriter.cpp \
../../XlsxSerializerCom/Reader/CSVReader.cpp \
../../XlsxSerializerCom/Writer/CSVWriter.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 \
../BinReader/fontTableWriter.h \
../BinReader/HeaderFooterWriter.h \
../BinReader/MediaWriter.h \
../BinReader/NumberingWriter.h \
../BinReader/ReaderClasses.h \
../BinReader/Readers.h \
../BinReader/SettingWriter.h \
../BinReader/StylesWriter.h \
../BinWriter/BinEquationWriter.h \
../BinWriter/BinReaderWriterDefines.h \
../BinWriter/BinWriters.h \
../../XlsxSerializerCom/Common/BinReaderWriterDefines.h \
../../XlsxSerializerCom/Common/Common.h \
../../XlsxSerializerCom/Reader/BinaryWriter.h \
../../XlsxSerializerCom/Reader/ChartFromToBinary.h \
../../XlsxSerializerCom/Reader/CommonWriter.h \
../../XlsxSerializerCom/Reader/CSVReader.h \
../../XlsxSerializerCom/Writer/BinaryCommonReader.h \
../../XlsxSerializerCom/Writer/BinaryReader.h \
../../XlsxSerializerCom/Writer/CSVWriter.h \
../BinReader/webSettingsWriter.h \
../BinReader/DefaultThemeWriterLinux.h \
../../Common/FileDownloader.h
unix {
target.path = /usr/lib
INSTALLS += target
}
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
17C1FE961ACC42C4006B99B3 /* Common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F1E1AC4549B00BEA2EA /* Common.cpp */; };
17C1FE971ACC42C4006B99B3 /* ChartFromToBinary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F221AC4549B00BEA2EA /* ChartFromToBinary.cpp */; };
17C1FE981ACC42C4006B99B3 /* CSVReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F261AC4549B00BEA2EA /* CSVReader.cpp */; };
17C1FE991ACC42C4006B99B3 /* DocxSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F0E1AC4546100BEA2EA /* DocxSerializer.cpp */; };
17C1FE9A1ACC42C4006B99B3 /* CommonWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F241AC4549B00BEA2EA /* CommonWriter.cpp */; };
17C1FE9B1ACC42C4006B99B3 /* CSVWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F2F1AC4549B00BEA2EA /* CSVWriter.cpp */; };
17C1FE9C1ACC42C4006B99B3 /* XlsxSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F121AC4546100BEA2EA /* XlsxSerializer.cpp */; };
17C1FE9D1ACC42C4006B99B3 /* FontProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F101AC4546100BEA2EA /* FontProcessor.cpp */; };
17C1FEA11ACC42C4006B99B3 /* fontTableWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF31AC4544900BEA2EA /* fontTableWriter.h */; };
17C1FEA21ACC42C4006B99B3 /* ChartFromToBinary.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F231AC4549B00BEA2EA /* ChartFromToBinary.h */; };
17C1FEA31ACC42C4006B99B3 /* MediaWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF51AC4544900BEA2EA /* MediaWriter.h */; };
17C1FEA41ACC42C4006B99B3 /* DefaultThemeWriterLinux.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEE1AC4544900BEA2EA /* DefaultThemeWriterLinux.h */; };
17C1FEA51ACC42C4006B99B3 /* CommonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F251AC4549B00BEA2EA /* CommonWriter.h */; };
17C1FEA61ACC42C4006B99B3 /* NumberingWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF61AC4544900BEA2EA /* NumberingWriter.h */; };
17C1FEA71ACC42C4006B99B3 /* BinReaderWriterDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F1D1AC4549B00BEA2EA /* BinReaderWriterDefines.h */; };
17C1FEA81ACC42C4006B99B3 /* BinaryWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F211AC4549B00BEA2EA /* BinaryWriter.h */; };
17C1FEA91ACC42C4006B99B3 /* DocumentWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF11AC4544900BEA2EA /* DocumentWriter.h */; };
17C1FEAA1ACC42C4006B99B3 /* FontProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F111AC4546100BEA2EA /* FontProcessor.h */; };
17C1FEAB1ACC42C4006B99B3 /* StylesWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EFA1AC4544900BEA2EA /* StylesWriter.h */; };
17C1FEAC1ACC42C4006B99B3 /* Readers.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF81AC4544900BEA2EA /* Readers.h */; };
17C1FEAD1ACC42C4006B99B3 /* ChartWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEB1AC4544900BEA2EA /* ChartWriter.h */; };
17C1FEAE1ACC42C4006B99B3 /* DocumentRelsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF01AC4544900BEA2EA /* DocumentRelsWriter.h */; };
17C1FEAF1ACC42C4006B99B3 /* CommentsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEC1AC4544900BEA2EA /* CommentsWriter.h */; };
17C1FEB01ACC42C4006B99B3 /* BinaryCommonReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F2D1AC4549B00BEA2EA /* BinaryCommonReader.h */; };
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 */; };
17C1FEB81ACC42C4006B99B3 /* FileDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F4E1AC454EF00BEA2EA /* FileDownloader.h */; };
17C1FEB91ACC42C4006B99B3 /* ReaderClasses.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF71AC4544900BEA2EA /* ReaderClasses.h */; };
17C1FEBA1ACC42C4006B99B3 /* BinaryReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F2E1AC4549B00BEA2EA /* BinaryReader.h */; };
17C1FEBB1ACC42C4006B99B3 /* DefaultThemeWriterWin.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEF1AC4544900BEA2EA /* DefaultThemeWriterWin.h */; };
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 */; };
17C1FEC81ACC42FD006B99B3 /* libDocxFormatLib_ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C1FEC51ACC42C4006B99B3 /* libDocxFormatLib_ios.a */; };
17D913C11AC5968B0096D788 /* libDocxFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 17D913B11AC596190096D788 /* libDocxFormatLib.a */; };
17E17EFC1AC4544900BEA2EA /* ChartWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEB1AC4544900BEA2EA /* ChartWriter.h */; };
17E17EFD1AC4544900BEA2EA /* CommentsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEC1AC4544900BEA2EA /* CommentsWriter.h */; };
17E17EFE1AC4544900BEA2EA /* ContentTypesWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EED1AC4544900BEA2EA /* ContentTypesWriter.h */; };
17E17EFF1AC4544900BEA2EA /* DefaultThemeWriterLinux.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEE1AC4544900BEA2EA /* DefaultThemeWriterLinux.h */; };
17E17F001AC4544900BEA2EA /* DefaultThemeWriterWin.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EEF1AC4544900BEA2EA /* DefaultThemeWriterWin.h */; };
17E17F011AC4544900BEA2EA /* DocumentRelsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF01AC4544900BEA2EA /* DocumentRelsWriter.h */; };
17E17F021AC4544900BEA2EA /* DocumentWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF11AC4544900BEA2EA /* DocumentWriter.h */; };
17E17F031AC4544900BEA2EA /* FileWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF21AC4544900BEA2EA /* FileWriter.h */; };
17E17F041AC4544900BEA2EA /* fontTableWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF31AC4544900BEA2EA /* fontTableWriter.h */; };
17E17F051AC4544900BEA2EA /* HeaderFooterWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF41AC4544900BEA2EA /* HeaderFooterWriter.h */; };
17E17F061AC4544900BEA2EA /* MediaWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF51AC4544900BEA2EA /* MediaWriter.h */; };
17E17F071AC4544900BEA2EA /* NumberingWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF61AC4544900BEA2EA /* NumberingWriter.h */; };
17E17F081AC4544900BEA2EA /* ReaderClasses.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF71AC4544900BEA2EA /* ReaderClasses.h */; };
17E17F091AC4544900BEA2EA /* Readers.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF81AC4544900BEA2EA /* Readers.h */; };
17E17F0A1AC4544900BEA2EA /* SettingWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EF91AC4544900BEA2EA /* SettingWriter.h */; };
17E17F0B1AC4544900BEA2EA /* StylesWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EFA1AC4544900BEA2EA /* StylesWriter.h */; };
17E17F0C1AC4544900BEA2EA /* webSettingsWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17EFB1AC4544900BEA2EA /* webSettingsWriter.h */; };
17E17F141AC4546100BEA2EA /* DocxSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F0E1AC4546100BEA2EA /* DocxSerializer.cpp */; };
17E17F151AC4546100BEA2EA /* DocxSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F0F1AC4546100BEA2EA /* DocxSerializer.h */; };
17E17F161AC4546100BEA2EA /* FontProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F101AC4546100BEA2EA /* FontProcessor.cpp */; };
17E17F171AC4546100BEA2EA /* FontProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F111AC4546100BEA2EA /* FontProcessor.h */; };
17E17F181AC4546100BEA2EA /* XlsxSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F121AC4546100BEA2EA /* XlsxSerializer.cpp */; };
17E17F191AC4546100BEA2EA /* XlsxSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F131AC4546100BEA2EA /* XlsxSerializer.h */; };
17E17F3A1AC4549B00BEA2EA /* BinReaderWriterDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F1D1AC4549B00BEA2EA /* BinReaderWriterDefines.h */; };
17E17F3B1AC4549B00BEA2EA /* Common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F1E1AC4549B00BEA2EA /* Common.cpp */; };
17E17F3C1AC4549B00BEA2EA /* Common.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F1F1AC4549B00BEA2EA /* Common.h */; };
17E17F3D1AC4549B00BEA2EA /* BinaryWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F211AC4549B00BEA2EA /* BinaryWriter.h */; };
17E17F3E1AC4549B00BEA2EA /* ChartFromToBinary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F221AC4549B00BEA2EA /* ChartFromToBinary.cpp */; };
17E17F3F1AC4549B00BEA2EA /* ChartFromToBinary.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F231AC4549B00BEA2EA /* ChartFromToBinary.h */; };
17E17F401AC4549B00BEA2EA /* CommonWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F241AC4549B00BEA2EA /* CommonWriter.cpp */; };
17E17F411AC4549B00BEA2EA /* CommonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F251AC4549B00BEA2EA /* CommonWriter.h */; };
17E17F421AC4549B00BEA2EA /* CSVReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F261AC4549B00BEA2EA /* CSVReader.cpp */; };
17E17F431AC4549B00BEA2EA /* CSVReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F271AC4549B00BEA2EA /* CSVReader.h */; };
17E17F481AC4549B00BEA2EA /* BinaryCommonReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F2D1AC4549B00BEA2EA /* BinaryCommonReader.h */; };
17E17F491AC4549B00BEA2EA /* BinaryReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F2E1AC4549B00BEA2EA /* BinaryReader.h */; };
17E17F4A1AC4549B00BEA2EA /* CSVWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E17F2F1AC4549B00BEA2EA /* CSVWriter.cpp */; };
17E17F4B1AC4549B00BEA2EA /* CSVWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F301AC4549B00BEA2EA /* CSVWriter.h */; };
17E17F4F1AC454EF00BEA2EA /* FileDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E17F4E1AC454EF00BEA2EA /* FileDownloader.h */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
17C1FEC41ACC42C4006B99B3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 17C1FC9C1ACC4250006B99B3;
remoteInfo = DocxFormatLib_ios;
};
17C1FEC61ACC42EC006B99B3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 17C1FB8E1ACC4250006B99B3;
remoteInfo = DocxFormatLib_ios;
};
17D913B01AC596190096D788 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 17E69FDC1AC4259800F28F8B;
remoteInfo = DocxFormatLib;
};
17D913BF1AC5967E0096D788 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 17E69FDB1AC4259800F28F8B;
remoteInfo = DocxFormatLib;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
17C1FEC21ACC42C4006B99B3 /* libASCOfficeDocxFile2Lib_ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libASCOfficeDocxFile2Lib_ios.a; sourceTree = BUILT_PRODUCTS_DIR; };
17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DocxFormatLib.xcodeproj; path = ../../Common/DocxFormat/Mac/DocxFormatLib.xcodeproj; sourceTree = "<group>"; };
17E17EDC1AC453F800BEA2EA /* libASCOfficeDocxFile2Lib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libASCOfficeDocxFile2Lib.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>"; };
17E17EEE1AC4544900BEA2EA /* DefaultThemeWriterLinux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultThemeWriterLinux.h; sourceTree = "<group>"; };
17E17EEF1AC4544900BEA2EA /* DefaultThemeWriterWin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultThemeWriterWin.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>"; };
17E17EF31AC4544900BEA2EA /* fontTableWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fontTableWriter.h; sourceTree = "<group>"; };
17E17EF41AC4544900BEA2EA /* HeaderFooterWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderFooterWriter.h; sourceTree = "<group>"; };
17E17EF51AC4544900BEA2EA /* MediaWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaWriter.h; sourceTree = "<group>"; };
17E17EF61AC4544900BEA2EA /* NumberingWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberingWriter.h; sourceTree = "<group>"; };
17E17EF71AC4544900BEA2EA /* ReaderClasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReaderClasses.h; sourceTree = "<group>"; };
17E17EF81AC4544900BEA2EA /* Readers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Readers.h; sourceTree = "<group>"; };
17E17EF91AC4544900BEA2EA /* SettingWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingWriter.h; sourceTree = "<group>"; };
17E17EFA1AC4544900BEA2EA /* StylesWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StylesWriter.h; sourceTree = "<group>"; };
17E17EFB1AC4544900BEA2EA /* webSettingsWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = webSettingsWriter.h; sourceTree = "<group>"; };
17E17F0E1AC4546100BEA2EA /* DocxSerializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocxSerializer.cpp; sourceTree = "<group>"; };
17E17F0F1AC4546100BEA2EA /* DocxSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocxSerializer.h; sourceTree = "<group>"; };
17E17F101AC4546100BEA2EA /* FontProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontProcessor.cpp; sourceTree = "<group>"; };
17E17F111AC4546100BEA2EA /* FontProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontProcessor.h; sourceTree = "<group>"; };
17E17F121AC4546100BEA2EA /* XlsxSerializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XlsxSerializer.cpp; sourceTree = "<group>"; };
17E17F131AC4546100BEA2EA /* XlsxSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XlsxSerializer.h; sourceTree = "<group>"; };
17E17F1D1AC4549B00BEA2EA /* BinReaderWriterDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinReaderWriterDefines.h; sourceTree = "<group>"; };
17E17F1E1AC4549B00BEA2EA /* Common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Common.cpp; sourceTree = "<group>"; };
17E17F1F1AC4549B00BEA2EA /* Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Common.h; sourceTree = "<group>"; };
17E17F211AC4549B00BEA2EA /* BinaryWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryWriter.h; sourceTree = "<group>"; };
17E17F221AC4549B00BEA2EA /* ChartFromToBinary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChartFromToBinary.cpp; sourceTree = "<group>"; };
17E17F231AC4549B00BEA2EA /* ChartFromToBinary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChartFromToBinary.h; sourceTree = "<group>"; };
17E17F241AC4549B00BEA2EA /* CommonWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CommonWriter.cpp; sourceTree = "<group>"; };
17E17F251AC4549B00BEA2EA /* CommonWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonWriter.h; sourceTree = "<group>"; };
17E17F261AC4549B00BEA2EA /* CSVReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSVReader.cpp; sourceTree = "<group>"; };
17E17F271AC4549B00BEA2EA /* CSVReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSVReader.h; sourceTree = "<group>"; };
17E17F2D1AC4549B00BEA2EA /* BinaryCommonReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryCommonReader.h; sourceTree = "<group>"; };
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>"; };
17E17F4E1AC454EF00BEA2EA /* FileDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileDownloader.h; path = ../../../Common/FileDownloader.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
17C1FE9E1ACC42C4006B99B3 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
17C1FEC81ACC42FD006B99B3 /* libDocxFormatLib_ios.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
17E17ED91AC453F800BEA2EA /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
17D913C11AC5968B0096D788 /* libDocxFormatLib.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
17D913AC1AC596180096D788 /* Products */ = {
isa = PBXGroup;
children = (
17D913B11AC596190096D788 /* libDocxFormatLib.a */,
17C1FEC51ACC42C4006B99B3 /* libDocxFormatLib_ios.a */,
);
name = Products;
sourceTree = "<group>";
};
17E17ED31AC453F800BEA2EA = {
isa = PBXGroup;
children = (
17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */,
17E17EDE1AC453F800BEA2EA /* ASCOfficeDocxFile2Lib */,
17E17EDD1AC453F800BEA2EA /* Products */,
);
sourceTree = "<group>";
};
17E17EDD1AC453F800BEA2EA /* Products */ = {
isa = PBXGroup;
children = (
17E17EDC1AC453F800BEA2EA /* libASCOfficeDocxFile2Lib.a */,
17C1FEC21ACC42C4006B99B3 /* libASCOfficeDocxFile2Lib_ios.a */,
);
name = Products;
sourceTree = "<group>";
};
17E17EDE1AC453F800BEA2EA /* ASCOfficeDocxFile2Lib */ = {
isa = PBXGroup;
children = (
17E17F4D1AC454E200BEA2EA /* Common */,
17E17F1A1AC4549B00BEA2EA /* XlsxSerializerCom */,
17E17F0D1AC4546100BEA2EA /* DocWrapper */,
17E17EEA1AC4544900BEA2EA /* BinReader */,
);
path = ASCOfficeDocxFile2Lib;
sourceTree = "<group>";
};
17E17EEA1AC4544900BEA2EA /* BinReader */ = {
isa = PBXGroup;
children = (
17E17EEB1AC4544900BEA2EA /* ChartWriter.h */,
17E17EEC1AC4544900BEA2EA /* CommentsWriter.h */,
17E17EED1AC4544900BEA2EA /* ContentTypesWriter.h */,
17E17EEE1AC4544900BEA2EA /* DefaultThemeWriterLinux.h */,
17E17EEF1AC4544900BEA2EA /* DefaultThemeWriterWin.h */,
17E17EF01AC4544900BEA2EA /* DocumentRelsWriter.h */,
17E17EF11AC4544900BEA2EA /* DocumentWriter.h */,
17E17EF21AC4544900BEA2EA /* FileWriter.h */,
17E17EF31AC4544900BEA2EA /* fontTableWriter.h */,
17E17EF41AC4544900BEA2EA /* HeaderFooterWriter.h */,
17E17EF51AC4544900BEA2EA /* MediaWriter.h */,
17E17EF61AC4544900BEA2EA /* NumberingWriter.h */,
17E17EF71AC4544900BEA2EA /* ReaderClasses.h */,
17E17EF81AC4544900BEA2EA /* Readers.h */,
17E17EF91AC4544900BEA2EA /* SettingWriter.h */,
17E17EFA1AC4544900BEA2EA /* StylesWriter.h */,
17E17EFB1AC4544900BEA2EA /* webSettingsWriter.h */,
);
name = BinReader;
path = ../../BinReader;
sourceTree = "<group>";
};
17E17F0D1AC4546100BEA2EA /* DocWrapper */ = {
isa = PBXGroup;
children = (
17E17F0E1AC4546100BEA2EA /* DocxSerializer.cpp */,
17E17F0F1AC4546100BEA2EA /* DocxSerializer.h */,
17E17F101AC4546100BEA2EA /* FontProcessor.cpp */,
17E17F111AC4546100BEA2EA /* FontProcessor.h */,
17E17F121AC4546100BEA2EA /* XlsxSerializer.cpp */,
17E17F131AC4546100BEA2EA /* XlsxSerializer.h */,
);
name = DocWrapper;
path = ../../DocWrapper;
sourceTree = "<group>";
};
17E17F1A1AC4549B00BEA2EA /* XlsxSerializerCom */ = {
isa = PBXGroup;
children = (
17E17F1C1AC4549B00BEA2EA /* Common */,
17E17F201AC4549B00BEA2EA /* Reader */,
17E17F2C1AC4549B00BEA2EA /* Writer */,
);
name = XlsxSerializerCom;
path = ../../../XlsxSerializerCom;
sourceTree = "<group>";
};
17E17F1C1AC4549B00BEA2EA /* Common */ = {
isa = PBXGroup;
children = (
17E17F1D1AC4549B00BEA2EA /* BinReaderWriterDefines.h */,
17E17F1E1AC4549B00BEA2EA /* Common.cpp */,
17E17F1F1AC4549B00BEA2EA /* Common.h */,
);
path = Common;
sourceTree = "<group>";
};
17E17F201AC4549B00BEA2EA /* Reader */ = {
isa = PBXGroup;
children = (
17E17F211AC4549B00BEA2EA /* BinaryWriter.h */,
17E17F221AC4549B00BEA2EA /* ChartFromToBinary.cpp */,
17E17F231AC4549B00BEA2EA /* ChartFromToBinary.h */,
17E17F241AC4549B00BEA2EA /* CommonWriter.cpp */,
17E17F251AC4549B00BEA2EA /* CommonWriter.h */,
17E17F261AC4549B00BEA2EA /* CSVReader.cpp */,
17E17F271AC4549B00BEA2EA /* CSVReader.h */,
);
path = Reader;
sourceTree = "<group>";
};
17E17F2C1AC4549B00BEA2EA /* Writer */ = {
isa = PBXGroup;
children = (
17E17F2D1AC4549B00BEA2EA /* BinaryCommonReader.h */,
17E17F2E1AC4549B00BEA2EA /* BinaryReader.h */,
17E17F2F1AC4549B00BEA2EA /* CSVWriter.cpp */,
17E17F301AC4549B00BEA2EA /* CSVWriter.h */,
);
path = Writer;
sourceTree = "<group>";
};
17E17F4D1AC454E200BEA2EA /* Common */ = {
isa = PBXGroup;
children = (
17E17F4E1AC454EF00BEA2EA /* FileDownloader.h */,
);
name = Common;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
17C1FEA01ACC42C4006B99B3 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
17C1FEA11ACC42C4006B99B3 /* fontTableWriter.h in Headers */,
17C1FEA21ACC42C4006B99B3 /* ChartFromToBinary.h in Headers */,
17C1FEA31ACC42C4006B99B3 /* MediaWriter.h in Headers */,
17C1FEA41ACC42C4006B99B3 /* DefaultThemeWriterLinux.h in Headers */,
17C1FEA51ACC42C4006B99B3 /* CommonWriter.h in Headers */,
17C1FEA61ACC42C4006B99B3 /* NumberingWriter.h in Headers */,
17C1FEA71ACC42C4006B99B3 /* BinReaderWriterDefines.h in Headers */,
17C1FEA81ACC42C4006B99B3 /* BinaryWriter.h in Headers */,
17C1FEA91ACC42C4006B99B3 /* DocumentWriter.h in Headers */,
17C1FEAA1ACC42C4006B99B3 /* FontProcessor.h in Headers */,
17C1FEAB1ACC42C4006B99B3 /* StylesWriter.h in Headers */,
17C1FEAC1ACC42C4006B99B3 /* Readers.h in Headers */,
17C1FEAD1ACC42C4006B99B3 /* ChartWriter.h in Headers */,
17C1FEAE1ACC42C4006B99B3 /* DocumentRelsWriter.h in Headers */,
17C1FEAF1ACC42C4006B99B3 /* CommentsWriter.h in Headers */,
17C1FEB01ACC42C4006B99B3 /* BinaryCommonReader.h in Headers */,
17C1FEB11ACC42C4006B99B3 /* Common.h in Headers */,
17C1FEB21ACC42C4006B99B3 /* XlsxSerializer.h in Headers */,
17C1FEB31ACC42C4006B99B3 /* CSVReader.h in Headers */,
17C1FEB41ACC42C4006B99B3 /* ContentTypesWriter.h in Headers */,
17C1FEB51ACC42C4006B99B3 /* HeaderFooterWriter.h in Headers */,
17C1FEB61ACC42C4006B99B3 /* webSettingsWriter.h in Headers */,
17C1FEB71ACC42C4006B99B3 /* SettingWriter.h in Headers */,
17C1FEB81ACC42C4006B99B3 /* FileDownloader.h in Headers */,
17C1FEB91ACC42C4006B99B3 /* ReaderClasses.h in Headers */,
17C1FEBA1ACC42C4006B99B3 /* BinaryReader.h in Headers */,
17C1FEBB1ACC42C4006B99B3 /* DefaultThemeWriterWin.h in Headers */,
17C1FEBC1ACC42C4006B99B3 /* DocxSerializer.h in Headers */,
17C1FEBD1ACC42C4006B99B3 /* FileWriter.h in Headers */,
17C1FEBE1ACC42C4006B99B3 /* CSVWriter.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
17E17EDA1AC453F800BEA2EA /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
17E17F041AC4544900BEA2EA /* fontTableWriter.h in Headers */,
17E17F3F1AC4549B00BEA2EA /* ChartFromToBinary.h in Headers */,
17E17F061AC4544900BEA2EA /* MediaWriter.h in Headers */,
17E17EFF1AC4544900BEA2EA /* DefaultThemeWriterLinux.h in Headers */,
17E17F411AC4549B00BEA2EA /* CommonWriter.h in Headers */,
17E17F071AC4544900BEA2EA /* NumberingWriter.h in Headers */,
17E17F3A1AC4549B00BEA2EA /* BinReaderWriterDefines.h in Headers */,
17E17F3D1AC4549B00BEA2EA /* BinaryWriter.h in Headers */,
17E17F021AC4544900BEA2EA /* DocumentWriter.h in Headers */,
17E17F171AC4546100BEA2EA /* FontProcessor.h in Headers */,
17E17F0B1AC4544900BEA2EA /* StylesWriter.h in Headers */,
17E17F091AC4544900BEA2EA /* Readers.h in Headers */,
17E17EFC1AC4544900BEA2EA /* ChartWriter.h in Headers */,
17E17F011AC4544900BEA2EA /* DocumentRelsWriter.h in Headers */,
17E17EFD1AC4544900BEA2EA /* CommentsWriter.h in Headers */,
17E17F481AC4549B00BEA2EA /* BinaryCommonReader.h in Headers */,
17E17F3C1AC4549B00BEA2EA /* Common.h in Headers */,
17E17F191AC4546100BEA2EA /* XlsxSerializer.h in Headers */,
17E17F431AC4549B00BEA2EA /* CSVReader.h in Headers */,
17E17EFE1AC4544900BEA2EA /* ContentTypesWriter.h in Headers */,
17E17F051AC4544900BEA2EA /* HeaderFooterWriter.h in Headers */,
17E17F0C1AC4544900BEA2EA /* webSettingsWriter.h in Headers */,
17E17F0A1AC4544900BEA2EA /* SettingWriter.h in Headers */,
17E17F4F1AC454EF00BEA2EA /* FileDownloader.h in Headers */,
17E17F081AC4544900BEA2EA /* ReaderClasses.h in Headers */,
17E17F491AC4549B00BEA2EA /* BinaryReader.h in Headers */,
17E17F001AC4544900BEA2EA /* DefaultThemeWriterWin.h in Headers */,
17E17F151AC4546100BEA2EA /* DocxSerializer.h in Headers */,
17E17F031AC4544900BEA2EA /* FileWriter.h in Headers */,
17E17F4B1AC4549B00BEA2EA /* CSVWriter.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
17C1FE921ACC42C4006B99B3 /* ASCOfficeDocxFile2Lib_ios */ = {
isa = PBXNativeTarget;
buildConfigurationList = 17C1FEBF1ACC42C4006B99B3 /* Build configuration list for PBXNativeTarget "ASCOfficeDocxFile2Lib_ios" */;
buildPhases = (
17C1FE951ACC42C4006B99B3 /* Sources */,
17C1FE9E1ACC42C4006B99B3 /* Frameworks */,
17C1FEA01ACC42C4006B99B3 /* Headers */,
);
buildRules = (
);
dependencies = (
17C1FEC71ACC42EC006B99B3 /* PBXTargetDependency */,
);
name = ASCOfficeDocxFile2Lib_ios;
productName = ASCOfficeDocxFile2Lib;
productReference = 17C1FEC21ACC42C4006B99B3 /* libASCOfficeDocxFile2Lib_ios.a */;
productType = "com.apple.product-type.library.static";
};
17E17EDB1AC453F800BEA2EA /* ASCOfficeDocxFile2Lib */ = {
isa = PBXNativeTarget;
buildConfigurationList = 17E17EE71AC453F800BEA2EA /* Build configuration list for PBXNativeTarget "ASCOfficeDocxFile2Lib" */;
buildPhases = (
17E17ED81AC453F800BEA2EA /* Sources */,
17E17ED91AC453F800BEA2EA /* Frameworks */,
17E17EDA1AC453F800BEA2EA /* Headers */,
);
buildRules = (
);
dependencies = (
17D913C01AC5967E0096D788 /* PBXTargetDependency */,
);
name = ASCOfficeDocxFile2Lib;
productName = ASCOfficeDocxFile2Lib;
productReference = 17E17EDC1AC453F800BEA2EA /* libASCOfficeDocxFile2Lib.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
17E17ED41AC453F800BEA2EA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0620;
ORGANIZATIONNAME = "Ascensio System SIA";
TargetAttributes = {
17E17EDB1AC453F800BEA2EA = {
CreatedOnToolsVersion = 6.2;
};
};
};
buildConfigurationList = 17E17ED71AC453F800BEA2EA /* Build configuration list for PBXProject "ASCOfficeDocxFile2Lib" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 17E17ED31AC453F800BEA2EA;
productRefGroup = 17E17EDD1AC453F800BEA2EA /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 17D913AC1AC596180096D788 /* Products */;
ProjectRef = 17D913AB1AC596180096D788 /* DocxFormatLib.xcodeproj */;
},
);
projectRoot = "";
targets = (
17E17EDB1AC453F800BEA2EA /* ASCOfficeDocxFile2Lib */,
17C1FE921ACC42C4006B99B3 /* ASCOfficeDocxFile2Lib_ios */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
17C1FEC51ACC42C4006B99B3 /* libDocxFormatLib_ios.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libDocxFormatLib_ios.a;
remoteRef = 17C1FEC41ACC42C4006B99B3 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
17D913B11AC596190096D788 /* libDocxFormatLib.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libDocxFormatLib.a;
remoteRef = 17D913B01AC596190096D788 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXSourcesBuildPhase section */
17C1FE951ACC42C4006B99B3 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
17C1FE961ACC42C4006B99B3 /* Common.cpp in Sources */,
17C1FE971ACC42C4006B99B3 /* ChartFromToBinary.cpp in Sources */,
17C1FE981ACC42C4006B99B3 /* CSVReader.cpp in Sources */,
17C1FE991ACC42C4006B99B3 /* DocxSerializer.cpp in Sources */,
17C1FE9A1ACC42C4006B99B3 /* CommonWriter.cpp in Sources */,
17C1FE9B1ACC42C4006B99B3 /* CSVWriter.cpp in Sources */,
17C1FE9C1ACC42C4006B99B3 /* XlsxSerializer.cpp in Sources */,
17C1FE9D1ACC42C4006B99B3 /* FontProcessor.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
17E17ED81AC453F800BEA2EA /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
17E17F3B1AC4549B00BEA2EA /* Common.cpp in Sources */,
17E17F3E1AC4549B00BEA2EA /* ChartFromToBinary.cpp in Sources */,
17E17F421AC4549B00BEA2EA /* CSVReader.cpp in Sources */,
17E17F141AC4546100BEA2EA /* DocxSerializer.cpp in Sources */,
17E17F401AC4549B00BEA2EA /* CommonWriter.cpp in Sources */,
17E17F4A1AC4549B00BEA2EA /* CSVWriter.cpp in Sources */,
17E17F181AC4546100BEA2EA /* XlsxSerializer.cpp in Sources */,
17E17F161AC4546100BEA2EA /* FontProcessor.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
17C1FEC71ACC42EC006B99B3 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = DocxFormatLib_ios;
targetProxy = 17C1FEC61ACC42EC006B99B3 /* PBXContainerItemProxy */;
};
17D913C01AC5967E0096D788 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = DocxFormatLib;
targetProxy = 17D913BF1AC5967E0096D788 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
17C1FEC01ACC42C4006B99B3 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
UNICODE,
_UNICODE,
NODOCX,
_USE_XMLLITE_READER_,
USE_LITE_READER,
USE_ATL_CSTRING,
USE_AVSOFFICESTUDIO_XMLUTILS,
SOLUTION_ASCOFFICEDOCXFILE2,
_USE_LIBXML2_READER_,
LIBXML_READER_ENABLED,
MAC,
unix,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/libxml2,
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
);
PRODUCT_NAME = ASCOfficeDocxFile2Lib_ios;
SDKROOT = iphoneos;
};
name = Debug;
};
17C1FEC11ACC42C4006B99B3 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
UNICODE,
_UNICODE,
NODOCX,
_USE_XMLLITE_READER_,
USE_LITE_READER,
USE_ATL_CSTRING,
USE_AVSOFFICESTUDIO_XMLUTILS,
SOLUTION_ASCOFFICEDOCXFILE2,
_USE_LIBXML2_READER_,
LIBXML_READER_ENABLED,
MAC,
unix,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/libxml2,
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
);
PRODUCT_NAME = ASCOfficeDocxFile2Lib_ios;
SDKROOT = iphoneos;
};
name = Release;
};
17E17EE51AC453F800BEA2EA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
17E17EE61AC453F800BEA2EA /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
17E17EE81AC453F800BEA2EA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
UNICODE,
_UNICODE,
NODOCX,
_USE_XMLLITE_READER_,
USE_LITE_READER,
USE_ATL_CSTRING,
USE_AVSOFFICESTUDIO_XMLUTILS,
SOLUTION_ASCOFFICEDOCXFILE2,
_USE_LIBXML2_READER_,
LIBXML_READER_ENABLED,
MAC,
unix,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/libxml2,
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
17E17EE91AC453F800BEA2EA /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
UNICODE,
_UNICODE,
NODOCX,
_USE_XMLLITE_READER_,
USE_LITE_READER,
USE_ATL_CSTRING,
USE_AVSOFFICESTUDIO_XMLUTILS,
SOLUTION_ASCOFFICEDOCXFILE2,
_USE_LIBXML2_READER_,
LIBXML_READER_ENABLED,
MAC,
unix,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/libxml2,
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
17C1FEBF1ACC42C4006B99B3 /* Build configuration list for PBXNativeTarget "ASCOfficeDocxFile2Lib_ios" */ = {
isa = XCConfigurationList;
buildConfigurations = (
17C1FEC01ACC42C4006B99B3 /* Debug */,
17C1FEC11ACC42C4006B99B3 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
17E17ED71AC453F800BEA2EA /* Build configuration list for PBXProject "ASCOfficeDocxFile2Lib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
17E17EE51AC453F800BEA2EA /* Debug */,
17E17EE61AC453F800BEA2EA /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
17E17EE71AC453F800BEA2EA /* Build configuration list for PBXNativeTarget "ASCOfficeDocxFile2Lib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
17E17EE81AC453F800BEA2EA /* Debug */,
17E17EE91AC453F800BEA2EA /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 17E17ED41AC453F800BEA2EA /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:ASCOfficeDocxFile2Lib.xcodeproj">
</FileRef>
</Workspace>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0620"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "17E17EDB1AC453F800BEA2EA"
BuildableName = "libASCOfficeDocxFile2Lib.a"
BlueprintName = "ASCOfficeDocxFile2Lib"
ReferencedContainer = "container:ASCOfficeDocxFile2Lib.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "17E17EDB1AC453F800BEA2EA"
BuildableName = "libASCOfficeDocxFile2Lib.a"
BlueprintName = "ASCOfficeDocxFile2Lib"
ReferencedContainer = "container:ASCOfficeDocxFile2Lib.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "17E17EDB1AC453F800BEA2EA"
BuildableName = "libASCOfficeDocxFile2Lib.a"
BlueprintName = "ASCOfficeDocxFile2Lib"
ReferencedContainer = "container:ASCOfficeDocxFile2Lib.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>ASCOfficeDocxFile2Lib.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
<key>ASCOfficeDocxFile2Lib_ios.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>23</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>17C1FE921ACC42C4006B99B3</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>17E17EDB1AC453F800BEA2EA</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>
// 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);
[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)
{
return m_oCPPTXFile.ConvertPPTYToPPTX(bsInput, bsOutput);
}
//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);
}
\ No newline at end of file
//{{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
#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;
m_oXlsxSerializer.CreateXlsxFolders(CString(bstrXMLOptions), sDstPath, sMediaPath);
bool bRes = m_oXlsxSerializer.loadFromFile(CString(sSrcFileName), sDstPath, CString(bstrXMLOptions), sMediaPath);
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:
};
\ No newline at end of file
/*********************************************************
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 )
EXTERN_PROXY_FILE( _AVSOfficeDocxFile2 )
PROXYFILE_LIST_START
/* Start of list */
REFERENCE_PROXY_FILE( _ASCOfficeDocxFile2 ),
REFERENCE_PROXY_FILE( _AVSOfficeDocxFile2 ),
/* End of list */
PROXYFILE_LIST_END
DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
#ifdef __cplusplus
} /*extern "C" */
#endif
/* end of generated dlldata file */
// 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"
// 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 0x0400 // 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 0x0400 // 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"
#pragma once
#define WIN32_LEAN_AND_MEAN
#include "WritingElement.h"
#include "Docx.h"
#include "DocMeasurer/FontProcessor.h"
#include "Docx.h"
#pragma once
//2
//0
//1
//313
#define INTVER 2,0,1,313
#define STRVER "2,0,1,313\0"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment