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
8774035b
Commit
8774035b
authored
Apr 06, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OdfFormatReader - presentation table extended graphics properties
parent
8cec4ce8
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
155 additions
and
169 deletions
+155
-169
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp
+1
-1
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj
+13
-13
ASCOfficeOdfFile/src/odf/calcs_styles.cpp
ASCOfficeOdfFile/src/odf/calcs_styles.cpp
+7
-6
ASCOfficeOdfFile/src/odf/datatypes/common_attlists.h
ASCOfficeOdfFile/src/odf/datatypes/common_attlists.h
+4
-0
ASCOfficeOdfFile/src/odf/draw_frame_docx.cpp
ASCOfficeOdfFile/src/odf/draw_frame_docx.cpp
+6
-6
ASCOfficeOdfFile/src/odf/style_graphic_properties.cpp
ASCOfficeOdfFile/src/odf/style_graphic_properties.cpp
+73
-54
ASCOfficeOdfFile/src/odf/style_graphic_properties.h
ASCOfficeOdfFile/src/odf/style_graphic_properties.h
+22
-10
ASCOfficeOdfFile/src/odf/style_paragraph_properties.h
ASCOfficeOdfFile/src/odf/style_paragraph_properties.h
+1
-60
ASCOfficeOdfFile/src/odf/styles.cpp
ASCOfficeOdfFile/src/odf/styles.cpp
+9
-3
ASCOfficeOdfFile/src/odf/styles.h
ASCOfficeOdfFile/src/odf/styles.h
+11
-9
ASCOfficeOdfFile/src/odf/table_pptx.cpp
ASCOfficeOdfFile/src/odf/table_pptx.cpp
+8
-7
No files found.
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp
View file @
8774035b
...
@@ -54,7 +54,7 @@ int _tmain(int argc, _TCHAR* argv[])
...
@@ -54,7 +54,7 @@ int _tmain(int argc, _TCHAR* argv[])
HRESULT
hr
=
S_OK
;
HRESULT
hr
=
S_OK
;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
std
::
wstring
srcFileName
=
argv
[
1
];
std
::
wstring
srcFileName
=
argv
[
1
];
std
::
wstring
dstPath
=
argc
>
2
?
argv
[
2
]
:
srcFileName
+
L"-my.
xls
x"
;
//xlsx pptx docx
std
::
wstring
dstPath
=
argc
>
2
?
argv
[
2
]
:
srcFileName
+
L"-my.
ppt
x"
;
//xlsx pptx docx
std
::
wstring
outputDir
=
NSDirectory
::
GetFolderPath
(
dstPath
);
std
::
wstring
outputDir
=
NSDirectory
::
GetFolderPath
(
dstPath
);
...
...
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj
View file @
8774035b
...
@@ -331,12 +331,12 @@
...
@@ -331,12 +331,12 @@
</References>
</References>
<Files>
<Files>
<Filter
<Filter
Name=
"
Source Files
"
Name=
"
Common
"
Filter=
"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
Filter=
"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier=
"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
UniqueIdentifier=
"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
>
<File
<File
RelativePath=
"
OdfFileTest
.cpp"
RelativePath=
"
..\..\Common\3dParty\pole\pole
.cpp"
>
>
<FileConfiguration
<FileConfiguration
Name=
"Debug|Win32"
Name=
"Debug|Win32"
...
@@ -348,7 +348,7 @@
...
@@ -348,7 +348,7 @@
</FileConfiguration>
</FileConfiguration>
</File>
</File>
<File
<File
RelativePath=
"..\..\
Common\3dParty\pole\pole
.cpp"
RelativePath=
"..\..\
UnicodeConverter\UnicodeConverter
.cpp"
>
>
<FileConfiguration
<FileConfiguration
Name=
"Debug|Win32"
Name=
"Debug|Win32"
...
@@ -360,7 +360,7 @@
...
@@ -360,7 +360,7 @@
</FileConfiguration>
</FileConfiguration>
</File>
</File>
<File
<File
RelativePath=
"..\..\
UnicodeConverter\UnicodeConverter
.cpp"
RelativePath=
"..\..\
DesktopEditor\xml\src\xmldom
.cpp"
>
>
<FileConfiguration
<FileConfiguration
Name=
"Debug|Win32"
Name=
"Debug|Win32"
...
@@ -372,7 +372,7 @@
...
@@ -372,7 +372,7 @@
</FileConfiguration>
</FileConfiguration>
</File>
</File>
<File
<File
RelativePath=
"..\..\DesktopEditor\xml\src\xml
dom
.cpp"
RelativePath=
"..\..\DesktopEditor\xml\src\xml
light
.cpp"
>
>
<FileConfiguration
<FileConfiguration
Name=
"Debug|Win32"
Name=
"Debug|Win32"
...
@@ -383,8 +383,9 @@
...
@@ -383,8 +383,9 @@
/>
/>
</FileConfiguration>
</FileConfiguration>
</File>
</File>
</Filter>
<File
<File
RelativePath=
"..\..\DesktopEditor\xml\src\xmlligh
t.cpp"
RelativePath=
"OdfFileTes
t.cpp"
>
>
<FileConfiguration
<FileConfiguration
Name=
"Debug|Win32"
Name=
"Debug|Win32"
...
@@ -395,7 +396,6 @@
...
@@ -395,7 +396,6 @@
/>
/>
</FileConfiguration>
</FileConfiguration>
</File>
</File>
</Filter>
</Files>
</Files>
<Globals>
<Globals>
</Globals>
</Globals>
...
...
ASCOfficeOdfFile/src/odf/calcs_styles.cpp
View file @
8774035b
...
@@ -79,24 +79,24 @@ text_format_properties_content calc_text_properties_content(const std::vector<co
...
@@ -79,24 +79,24 @@ text_format_properties_content calc_text_properties_content(const std::vector<co
}
}
//////////////
//////////////
graphic_format_properties
calc_graphic_properties_content
(
const
std
::
vector
<
const
style_graphic
_properties
*>
&
graphicProps
)
graphic_format_properties
calc_graphic_properties_content
(
const
std
::
vector
<
const
graphic_format
_properties
*>
&
graphicProps
)
{
{
graphic_format_properties
result
;
graphic_format_properties
result
;
BOOST_FOREACH
(
const
style_graphic
_properties
*
v
,
graphicProps
)
BOOST_FOREACH
(
const
graphic_format
_properties
*
v
,
graphicProps
)
{
{
if
(
v
)
if
(
v
)
result
.
apply_from
(
v
->
content
()
);
result
.
apply_from
(
v
);
}
}
return
result
;
return
result
;
}
}
graphic_format_properties
calc_graphic_properties_content
(
const
style_instance
*
styleInstance
)
graphic_format_properties
calc_graphic_properties_content
(
const
style_instance
*
styleInstance
)
{
{
std
::
vector
<
const
style_graphic
_properties
*>
graphicProps
;
std
::
vector
<
const
graphic_format
_properties
*>
graphicProps
;
while
(
styleInstance
)
while
(
styleInstance
)
{
{
if
(
const
style_content
*
content
=
styleInstance
->
content
())
if
(
const
style_content
*
content
=
styleInstance
->
content
())
if
(
const
style_graphic_properties
*
graphicProp
=
content
->
get_style
_graphic_properties
())
if
(
const
graphic_format_properties
*
graphicProp
=
content
->
get
_graphic_properties
())
graphicProps
.
push_back
(
graphicProp
);
graphicProps
.
push_back
(
graphicProp
);
styleInstance
=
styleInstance
->
parent
();
styleInstance
=
styleInstance
->
parent
();
...
@@ -110,7 +110,8 @@ graphic_format_properties calc_graphic_properties_content(const std::vector<cons
...
@@ -110,7 +110,8 @@ graphic_format_properties calc_graphic_properties_content(const std::vector<cons
graphic_format_properties
result
;
graphic_format_properties
result
;
BOOST_FOREACH
(
const
style_instance
*
inst
,
styleInstances
)
BOOST_FOREACH
(
const
style_instance
*
inst
,
styleInstances
)
{
{
result
.
apply_from
(
calc_graphic_properties_content
(
inst
));
graphic_format_properties
f
=
calc_graphic_properties_content
(
inst
);
result
.
apply_from
(
&
f
);
}
}
return
result
;
return
result
;
}
}
...
...
ASCOfficeOdfFile/src/odf/datatypes/common_attlists.h
View file @
8774035b
...
@@ -70,6 +70,10 @@
...
@@ -70,6 +70,10 @@
if
(
Other
.
A
)
\
if
(
Other
.
A
)
\
A
=
Other
.
A
;
A
=
Other
.
A
;
#define _CP_APPLY_PROP3(A) \
if
(
Other
->
A
)
\
A
=
Other
->
A
;
namespace
cpdoccore
{
namespace
cpdoccore
{
namespace
odf_types
{
namespace
odf_types
{
...
...
ASCOfficeOdfFile/src/odf/draw_frame_docx.cpp
View file @
8774035b
...
@@ -1141,17 +1141,17 @@ void draw_image::docx_convert(oox::docx_conversion_context & Context)
...
@@ -1141,17 +1141,17 @@ void draw_image::docx_convert(oox::docx_conversion_context & Context)
odf_reader
::
style_instance
*
styleInst
=
Context
.
root
()
->
odf_context
().
styleContainer
().
style_by_name
(
styleName
,
odf_types
::
style_family
::
Graphic
,
Context
.
process_headers_footers_
);
odf_reader
::
style_instance
*
styleInst
=
Context
.
root
()
->
odf_context
().
styleContainer
().
style_by_name
(
styleName
,
odf_types
::
style_family
::
Graphic
,
Context
.
process_headers_footers_
);
odf_reader
::
style_graphic
_properties
*
properties
=
NULL
;
odf_reader
::
graphic_format
_properties
*
properties
=
NULL
;
if
(
styleInst
)
properties
=
styleInst
->
content
()
->
get_
style_
graphic_properties
();
if
(
styleInst
)
properties
=
styleInst
->
content
()
->
get_graphic_properties
();
////////////////
////////////////
if
(
properties
)
if
(
properties
)
{
{
if
(
properties
->
content
().
fo_clip_
&&
drawing
->
fill
.
bitmap
)
if
(
properties
->
fo_clip_
&&
drawing
->
fill
.
bitmap
)
{
{
std
::
wstring
strRectClip
=
properties
->
content
().
fo_clip_
.
get
();
std
::
wstring
strRectClip
=
properties
->
fo_clip_
.
get
();
strRectClip
=
strRectClip
.
substr
(
5
,
strRectClip
.
length
()
-
6
);
strRectClip
=
strRectClip
.
substr
(
5
,
strRectClip
.
length
()
-
6
);
std
::
wstring
fileName
=
Context
.
root
()
->
get_folder
()
+
FILE_SEPARATOR_STR
+
href
;
std
::
wstring
fileName
=
Context
.
root
()
->
get_folder
()
+
FILE_SEPARATOR_STR
+
href
;
drawing
->
fill
.
bitmap
->
bCrop
=
parse_clipping
(
strRectClip
,
fileName
,
drawing
->
fill
.
bitmap
->
cropRect
,
NULL
/*Context.applicationFonts_*/
);
drawing
->
fill
.
bitmap
->
bCrop
=
parse_clipping
(
strRectClip
,
fileName
,
drawing
->
fill
.
bitmap
->
cropRect
,
NULL
/*Context.applicationFonts_*/
);
}
}
...
...
ASCOfficeOdfFile/src/odf/style_graphic_properties.cpp
View file @
8774035b
...
@@ -142,85 +142,104 @@ void graphic_format_properties::apply_to(std::vector<_property> & properties)
...
@@ -142,85 +142,104 @@ void graphic_format_properties::apply_to(std::vector<_property> & properties)
if
(
fo_wrap_option_
)
if
(
fo_wrap_option_
)
properties
.
push_back
(
_property
(
L"text-wrap"
,
(
int
)
fo_wrap_option_
->
get_type
()));
properties
.
push_back
(
_property
(
L"text-wrap"
,
(
int
)
fo_wrap_option_
->
get_type
()));
}
}
void
graphic_format_properties
::
apply_from
(
const
graphic_format_properties
&
Other
)
void
graphic_format_properties
::
apply_from
(
const
graphic_format_properties
*
Other
)
{
{
_CP_APPLY_PROP2
(
draw_stroke_
);
if
(
Other
==
NULL
)
return
;
_CP_APPLY_PROP2
(
draw_stroke_dash_
);
_CP_APPLY_PROP2
(
draw_marker_start_
);
_CP_APPLY_PROP3
(
draw_stroke_
);
_CP_APPLY_PROP2
(
draw_marker_end_
);
_CP_APPLY_PROP3
(
draw_stroke_dash_
);
_CP_APPLY_PROP2
(
draw_textarea_horizontal_align_
);
_CP_APPLY_PROP3
(
draw_marker_start_
);
_CP_APPLY_PROP2
(
draw_textarea_vertical_align_
);
_CP_APPLY_PROP3
(
draw_marker_end_
);
_CP_APPLY_PROP2
(
draw_auto_grow_height_
);
_CP_APPLY_PROP3
(
draw_textarea_horizontal_align_
);
_CP_APPLY_PROP2
(
draw_auto_grow_width_
);
_CP_APPLY_PROP3
(
draw_textarea_vertical_align_
);
_CP_APPLY_PROP2
(
draw_fit_to_size_
);
_CP_APPLY_PROP3
(
draw_auto_grow_height_
);
_CP_APPLY_PROP2
(
draw_fit_to_contour_
);
_CP_APPLY_PROP3
(
draw_auto_grow_width_
);
_CP_APPLY_PROP3
(
draw_fit_to_size_
);
_CP_APPLY_PROP2
(
svg_stroke_color_
);
_CP_APPLY_PROP3
(
draw_fit_to_contour_
);
_CP_APPLY_PROP2
(
svg_stroke_width_
);
_CP_APPLY_PROP2
(
svg_stroke_opacity_
);
_CP_APPLY_PROP3
(
svg_stroke_color_
);
_CP_APPLY_PROP3
(
svg_stroke_width_
);
_CP_APPLY_PROP2
(
fo_min_width_
);
_CP_APPLY_PROP3
(
svg_stroke_opacity_
);
_CP_APPLY_PROP2
(
fo_min_height_
);
_CP_APPLY_PROP2
(
fo_max_width_
);
_CP_APPLY_PROP3
(
fo_min_width_
);
_CP_APPLY_PROP2
(
fo_max_height_
);
_CP_APPLY_PROP3
(
fo_min_height_
);
_CP_APPLY_PROP2
(
fo_wrap_option_
);
_CP_APPLY_PROP3
(
fo_max_width_
);
_CP_APPLY_PROP3
(
fo_max_height_
);
_CP_APPLY_PROP2
(
style_print_content_
);
_CP_APPLY_PROP3
(
fo_wrap_option_
);
_CP_APPLY_PROP2
(
style_protect_
);
_CP_APPLY_PROP2
(
style_editable_
);
_CP_APPLY_PROP3
(
style_print_content_
);
_CP_APPLY_PROP2
(
style_wrap_
);
_CP_APPLY_PROP3
(
style_protect_
);
_CP_APPLY_PROP2
(
style_wrap_dynamic_treshold_
);
_CP_APPLY_PROP3
(
style_editable_
);
_CP_APPLY_PROP2
(
style_number_wrapped_paragraphs_
);
_CP_APPLY_PROP3
(
style_wrap_
);
_CP_APPLY_PROP2
(
style_wrap_contour_
);
_CP_APPLY_PROP3
(
style_wrap_dynamic_treshold_
);
_CP_APPLY_PROP2
(
style_wrap_contour_mode_
);
_CP_APPLY_PROP3
(
style_number_wrapped_paragraphs_
);
_CP_APPLY_PROP2
(
style_run_through_
);
_CP_APPLY_PROP3
(
style_wrap_contour_
);
_CP_APPLY_PROP2
(
style_flow_with_text_
);
_CP_APPLY_PROP3
(
style_wrap_contour_mode_
);
_CP_APPLY_PROP2
(
style_overflow_behavior_
);
_CP_APPLY_PROP3
(
style_run_through_
);
_CP_APPLY_PROP2
(
style_mirror_
);
_CP_APPLY_PROP3
(
style_flow_with_text_
);
_CP_APPLY_PROP2
(
fo_clip_
);
_CP_APPLY_PROP3
(
style_overflow_behavior_
);
_CP_APPLY_PROP2
(
draw_wrap_influence_on_position_
);
_CP_APPLY_PROP3
(
style_mirror_
);
_CP_APPLY_PROP3
(
fo_clip_
);
common_draw_fill_attlist_
.
apply_from
(
Other
.
common_draw_fill_attlist_
);
_CP_APPLY_PROP3
(
draw_wrap_influence_on_position_
);
common_draw_rel_size_attlist_
.
apply_from
(
Other
.
common_draw_rel_size_attlist_
);
common_horizontal_margin_attlist_
.
apply_from
(
Other
.
common_horizontal_margin_attlist_
);
common_draw_fill_attlist_
.
apply_from
(
Other
->
common_draw_fill_attlist_
);
common_vertical_margin_attlist_
.
apply_from
(
Other
.
common_vertical_margin_attlist_
);
common_draw_rel_size_attlist_
.
apply_from
(
Other
->
common_draw_rel_size_attlist_
);
common_margin_attlist_
.
apply_from
(
Other
.
common_margin_attlist_
);
common_horizontal_margin_attlist_
.
apply_from
(
Other
->
common_horizontal_margin_attlist_
);
common_horizontal_pos_attlist_
.
apply_from
(
Other
.
common_horizontal_pos_attlist_
);
common_vertical_margin_attlist_
.
apply_from
(
Other
->
common_vertical_margin_attlist_
);
common_horizontal_rel_attlist_
.
apply_from
(
Other
.
common_horizontal_rel_attlist_
);
common_margin_attlist_
.
apply_from
(
Other
->
common_margin_attlist_
);
common_vertical_pos_attlist_
.
apply_from
(
Other
.
common_vertical_pos_attlist_
);
common_horizontal_pos_attlist_
.
apply_from
(
Other
->
common_horizontal_pos_attlist_
);
common_vertical_rel_attlist_
.
apply_from
(
Other
.
common_vertical_rel_attlist_
);
common_horizontal_rel_attlist_
.
apply_from
(
Other
->
common_horizontal_rel_attlist_
);
common_text_anchor_attlist_
.
apply_from
(
Other
.
common_text_anchor_attlist_
);
common_vertical_pos_attlist_
.
apply_from
(
Other
->
common_vertical_pos_attlist_
);
common_border_attlist_
.
apply_from
(
Other
.
common_border_attlist_
);
common_vertical_rel_attlist_
.
apply_from
(
Other
->
common_vertical_rel_attlist_
);
common_border_line_width_attlist_
.
apply_from
(
Other
.
common_border_line_width_attlist_
);
common_text_anchor_attlist_
.
apply_from
(
Other
->
common_text_anchor_attlist_
);
common_padding_attlist_
.
apply_from
(
Other
.
common_padding_attlist_
);
common_border_attlist_
.
apply_from
(
Other
->
common_border_attlist_
);
common_shadow_attlist_
.
apply_from
(
Other
.
common_shadow_attlist_
);
common_border_line_width_attlist_
.
apply_from
(
Other
->
common_border_line_width_attlist_
);
common_background_color_attlist_
.
apply_from
(
Other
.
common_background_color_attlist_
);
common_padding_attlist_
.
apply_from
(
Other
->
common_padding_attlist_
);
common_shadow_attlist_
.
apply_from
(
Other
->
common_shadow_attlist_
);
common_background_color_attlist_
.
apply_from
(
Other
->
common_background_color_attlist_
);
_CP_APPLY_PROP
(
style_background_image_
,
Other
.
style_background_image_
);
_CP_APPLY_PROP
(
style_background_image_
,
Other
->
style_background_image_
);
}
}
// style:graphic-properties
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
const
wchar_t
*
style_graphic_properties
::
ns
=
L"style"
;
const
wchar_t
*
style_graphic_properties
::
ns
=
L"style"
;
const
wchar_t
*
style_graphic_properties
::
name
=
L"graphic-properties"
;
const
wchar_t
*
style_graphic_properties
::
name
=
L"graphic-properties"
;
void
style_graphic_properties
::
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
)
void
style_graphic_properties
::
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
)
{
{
graphic_format_properties
_
.
add_attributes
(
Attributes
);
content
_
.
add_attributes
(
Attributes
);
}
}
void
style_graphic_properties
::
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
)
void
style_graphic_properties
::
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
)
{
{
if
(
L"style"
==
Ns
&&
L"background-image"
==
Name
)
if
(
L"style"
==
Ns
&&
L"background-image"
==
Name
)
{
{
CP_CREATE_ELEMENT
(
graphic_format_properties
_
.
style_background_image_
);
CP_CREATE_ELEMENT
(
content
_
.
style_background_image_
);
}
}
//if (CP_CHECK_NAME(L"text", L"list-style")
//if (CP_CHECK_NAME(L"text", L"list-style")
// styles_.add_child_element(Reader, Ns, Name, getContext()); он тут и не нужен по сути... описание есть и в другом сместе
// styles_.add_child_element(Reader, Ns, Name, getContext()); он тут и не нужен по сути... описание есть и в другом сместе
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
const
wchar_t
*
loext_graphic_properties
::
ns
=
L"loext"
;
const
wchar_t
*
loext_graphic_properties
::
name
=
L"graphic-properties"
;
void
loext_graphic_properties
::
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
)
{
content_
.
add_attributes
(
Attributes
);
}
void
loext_graphic_properties
::
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
)
{
if
(
L"style"
==
Ns
&&
L"background-image"
==
Name
)
{
CP_CREATE_ELEMENT
(
content_
.
style_background_image_
);
}
//if (CP_CHECK_NAME(L"text", L"list-style")
// styles_.add_child_element(Reader, Ns, Name, getContext()); он тут и не нужен по сути... описание есть и в другом сместе
}
}
}
}
}
ASCOfficeOdfFile/src/odf/style_graphic_properties.h
View file @
8774035b
...
@@ -68,10 +68,9 @@ class graphic_format_properties
...
@@ -68,10 +68,9 @@ class graphic_format_properties
public:
public:
void
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
);
void
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
);
void
apply_from
(
const
graphic_format_properties
&
Other
);
void
apply_from
(
const
graphic_format_properties
*
Other
);
void
apply_to
(
std
::
vector
<
_property
>
&
properties
);
public:
void
apply_to
(
std
::
vector
<
_property
>
&
properties
);
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_min_width_
;
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_min_width_
;
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_min_height_
;
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_min_height_
;
...
@@ -138,7 +137,6 @@ public:
...
@@ -138,7 +137,6 @@ public:
};
};
/// style:graphic-properties
class
style_graphic_properties
:
public
office_element_impl
<
style_graphic_properties
>
class
style_graphic_properties
:
public
office_element_impl
<
style_graphic_properties
>
{
{
public:
public:
...
@@ -149,20 +147,34 @@ public:
...
@@ -149,20 +147,34 @@ public:
CPDOCCORE_DEFINE_VISITABLE
();
CPDOCCORE_DEFINE_VISITABLE
();
const
graphic_format_properties
&
content
()
const
{
return
graphic_format_properties_
;
}
graphic_format_properties
content_
;
private:
private:
virtual
void
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
);
virtual
void
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
);
virtual
void
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
);
virtual
void
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
);
private:
graphic_format_properties
graphic_format_properties_
;
};
};
CP_REGISTER_OFFICE_ELEMENT2
(
style_graphic_properties
);
CP_REGISTER_OFFICE_ELEMENT2
(
style_graphic_properties
);
class
loext_graphic_properties
:
public
office_element_impl
<
style_graphic_properties
>
{
public:
static
const
wchar_t
*
ns
;
static
const
wchar_t
*
name
;
static
const
xml
::
NodeType
xml_type
=
xml
::
typeElement
;
static
const
ElementType
type
=
typeStyleGraphicPropertis
;
CPDOCCORE_DEFINE_VISITABLE
();
graphic_format_properties
content_
;
private:
virtual
void
add_attributes
(
const
xml
::
attributes_wc_ptr
&
Attributes
);
virtual
void
add_child_element
(
xml
::
sax
*
Reader
,
const
std
::
wstring
&
Ns
,
const
std
::
wstring
&
Name
);
};
CP_REGISTER_OFFICE_ELEMENT2
(
loext_graphic_properties
);
}
}
}
}
...
...
ASCOfficeOdfFile/src/odf/style_paragraph_properties.h
View file @
8774035b
...
@@ -142,7 +142,6 @@ private:
...
@@ -142,7 +142,6 @@ private:
CP_REGISTER_OFFICE_ELEMENT2
(
style_tab_stops
);
CP_REGISTER_OFFICE_ELEMENT2
(
style_tab_stops
);
// style_drop_cap
class
style_drop_cap
:
public
office_element_impl
<
style_drop_cap
>
class
style_drop_cap
:
public
office_element_impl
<
style_drop_cap
>
{
{
public:
public:
...
@@ -171,7 +170,6 @@ private:
...
@@ -171,7 +170,6 @@ private:
CP_REGISTER_OFFICE_ELEMENT2
(
style_drop_cap
);
CP_REGISTER_OFFICE_ELEMENT2
(
style_drop_cap
);
/// style:background-image
class
style_background_image
:
public
office_element_impl
<
style_background_image
>
class
style_background_image
:
public
office_element_impl
<
style_background_image
>
{
{
public:
public:
...
@@ -214,85 +212,32 @@ public:
...
@@ -214,85 +212,32 @@ public:
void
xlsx_convert
(
std
::
wostream
&
strm
,
bool
in_draw
);
void
xlsx_convert
(
std
::
wostream
&
strm
,
bool
in_draw
);
// 15.5.1 fo:line-height
_CP_OPT
(
odf_types
::
line_width
)
fo_line_height_
;
// +
_CP_OPT
(
odf_types
::
line_width
)
fo_line_height_
;
// +
// 15.5.2 style:line-height-at-least
_CP_OPT
(
odf_types
::
length
)
style_line_height_at_least_
;
// +
_CP_OPT
(
odf_types
::
length
)
style_line_height_at_least_
;
// +
// 15.5.3 style:line-spacing
_CP_OPT
(
odf_types
::
length
)
style_line_spacing_
;
// +
_CP_OPT
(
odf_types
::
length
)
style_line_spacing_
;
// +
// 15.5.4 style:font-independent-line-spacing
_CP_OPT
(
bool
)
style_font_independent_line_spacing_
;
// ???
_CP_OPT
(
bool
)
style_font_independent_line_spacing_
;
// ???
// 15.5.5 fo:text-align
_CP_OPT
(
odf_types
::
text_align
)
fo_text_align_
;
// +
_CP_OPT
(
odf_types
::
text_align
)
fo_text_align_
;
// +
// 15.5.6 fo:text-align-last
_CP_OPT
(
odf_types
::
text_align
)
fo_text_align_last_
;
_CP_OPT
(
odf_types
::
text_align
)
fo_text_align_last_
;
// 15.5.7 style:justify-single-word
_CP_OPT
(
bool
)
style_justify_single_word_
;
_CP_OPT
(
bool
)
style_justify_single_word_
;
// 15.5.8 fo:keep-together
_CP_OPT
(
odf_types
::
keep_together
)
fo_keep_together_
;
// +
_CP_OPT
(
odf_types
::
keep_together
)
fo_keep_together_
;
// +
// 15.5.9 fo:widows
_CP_OPT
(
unsigned
int
)
fo_widows_
;
// +
_CP_OPT
(
unsigned
int
)
fo_widows_
;
// +
// 15.5.10 fo:orphans
_CP_OPT
(
unsigned
int
)
fo_orphans_
;
_CP_OPT
(
unsigned
int
)
fo_orphans_
;
// 15.5.11 <style:tab-stops>
office_element_ptr
style_tab_stops_
;
// +
office_element_ptr
style_tab_stops_
;
// +
// 15.5.12 style:tab-stop-distance
_CP_OPT
(
odf_types
::
length
)
style_tab_stop_distance_
;
_CP_OPT
(
odf_types
::
length
)
style_tab_stop_distance_
;
// 15.5.13 fo:hyphenation-keep
_CP_OPT
(
odf_types
::
hyphenation_keep
)
fo_hyphenation_keep_
;
_CP_OPT
(
odf_types
::
hyphenation_keep
)
fo_hyphenation_keep_
;
// 15.5.14 fo:hyphenation-ladder-count
_CP_OPT
(
odf_types
::
integer_or_nolimit
)
fo_hyphenation_ladder_count_
;
_CP_OPT
(
odf_types
::
integer_or_nolimit
)
fo_hyphenation_ladder_count_
;
// 15.5.15 <style:drop-cap>
office_element_ptr
style_drop_cap_
;
office_element_ptr
style_drop_cap_
;
// 15.5.16 style:register-true
_CP_OPT
(
bool
)
style_register_true_
;
_CP_OPT
(
bool
)
style_register_true_
;
// 15.5.17 fo:margin-left
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_left_
;
// +
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_left_
;
// +
// fo:margin-right
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_right_
;
// +
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_right_
;
// +
// 15.5.18 fo:text-indent
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_text_indent_
;
// +
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_text_indent_
;
// +
// 15.5.19 style:auto-text-indent
_CP_OPT
(
bool
)
style_auto_text_indent_
;
// ???
_CP_OPT
(
bool
)
style_auto_text_indent_
;
// ???
// 15.5.20 fo:margin-top
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_top_
;
// +
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_top_
;
// +
// fo:margin-bottom
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_bottom_
;
// +
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_bottom_
;
// +
// 15.5.21 fo:margin
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_
;
_CP_OPT
(
odf_types
::
length_or_percent
)
fo_margin_
;
// 15.5.22 fo:break-before
_CP_OPT
(
odf_types
::
fo_break
)
fo_break_before_
;
// +
_CP_OPT
(
odf_types
::
fo_break
)
fo_break_before_
;
// +
// fo:break-after
_CP_OPT
(
odf_types
::
fo_break
)
fo_break_after_
;
_CP_OPT
(
odf_types
::
fo_break
)
fo_break_after_
;
// 15.5.23 fo:background-color
_CP_OPT
(
odf_types
::
background_color
)
fo_background_color_
;
_CP_OPT
(
odf_types
::
background_color
)
fo_background_color_
;
// 15.5.24 <style:background-image>
office_element_ptr
style_background_image_
;
office_element_ptr
style_background_image_
;
_CP_OPT
(
odf_types
::
border_style
)
fo_border_
;
// +
_CP_OPT
(
odf_types
::
border_style
)
fo_border_
;
// +
...
@@ -301,7 +246,6 @@ public:
...
@@ -301,7 +246,6 @@ public:
_CP_OPT
(
odf_types
::
border_style
)
fo_border_left_
;
// +
_CP_OPT
(
odf_types
::
border_style
)
fo_border_left_
;
// +
_CP_OPT
(
odf_types
::
border_style
)
fo_border_right_
;
// +
_CP_OPT
(
odf_types
::
border_style
)
fo_border_right_
;
// +
// 15.5.26
_CP_OPT
(
odf_types
::
border_widths
)
style_border_line_width_
;
// +
_CP_OPT
(
odf_types
::
border_widths
)
style_border_line_width_
;
// +
_CP_OPT
(
odf_types
::
border_widths
)
style_border_line_width_top_
;
// +
_CP_OPT
(
odf_types
::
border_widths
)
style_border_line_width_top_
;
// +
...
@@ -327,14 +271,11 @@ public:
...
@@ -327,14 +271,11 @@ public:
_CP_OPT
(
bool
)
style_snap_to_layout_grid_
;
_CP_OPT
(
bool
)
style_snap_to_layout_grid_
;
_CP_OPT
(
unsigned
int
)
style_page_number_
;
_CP_OPT
(
unsigned
int
)
style_page_number_
;
// 15.5.40 style:background-transparency
_CP_OPT
(
odf_types
::
percent
)
style_background_transparency_
;
_CP_OPT
(
odf_types
::
percent
)
style_background_transparency_
;
//
_CP_OPT
(
bool
)
style_join_border_
;
_CP_OPT
(
bool
)
style_join_border_
;
};
};
// style_paragraph_properties
class
style_paragraph_properties
:
public
office_element_impl
<
style_paragraph_properties
>
class
style_paragraph_properties
:
public
office_element_impl
<
style_paragraph_properties
>
{
{
public:
public:
...
...
ASCOfficeOdfFile/src/odf/styles.cpp
View file @
8774035b
...
@@ -158,9 +158,15 @@ style_paragraph_properties * style_content::get_style_paragraph_properties() con
...
@@ -158,9 +158,15 @@ style_paragraph_properties * style_content::get_style_paragraph_properties() con
return
dynamic_cast
<
style_paragraph_properties
*>
(
style_paragraph_properties_
.
get
());
return
dynamic_cast
<
style_paragraph_properties
*>
(
style_paragraph_properties_
.
get
());
}
}
style_graphic_properties
*
style_content
::
get_style
_graphic_properties
()
const
graphic_format_properties
*
style_content
::
get
_graphic_properties
()
const
{
{
return
dynamic_cast
<
style_graphic_properties
*>
(
style_graphic_properties_
.
get
());
style_graphic_properties
*
style_
=
dynamic_cast
<
style_graphic_properties
*>
(
style_graphic_properties_
.
get
());
loext_graphic_properties
*
loext_
=
dynamic_cast
<
loext_graphic_properties
*>
(
style_graphic_properties_
.
get
());
if
(
style_
)
return
&
style_
->
content_
;
if
(
loext_
)
return
&
loext_
->
content_
;
return
NULL
;
}
}
style_table_properties
*
style_content
::
get_style_table_properties
()
const
style_table_properties
*
style_content
::
get_style_table_properties
()
const
{
{
...
@@ -264,7 +270,7 @@ void style_content::add_child_element( xml::sax * Reader, const std::wstring & N
...
@@ -264,7 +270,7 @@ void style_content::add_child_element( xml::sax * Reader, const std::wstring & N
{
{
CP_CREATE_ELEMENT_SIMPLE
(
style_section_properties_
);
CP_CREATE_ELEMENT_SIMPLE
(
style_section_properties_
);
}
}
else
if
CP_CHECK_NAME
(
L"style"
,
L"graphic-properties"
)
else
if
(
CP_CHECK_NAME
(
L"style"
,
L"graphic-properties"
)
||
CP_CHECK_NAME
(
L"loext"
,
L"graphic-properties"
)
)
{
{
CP_CREATE_ELEMENT_SIMPLE
(
style_graphic_properties_
);
CP_CREATE_ELEMENT_SIMPLE
(
style_graphic_properties_
);
}
}
...
...
ASCOfficeOdfFile/src/odf/styles.h
View file @
8774035b
...
@@ -70,9 +70,10 @@
...
@@ -70,9 +70,10 @@
namespace
cpdoccore
{
namespace
odf_reader
{
namespace
cpdoccore
{
namespace
odf_reader
{
class
graphic_format_properties
;
class
style_text_properties
;
class
style_text_properties
;
class
style_paragraph_properties
;
class
style_paragraph_properties
;
class
style_graphic_properties
;
class
style_section_properties
;
class
style_section_properties
;
class
style_table_cell_properties
;
class
style_table_cell_properties
;
class
style_table_row_properties
;
class
style_table_row_properties
;
...
@@ -89,9 +90,10 @@ public:
...
@@ -89,9 +90,10 @@ public:
void
docx_convert
(
oox
::
docx_conversion_context
&
Context
,
bool
in_styles
=
false
);
void
docx_convert
(
oox
::
docx_conversion_context
&
Context
,
bool
in_styles
=
false
);
void
xlsx_convert
(
oox
::
xlsx_conversion_context
&
Context
);
void
xlsx_convert
(
oox
::
xlsx_conversion_context
&
Context
);
graphic_format_properties
*
get_graphic_properties
()
const
;
style_text_properties
*
get_style_text_properties
()
const
;
style_text_properties
*
get_style_text_properties
()
const
;
style_paragraph_properties
*
get_style_paragraph_properties
()
const
;
style_paragraph_properties
*
get_style_paragraph_properties
()
const
;
style_graphic_properties
*
get_style_graphic_properties
()
const
;
style_table_properties
*
get_style_table_properties
()
const
;
style_table_properties
*
get_style_table_properties
()
const
;
style_section_properties
*
get_style_section_properties
()
const
;
style_section_properties
*
get_style_section_properties
()
const
;
style_table_cell_properties
*
get_style_table_cell_properties
()
const
;
style_table_cell_properties
*
get_style_table_cell_properties
()
const
;
...
...
ASCOfficeOdfFile/src/odf/table_pptx.cpp
View file @
8774035b
...
@@ -199,13 +199,14 @@ void table_table::pptx_convert(oox::pptx_conversion_context & Context)
...
@@ -199,13 +199,14 @@ void table_table::pptx_convert(oox::pptx_conversion_context & Context)
if
((
inst
)
&&
(
inst
->
content
()))
if
((
inst
)
&&
(
inst
->
content
()))
{
{
//table_properties
if
(
inst
->
content
()
->
get_graphic_properties
())
if
(
inst
->
content
()
->
get_style_graphic_properties
())
{
{
const
graphic_format_properties
&
style_graphic
=
inst
->
content
()
->
get_style_graphic_properties
()
->
content
();
oox
::
_oox_fill
fill
;
oox
::
_oox_fill
fill
;
Compute_GraphicFill
(
style_graphic
.
common_draw_fill_attlist_
,
style_graphic
.
style_background_image_
,
Context
.
root
()
->
odf_context
().
drawStyles
()
,
fill
);
graphic_format_properties
*
graphic_props
=
inst
->
content
()
->
get_graphic_properties
();
if
(
graphic_props
)
Compute_GraphicFill
(
graphic_props
->
common_draw_fill_attlist_
,
graphic_props
->
style_background_image_
,
Context
.
root
()
->
odf_context
().
drawStyles
(),
fill
);
if
(
fill
.
bitmap
)
if
(
fill
.
bitmap
)
{
{
...
@@ -231,9 +232,9 @@ void table_table::pptx_convert(oox::pptx_conversion_context & Context)
...
@@ -231,9 +232,9 @@ void table_table::pptx_convert(oox::pptx_conversion_context & Context)
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
std
::
wstring
table_content_
=
Context
.
get_table_context
().
tableData
().
str
();
std
::
wstring
table_content_
=
Context
.
get_table_context
().
tableData
().
str
();
if
(
table_content_
.
length
()
>
0
)
if
(
!
table_content_
.
empty
()
)
{
{
Context
.
get_slide_context
().
set_property
(
_property
(
L"table-content"
,
table_content_
));
Context
.
get_slide_context
().
set_property
(
_property
(
L"table-content"
,
table_content_
));
}
}
Context
.
get_slide_context
().
end_table
();
Context
.
get_slide_context
().
end_table
();
}
}
...
...
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