Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
2367cee3
Commit
2367cee3
authored
Jan 31, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PptxFormat - fix user file with wrong rels
parent
288d8930
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
154 additions
and
56 deletions
+154
-56
ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp
ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp
+7
-4
ASCOfficePPTXFile/Editor/Converter.h
ASCOfficePPTXFile/Editor/Converter.h
+44
-24
ASCOfficePPTXFile/PPTXFormat/FileContainer.cpp
ASCOfficePPTXFile/PPTXFormat/FileContainer.cpp
+6
-3
ASCOfficePPTXFile/PPTXFormat/FileFactory.cpp
ASCOfficePPTXFile/PPTXFormat/FileFactory.cpp
+67
-3
ASCOfficePPTXFile/PPTXFormat/FileFactory.h
ASCOfficePPTXFile/PPTXFormat/FileFactory.h
+2
-7
ASCOfficePPTXFile/PPTXFormat/FileTypes.h
ASCOfficePPTXFile/PPTXFormat/FileTypes.h
+1
-1
ASCOfficePPTXFile/PPTXFormat/NotesMaster.h
ASCOfficePPTXFile/PPTXFormat/NotesMaster.h
+3
-1
ASCOfficePPTXFile/PPTXFormat/Slide.h
ASCOfficePPTXFile/PPTXFormat/Slide.h
+12
-6
ASCOfficePPTXFile/PPTXFormat/SlideLayout.h
ASCOfficePPTXFile/PPTXFormat/SlideLayout.h
+5
-3
ASCOfficePPTXFile/PPTXFormat/SlideMaster.h
ASCOfficePPTXFile/PPTXFormat/SlideMaster.h
+5
-3
Common/DocxFormat/Source/DocxFormat/FileType.h
Common/DocxFormat/Source/DocxFormat/FileType.h
+2
-1
No files found.
ASCOfficePPTXFile/ASCOfficeDrawingConverter.cpp
View file @
2367cee3
...
@@ -1735,13 +1735,16 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
...
@@ -1735,13 +1735,16 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
OOX
::
CPath
pathDiagramDrawing
=
pathDiagramData
.
GetDirectory
()
+
FILE_SEPARATOR_STR
+
L"drawing"
+
strId
+
L".xml"
;
OOX
::
CPath
pathDiagramDrawing
=
pathDiagramData
.
GetDirectory
()
+
FILE_SEPARATOR_STR
+
L"drawing"
+
strId
+
L".xml"
;
oFileDrawing
=
smart_ptr
<
OOX
::
File
>
(
dynamic_cast
<
OOX
::
File
*>
(
new
OOX
::
CDiagramDrawing
(
pathDiagramDrawing
)));
if
(
NSFile
::
CFileBinary
::
Exists
(
pathDiagramDrawing
.
GetPath
()))
if
(
oFileDrawing
.
IsInit
())
{
pDiagramDrawing
=
dynamic_cast
<
OOX
::
CDiagramDrawing
*>
(
oFileDrawing
.
operator
->
());
oFileDrawing
=
smart_ptr
<
OOX
::
File
>
(
dynamic_cast
<
OOX
::
File
*>
(
new
OOX
::
CDiagramDrawing
(
pathDiagramDrawing
)));
if
(
oFileDrawing
.
IsInit
())
pDiagramDrawing
=
dynamic_cast
<
OOX
::
CDiagramDrawing
*>
(
oFileDrawing
.
operator
->
());
}
}
}
}
}
if
(
pDiagramDrawing
)
if
(
(
pDiagramDrawing
)
&&
(
pDiagramDrawing
->
m_oShapeTree
.
IsInit
())
)
{
{
result
->
InitElem
(
new
PPTX
::
Logic
::
SpTree
(
*
pDiagramDrawing
->
m_oShapeTree
));
result
->
InitElem
(
new
PPTX
::
Logic
::
SpTree
(
*
pDiagramDrawing
->
m_oShapeTree
));
//to correct write blipFill rId to binary
//to correct write blipFill rId to binary
...
...
ASCOfficePPTXFile/Editor/Converter.h
View file @
2367cee3
...
@@ -257,54 +257,74 @@ namespace PPTX2EditorAdvanced
...
@@ -257,54 +257,74 @@ namespace PPTX2EditorAdvanced
tablestyles
->
toPPTY
(
&
oBinaryWriter
);
tablestyles
->
toPPTY
(
&
oBinaryWriter
);
}
}
// Presentation
// Presentation
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Presentation
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Presentation
);
presentation
->
toPPTY
(
&
oBinaryWriter
);
presentation
->
toPPTY
(
&
oBinaryWriter
);
// themes
// themes
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Themes
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Themes
);
ULONG
nCountThemes
=
(
ULONG
)
_themes
.
size
();
ULONG
nCountThemes
=
0
;
for
(
size_t
i
=
0
;
i
<
_themes
.
size
();
++
i
)
{
if
(
_themes
[
i
].
IsInit
())
nCountThemes
++
;
}
oBinaryWriter
.
WriteULONG
(
nCountThemes
);
oBinaryWriter
.
WriteULONG
(
nCountThemes
);
for
(
ULONG
i
=
0
;
i
<
nCountThemes
;
++
i
)
for
(
size_t
i
=
0
;
i
<
_themes
.
size
();
++
i
)
{
{
if
(
_themes
[
i
].
IsInit
()
==
false
)
continue
;
_themes
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
_themes
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
}
}
// slidemasters
// slidemasters
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
SlideMasters
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
SlideMasters
);
ULONG
nCountSM
=
(
ULONG
)
_slideMasters
.
size
();
ULONG
nCountSM
=
0
;
for
(
size_t
i
=
0
;
i
<
_slideMasters
.
size
();
++
i
)
{
if
(
_slideMasters
[
i
].
IsInit
())
nCountSM
++
;
}
oBinaryWriter
.
WriteULONG
(
nCountSM
);
oBinaryWriter
.
WriteULONG
(
nCountSM
);
for
(
ULONG
i
=
0
;
i
<
nCountSM
;
++
i
)
for
(
size_t
i
=
0
;
i
<
_slideMasters
.
size
();
++
i
)
{
{
if
(
_slideMasters
[
i
].
IsInit
()
==
false
)
continue
;
_slideMasters
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
_slideMasters
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
}
}
// slidelayouts
// slidelayouts
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
SlideLayouts
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
SlideLayouts
);
ULONG
nCountL
=
0
;
ULONG
nCountL
=
0
;
for
(
ULONG
i
=
0
;
i
<
_layouts
.
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
_layouts
.
size
();
++
i
)
{
{
if
(
_layouts
[
i
].
IsInit
())
nCountL
++
;
if
(
_layouts
[
i
].
IsInit
())
nCountL
++
;
}
}
oBinaryWriter
.
WriteULONG
(
nCountL
);
oBinaryWriter
.
WriteULONG
(
nCountL
);
for
(
ULONG
i
=
0
;
i
<
_layouts
.
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
_layouts
.
size
();
++
i
)
{
{
if
(
_layouts
[
i
].
IsInit
()
==
false
)
if
(
_layouts
[
i
].
IsInit
()
==
false
)
continue
;
//непонятки с 42 шаблоном в FY10_September_Partner_Call.pptx
{
continue
;
//непонятки с 42 шаблоном в FY10_September_Partner_Call.pptx
}
_layouts
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
_layouts
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
}
}
// slides
// slides
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Slides
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
Slides
);
ULONG
nCountS
=
(
ULONG
)
_slides
.
size
();
ULONG
nCountS
=
0
;
for
(
size_t
i
=
0
;
i
<
_slides
.
size
();
++
i
)
{
if
(
_slides
[
i
].
IsInit
())
nCountS
++
;
}
oBinaryWriter
.
WriteULONG
(
nCountS
);
oBinaryWriter
.
WriteULONG
(
nCountS
);
for
(
ULONG
i
=
0
;
i
<
nCountS
;
++
i
)
for
(
size_t
i
=
0
;
i
<
_slides
.
size
();
++
i
)
{
{
if
(
_slides
[
i
].
IsInit
()
==
false
)
continue
;
_slides
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
_slides
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
}
}
...
@@ -312,7 +332,7 @@ namespace PPTX2EditorAdvanced
...
@@ -312,7 +332,7 @@ namespace PPTX2EditorAdvanced
{
{
// ПОКА нету NOTES
// ПОКА нету NOTES
// notes
// notes
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
NotesSlides
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
NotesSlides
);
ULONG
nCountN
=
(
ULONG
)
_notes
.
size
();
ULONG
nCountN
=
(
ULONG
)
_notes
.
size
();
oBinaryWriter
.
WriteULONG
(
nCountN
);
oBinaryWriter
.
WriteULONG
(
nCountN
);
...
@@ -321,7 +341,7 @@ namespace PPTX2EditorAdvanced
...
@@ -321,7 +341,7 @@ namespace PPTX2EditorAdvanced
_notes
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
_notes
[
i
]
->
toPPTY
(
&
oBinaryWriter
);
}
}
// notesmasters
// notesmasters
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
NotesMasters
);
oBinaryWriter
.
StartMainRecord
(
NSMainTables
::
NotesMasters
);
ULONG
nCountNM
=
(
ULONG
)
_notesMasters
.
size
();
ULONG
nCountNM
=
(
ULONG
)
_notesMasters
.
size
();
oBinaryWriter
.
WriteULONG
(
nCountNM
);
oBinaryWriter
.
WriteULONG
(
nCountNM
);
...
...
ASCOfficePPTXFile/PPTXFormat/FileContainer.cpp
View file @
2367cee3
...
@@ -81,7 +81,7 @@ namespace PPTX
...
@@ -81,7 +81,7 @@ namespace PPTX
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
{
{
const
OOX
::
Rels
::
CRelationShip
*
pRelation
=
rels
.
m_arrRelations
[
i
];
OOX
::
Rels
::
CRelationShip
*
pRelation
=
rels
.
m_arrRelations
[
i
];
OOX
::
CPath
normPath
=
path
/
pRelation
->
Target
();
OOX
::
CPath
normPath
=
path
/
pRelation
->
Target
();
std
::
map
<
std
::
wstring
,
smart_ptr
<
OOX
::
File
>>::
const_iterator
pPair
=
map
.
find
(
normPath
);
std
::
map
<
std
::
wstring
,
smart_ptr
<
OOX
::
File
>>::
const_iterator
pPair
=
map
.
find
(
normPath
);
...
@@ -112,7 +112,10 @@ namespace PPTX
...
@@ -112,7 +112,10 @@ namespace PPTX
{
{
long
percent
=
Event
->
GetPercent
();
long
percent
=
Event
->
GetPercent
();
smart_ptr
<
OOX
::
File
>
file
=
PPTX
::
FileFactory
::
CreateFilePPTX
(
path
,
*
pRelation
,
map
);
smart_ptr
<
OOX
::
File
>
file
=
PPTX
::
FileFactory
::
CreateFilePPTX
(
path
,
*
pRelation
,
map
);
if
(
file
.
IsInit
()
==
false
)
continue
;
map
.
add
(
normPath
,
file
);
map
.
add
(
normPath
,
file
);
Add
(
pRelation
->
rId
(),
file
);
Add
(
pRelation
->
rId
(),
file
);
...
@@ -223,7 +226,7 @@ namespace PPTX
...
@@ -223,7 +226,7 @@ namespace PPTX
size_t
nCount
=
rels
.
m_arrRelations
.
size
();
size_t
nCount
=
rels
.
m_arrRelations
.
size
();
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
{
{
const
OOX
::
Rels
::
CRelationShip
*
pRelation
=
rels
.
m_arrRelations
[
i
];
OOX
::
Rels
::
CRelationShip
*
pRelation
=
rels
.
m_arrRelations
[
i
];
smart_ptr
<
OOX
::
File
>
_file
=
PPTX
::
FileFactory
::
CreateFilePPTX_OnlyMedia
(
path
,
*
pRelation
);
smart_ptr
<
OOX
::
File
>
_file
=
PPTX
::
FileFactory
::
CreateFilePPTX_OnlyMedia
(
path
,
*
pRelation
);
Add
(
pRelation
->
rId
(),
_file
);
Add
(
pRelation
->
rId
(),
_file
);
...
...
ASCOfficePPTXFile/PPTXFormat/FileFactory.cpp
View file @
2367cee3
...
@@ -30,13 +30,13 @@
...
@@ -30,13 +30,13 @@
*
*
*/
*/
#include "FileFactory.h"
#include "../../Common/DocxFormat/Source/DocxFormat/File.h"
#include "../../Common/DocxFormat/Source/DocxFormat/File.h"
#include "../../Common/DocxFormat/Source/DocxFormat/Rels.h"
#include "../../Common/DocxFormat/Source/DocxFormat/Rels.h"
#include "../../Common/DocxFormat/Source/DocxFormat/FileTypes.h"
#include "../../Common/DocxFormat/Source/DocxFormat/FileTypes.h"
#include "FileTypes.h"
#include "FileTypes.h"
#include "FileFactory.h"
#include "App.h"
#include "App.h"
#include "Core.h"
#include "Core.h"
#include "Theme.h"
#include "Theme.h"
...
@@ -69,11 +69,75 @@
...
@@ -69,11 +69,75 @@
#include "FileMap.h"
#include "FileMap.h"
#include "../../DesktopEditor/common/Directory.h"
namespace
PPTX
namespace
PPTX
{
{
const
smart_ptr
<
OOX
::
File
>
FileFactory
::
CreateFilePPTX
(
const
OOX
::
CPath
&
path
,
const
OOX
::
Rels
::
CRelationShip
&
relation
,
FileMap
&
map
)
static
std
::
wstring
arDefDirectories
[
8
][
2
]
=
//in ppt Directory
{
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
,
L"slides"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"
,
L"slideLayouts"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
,
L"slideMasters"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
,
L"notesSlides"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
,
L"notesMasters"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster"
,
L"handoutMasters"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
,
L"comments"
},
{
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors"
,
L""
}
};
static
std
::
wstring
FindFileInDirectory
(
std
::
wstring
directory
,
std
::
wstring
filename
)
{
if
(
directory
.
empty
())
return
L""
;
if
(
directory
[
directory
.
length
()
-
1
]
==
FILE_SEPARATOR_CHAR
)
directory
.
substr
(
0
,
directory
.
length
()
-
1
);
CArray
<
std
::
wstring
>
arrFiles
=
NSDirectory
::
GetFiles
(
directory
,
true
);
for
(
int
i
=
0
;
i
<
arrFiles
.
GetCount
();
i
++
)
{
if
(
std
::
wstring
::
npos
!=
arrFiles
[
i
].
find
(
filename
))
{
return
arrFiles
[
i
].
substr
(
directory
.
length
()
+
1
);
}
}
return
L""
;
}
const
smart_ptr
<
OOX
::
File
>
FileFactory
::
CreateFilePPTX
(
const
OOX
::
CPath
&
path
,
OOX
::
Rels
::
CRelationShip
&
relation
,
FileMap
&
map
)
{
{
OOX
::
CPath
filename
=
path
/
relation
.
Filename
();
OOX
::
CPath
filename
=
path
/
relation
.
Filename
();
if
(
NSFile
::
CFileBinary
::
Exists
(
filename
.
GetPath
())
==
false
)
{
//file_1_ (1).pptx
std
::
wstring
strDefDirectory
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
(
relation
.
Type
()
==
arDefDirectories
[
i
][
0
])
{
strDefDirectory
=
arDefDirectories
[
i
][
1
];
break
;
}
}
OOX
::
CPath
new_filename
=
strDefDirectory
+
FILE_SEPARATOR_STR
+
relation
.
Filename
().
GetFilename
();
filename
=
path
/
new_filename
;
if
(
NSFile
::
CFileBinary
::
Exists
(
filename
.
GetPath
())
==
false
)
{
new_filename
=
FindFileInDirectory
(
path
.
GetPath
(),
relation
.
Filename
().
GetFilename
());
// find true path by filename
filename
=
path
/
new_filename
;
if
(
NSFile
::
CFileBinary
::
Exists
(
filename
.
GetPath
())
==
false
)
return
smart_ptr
<
OOX
::
File
>
(
NULL
);
}
relation
=
OOX
::
Rels
::
CRelationShip
(
relation
.
rId
(),
relation
.
Type
(),
new_filename
);
}
if
(
relation
.
Type
()
==
OOX
::
Presentation
::
FileTypes
::
App
)
if
(
relation
.
Type
()
==
OOX
::
Presentation
::
FileTypes
::
App
)
return
smart_ptr
<
OOX
::
File
>
(
new
PPTX
::
App
(
filename
,
map
));
return
smart_ptr
<
OOX
::
File
>
(
new
PPTX
::
App
(
filename
,
map
));
...
@@ -138,7 +202,7 @@ namespace PPTX
...
@@ -138,7 +202,7 @@ namespace PPTX
return
smart_ptr
<
OOX
::
File
>
(
new
OOX
::
UnknowTypeFile
());
return
smart_ptr
<
OOX
::
File
>
(
new
OOX
::
UnknowTypeFile
());
}
}
const
smart_ptr
<
OOX
::
File
>
FileFactory
::
CreateFilePPTX_OnlyMedia
(
const
OOX
::
CPath
&
path
,
const
OOX
::
Rels
::
CRelationShip
&
relation
)
const
smart_ptr
<
OOX
::
File
>
FileFactory
::
CreateFilePPTX_OnlyMedia
(
const
OOX
::
CPath
&
path
,
OOX
::
Rels
::
CRelationShip
&
relation
)
{
{
bool
bIsDownload
=
false
;
bool
bIsDownload
=
false
;
std
::
wstring
strFile
=
relation
.
Filename
().
GetPath
();
std
::
wstring
strFile
=
relation
.
Filename
().
GetPath
();
...
...
ASCOfficePPTXFile/PPTXFormat/FileFactory.h
View file @
2367cee3
...
@@ -30,9 +30,6 @@
...
@@ -30,9 +30,6 @@
*
*
*/
*/
#pragma once
#pragma once
#ifndef PPTX_FILE_FACTORY_INCLUDE_H_
#define PPTX_FILE_FACTORY_INCLUDE_H_
#include "../../Common/DocxFormat/Source/DocxFormat/File.h"
#include "../../Common/DocxFormat/Source/DocxFormat/File.h"
namespace
OOX
{
namespace
Rels
{
class
CRelationShip
;}}
namespace
OOX
{
namespace
Rels
{
class
CRelationShip
;}}
...
@@ -44,9 +41,7 @@ namespace PPTX
...
@@ -44,9 +41,7 @@ namespace PPTX
class
FileFactory
class
FileFactory
{
{
public:
public:
static
const
smart_ptr
<
OOX
::
File
>
CreateFilePPTX
(
const
OOX
::
CPath
&
path
,
const
OOX
::
Rels
::
CRelationShip
&
relation
,
FileMap
&
map
);
static
const
smart_ptr
<
OOX
::
File
>
CreateFilePPTX
(
const
OOX
::
CPath
&
path
,
OOX
::
Rels
::
CRelationShip
&
relation
,
FileMap
&
map
);
static
const
smart_ptr
<
OOX
::
File
>
CreateFilePPTX_OnlyMedia
(
const
OOX
::
CPath
&
path
,
const
OOX
::
Rels
::
CRelationShip
&
relation
);
static
const
smart_ptr
<
OOX
::
File
>
CreateFilePPTX_OnlyMedia
(
const
OOX
::
CPath
&
path
,
OOX
::
Rels
::
CRelationShip
&
relation
);
};
};
}
// namespace PPTX
}
// namespace PPTX
#endif // PPTX_FILE_FACTORY_INCLUDE_H_
\ No newline at end of file
ASCOfficePPTXFile/PPTXFormat/FileTypes.h
View file @
2367cee3
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
#ifndef PPTXOOX_FILE_TYPES_INCLUDE_H_
#ifndef PPTXOOX_FILE_TYPES_INCLUDE_H_
#define PPTXOOX_FILE_TYPES_INCLUDE_H_
#define PPTXOOX_FILE_TYPES_INCLUDE_H_
#include "../../
../
Common/DocxFormat/Source/DocxFormat/FileType.h"
#include "../../Common/DocxFormat/Source/DocxFormat/FileType.h"
namespace
OOX
namespace
OOX
{
{
...
...
ASCOfficePPTXFile/PPTXFormat/NotesMaster.h
View file @
2367cee3
...
@@ -121,9 +121,11 @@ namespace PPTX
...
@@ -121,9 +121,11 @@ namespace PPTX
theme_
=
(
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
ThemePPTX
)).
smart_dynamic_cast
<
PPTX
::
Theme
>
();
theme_
=
(
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
ThemePPTX
)).
smart_dynamic_cast
<
PPTX
::
Theme
>
();
if
(
theme_
.
IsInit
())
if
(
theme_
.
IsInit
())
{
theme_
->
SetColorMap
(
clrMap
);
theme_
->
SetColorMap
(
clrMap
);
tableStyles_
=
(
theme_
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
)).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
tableStyles_
=
(
theme_
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
)).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
}
}
}
virtual
void
toPPTY
(
NSBinPptxRW
::
CBinaryFileWriter
*
pWriter
)
const
virtual
void
toPPTY
(
NSBinPptxRW
::
CBinaryFileWriter
*
pWriter
)
const
...
...
ASCOfficePPTXFile/PPTXFormat/Slide.h
View file @
2367cee3
...
@@ -407,14 +407,20 @@ namespace PPTX
...
@@ -407,14 +407,20 @@ namespace PPTX
Layout
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
SlideLayout
).
smart_dynamic_cast
<
PPTX
::
SlideLayout
>
();
//boost::shared_dynamic_cast<PPTX::SlideLayout, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::SlideLayout));
Layout
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
SlideLayout
).
smart_dynamic_cast
<
PPTX
::
SlideLayout
>
();
//boost::shared_dynamic_cast<PPTX::SlideLayout, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::SlideLayout));
Note
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
NotesSlide
).
smart_dynamic_cast
<
PPTX
::
NotesSlide
>
();
Note
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
NotesSlide
).
smart_dynamic_cast
<
PPTX
::
NotesSlide
>
();
comments
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
SlideComments
).
smart_dynamic_cast
<
PPTX
::
Comments
>
();
comments
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
SlideComments
).
smart_dynamic_cast
<
PPTX
::
Comments
>
();
Master
=
Layout
->
Master
;
theme
=
Layout
->
theme
;
tableStyles_
=
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
//boost::shared_dynamic_cast<PPTX::TableStyles, PPTX::File>(Theme->Presentation->get(OOX::Presentation::FileTypes::TableStyles));
if
(
Layout
.
IsInit
())
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
{
{
Vml
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
).
smart_dynamic_cast
<
OOX
::
CVmlDrawing
>
();
//boost::shared_dynamic_cast<PPTX::VmlDrawing, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::VmlDrawing));
Master
=
Layout
->
Master
;
theme
=
Layout
->
theme
;
if
(
theme
.
IsInit
())
{
tableStyles_
=
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
//boost::shared_dynamic_cast<PPTX::TableStyles, PPTX::File>(Theme->Presentation->get(OOX::Presentation::FileTypes::TableStyles));
}
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
{
Vml
=
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
).
smart_dynamic_cast
<
OOX
::
CVmlDrawing
>
();
//boost::shared_dynamic_cast<PPTX::VmlDrawing, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::VmlDrawing));
}
}
}
}
}
...
...
ASCOfficePPTXFile/PPTXFormat/SlideLayout.h
View file @
2367cee3
...
@@ -478,11 +478,13 @@ namespace PPTX
...
@@ -478,11 +478,13 @@ namespace PPTX
Master
=
pFile
.
smart_dynamic_cast
<
PPTX
::
SlideMaster
>
();
Master
=
pFile
.
smart_dynamic_cast
<
PPTX
::
SlideMaster
>
();
if
(
Master
.
IsInit
())
if
(
Master
.
IsInit
())
{
theme
=
Master
->
theme
;
theme
=
Master
->
theme
;
if
(
theme
.
IsInit
())
if
(
theme
.
IsInit
())
{
{
tableStyles
=
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
tableStyles
=
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
}
}
}
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
{
{
...
...
ASCOfficePPTXFile/PPTXFormat/SlideMaster.h
View file @
2367cee3
...
@@ -76,7 +76,7 @@ namespace PPTX
...
@@ -76,7 +76,7 @@ namespace PPTX
public:
public:
virtual
void
read
(
const
OOX
::
CPath
&
filename
,
FileMap
&
map
)
virtual
void
read
(
const
OOX
::
CPath
&
filename
,
FileMap
&
map
)
{
{
//FileContainer::read(filename, map);
//FileContainer::read(filename, map);
XmlUtils
::
CXmlNode
oNode
;
XmlUtils
::
CXmlNode
oNode
;
oNode
.
FromXmlFile
(
filename
.
m_strFilename
);
oNode
.
FromXmlFile
(
filename
.
m_strFilename
);
...
@@ -516,9 +516,11 @@ namespace PPTX
...
@@ -516,9 +516,11 @@ namespace PPTX
theme
=
(
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
ThemePPTX
)).
smart_dynamic_cast
<
PPTX
::
Theme
>
();
theme
=
(
FileContainer
::
Get
(
OOX
::
Presentation
::
FileTypes
::
ThemePPTX
)).
smart_dynamic_cast
<
PPTX
::
Theme
>
();
if
(
theme
.
IsInit
())
if
(
theme
.
IsInit
())
{
theme
->
SetColorMap
(
clrMap
);
theme
->
SetColorMap
(
clrMap
);
//Theme->Master.reset((PPTX::WrapperFile*)this);
//Theme->Master.reset((PPTX::WrapperFile*)this);
tableStyles
=
(
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
)).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
tableStyles
=
(
theme
->
presentation
->
Get
(
OOX
::
Presentation
::
FileTypes
::
TableStyles
)).
smart_dynamic_cast
<
PPTX
::
TableStyles
>
();
}
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
if
(
IsExist
(
OOX
::
Presentation
::
FileTypes
::
VmlDrawing
))
{
{
...
...
Common/DocxFormat/Source/DocxFormat/FileType.h
View file @
2367cee3
...
@@ -53,7 +53,8 @@ namespace OOX
...
@@ -53,7 +53,8 @@ namespace OOX
FileType
(
const
WCHAR
*
defaultDirectory
,
const
WCHAR
*
defaultFileName
,
FileType
(
const
WCHAR
*
defaultDirectory
,
const
WCHAR
*
defaultFileName
,
const
std
::
wstring
&
overrideType
,
const
std
::
wstring
&
overrideType
,
const
std
::
wstring
&
relationType
,
bool
bEnumerated
=
false
,
bool
bEnumeratedGlobal
=
false
)
:
m_defaultDirectory
(
defaultDirectory
),
const
std
::
wstring
&
relationType
,
bool
bEnumerated
=
false
,
bool
bEnumeratedGlobal
=
false
)
:
m_defaultDirectory
(
defaultDirectory
),
m_defaultFileName
(
defaultFileName
),
m_defaultFileName
(
defaultFileName
),
m_overrideType
(
overrideType
),
m_overrideType
(
overrideType
),
m_relationType
(
relationType
),
m_relationType
(
relationType
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment