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
c9aee26f
Commit
c9aee26f
authored
May 01, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
32d3c0e6
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1058 additions
and
731 deletions
+1058
-731
ASCOfficeOdfFile/src/docx/oox_conversion_context.cpp
ASCOfficeOdfFile/src/docx/oox_conversion_context.cpp
+2
-1
ASCOfficeOdfFile/src/docx/oox_drawing.cpp
ASCOfficeOdfFile/src/docx/oox_drawing.cpp
+38
-23
ASCOfficeOdfFile/src/docx/xlsx_textcontext.cpp
ASCOfficeOdfFile/src/docx/xlsx_textcontext.cpp
+41
-60
ASCOfficeOdfFile/src/docx/xlsx_textcontext.h
ASCOfficeOdfFile/src/docx/xlsx_textcontext.h
+3
-4
ASCOfficeOdfFile/src/odf/draw_shapes_docx.cpp
ASCOfficeOdfFile/src/odf/draw_shapes_docx.cpp
+2
-2
ASCOfficeOdfFile/src/odf/draw_shapes_pptx.cpp
ASCOfficeOdfFile/src/odf/draw_shapes_pptx.cpp
+8
-2
ASCOfficeOdfFile/src/odf/draw_shapes_xlsx.cpp
ASCOfficeOdfFile/src/odf/draw_shapes_xlsx.cpp
+8
-2
ASCOfficeOdfFile/src/odf/math_layout_elements.cpp
ASCOfficeOdfFile/src/odf/math_layout_elements.cpp
+2
-2
ASCOfficeOdfFile/src/odf/math_token_elements.cpp
ASCOfficeOdfFile/src/odf/math_token_elements.cpp
+3
-3
ASCOfficeOdfFile/src/odf/style_text_properties.cpp
ASCOfficeOdfFile/src/odf/style_text_properties.cpp
+452
-487
ASCOfficeOdfFile/src/odf/style_text_properties.h
ASCOfficeOdfFile/src/odf/style_text_properties.h
+3
-1
ASCOfficeOdfFile/src/odf/svg_parser.cpp
ASCOfficeOdfFile/src/odf/svg_parser.cpp
+39
-0
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
+94
-32
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp
+6
-0
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.h
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.h
+2
-0
ASCOfficePPTXFile/PPTXFormat/Logic/RunProperties.h
ASCOfficePPTXFile/PPTXFormat/Logic/RunProperties.h
+353
-112
Common/DocxFormat/Source/DocxFormat/WritingElement.h
Common/DocxFormat/Source/DocxFormat/WritingElement.h
+2
-0
No files found.
ASCOfficeOdfFile/src/docx/oox_conversion_context.cpp
View file @
c9aee26f
...
@@ -144,7 +144,8 @@ void styles_context::docx_serialize_table_style(std::wostream & strm, std::wstri
...
@@ -144,7 +144,8 @@ void styles_context::docx_serialize_table_style(std::wostream & strm, std::wstri
}
}
namespace
oox
namespace
oox
{
{
math_context
::
math_context
(
odf_reader
::
fonts_container
&
fonts
,
bool
graphic
)
:
base_font_size_
(
12
),
fonts_container_
(
fonts
)
math_context
::
math_context
(
odf_reader
::
fonts_container
&
fonts
,
bool
graphic
)
:
base_font_size_
(
12
),
fonts_container_
(
fonts
)
{
{
graphRPR_
=
graphic
;
graphRPR_
=
graphic
;
...
...
ASCOfficeOdfFile/src/docx/oox_drawing.cpp
View file @
c9aee26f
...
@@ -57,9 +57,25 @@ namespace svg_path
...
@@ -57,9 +57,25 @@ namespace svg_path
{
{
CP_XML_NODE
(
val
.
command
)
CP_XML_NODE
(
val
.
command
)
{
{
for
(
size_t
i
=
0
;
i
<
val
.
points
.
size
();
i
++
)
if
(
val
.
command
==
L"a:ArcTo"
)
{
{
oox_serialize
(
CP_XML_STREAM
(),
val
.
points
[
i
]);
if
(
val
.
points
.
size
()
>
0
)
{
CP_XML_ATTR
(
L"wR"
,
(
int
)(
val
.
points
[
0
].
x
.
get
()));
CP_XML_ATTR
(
L"hR"
,
(
int
)(
val
.
points
[
0
].
y
.
get
()));
}
if
(
val
.
points
.
size
()
>
1
)
{
CP_XML_ATTR
(
L"stAng"
,
(
int
)(
val
.
points
[
1
].
x
.
get
()
*
60000
));
CP_XML_ATTR
(
L"swAng"
,
(
int
)(
val
.
points
[
1
].
y
.
get
()
*
60000
));
}
}
else
{
for
(
size_t
i
=
0
;
i
<
val
.
points
.
size
();
i
++
)
{
oox_serialize
(
CP_XML_STREAM
(),
val
.
points
[
i
]);
}
}
}
}
}
}
}
...
@@ -342,13 +358,14 @@ void _oox_drawing::serialize_bodyPr(std::wostream & strm, const std::wstring & n
...
@@ -342,13 +358,14 @@ void _oox_drawing::serialize_bodyPr(std::wostream & strm, const std::wstring & n
void
_oox_drawing
::
serialize_shape
(
std
::
wostream
&
strm
)
void
_oox_drawing
::
serialize_shape
(
std
::
wostream
&
strm
)
{
{
_CP_OPT
(
std
::
wstring
)
strVal
;
_CP_OPT
(
std
::
wstring
)
strVal
,
strPath
;
_CP_OPT
(
double
)
dVal
;
_CP_OPT
(
double
)
dVal
;
std
::
wstring
shapeType
;
std
::
wstring
shapeType
;
_CP_OPT
(
bool
)
bWordArt
;
_CP_OPT
(
bool
)
bWordArt
;
odf_reader
::
GetProperty
(
additional
,
L"wordArt"
,
bWordArt
);
odf_reader
::
GetProperty
(
additional
,
L"wordArt"
,
bWordArt
);
odf_reader
::
GetProperty
(
additional
,
L"custom_path"
,
strPath
);
if
(
sub_type
==
7
)
//custom
if
(
sub_type
==
7
)
//custom
{
{
...
@@ -373,9 +390,10 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
...
@@ -373,9 +390,10 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
if
(
bWordArt
)
sub_type
=
1
;
if
(
bWordArt
)
sub_type
=
1
;
CP_XML_WRITER
(
strm
)
CP_XML_WRITER
(
strm
)
{
{
if
(
sub_type
==
6
||
sub_type
==
8
)
if
(
(
sub_type
==
6
||
sub_type
==
8
)
&&
strPath
&&
!
strPath
->
empty
()
)
{
{
CP_XML_NODE
(
L"a:custGeom"
)
CP_XML_NODE
(
L"a:custGeom"
)
{
{
...
@@ -391,31 +409,28 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
...
@@ -391,31 +409,28 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
CP_XML_ATTR
(
L"t"
,
0
);
CP_XML_ATTR
(
L"t"
,
0
);
}
}
//<a:rect b="b" l="0" r="r" t="0"/>
//<a:rect b="b" l="0" r="r" t="0"/>
if
(
odf_reader
::
GetProperty
(
additional
,
L"custom_path"
,
strVal
))
_CP_OPT
(
int
)
w
,
h
;
{
odf_reader
::
GetProperty
(
additional
,
L"custom_path_w"
,
w
);
_CP_OPT
(
int
)
w
,
h
;
odf_reader
::
GetProperty
(
additional
,
L"custom_path_h"
,
h
);
odf_reader
::
GetProperty
(
additional
,
L"custom_path_w"
,
w
);
odf_reader
::
GetProperty
(
additional
,
L"custom_path_h"
,
h
);
CP_XML_NODE
(
L"a:pathLst"
)
CP_XML_NODE
(
L"a:pathLst"
)
{
{
CP_XML_NODE
(
L"a:path"
)
CP_XML_NODE
(
L"a:path"
)
{
{
CP_XML_ATTR
(
L"w"
,
w
?
*
w
:
cx
);
CP_XML_ATTR
(
L"w"
,
w
?
*
w
:
cx
);
CP_XML_ATTR
(
L"h"
,
h
?
*
h
:
cy
);
CP_XML_ATTR
(
L"h"
,
h
?
*
h
:
cy
);
CP_XML_STREAM
()
<<
strVal
.
get
();
CP_XML_STREAM
()
<<
*
strPath
;
}
}
}
}
}
}
}
}
}
else
else
{
{
if
(
shapeType
.
length
()
<
1
)
if
(
shapeType
.
empty
()
)
{
{
shapeType
=
L"rect"
;
shapeType
=
L"rect"
;
sub_type
=
2
;
sub_type
=
2
;
}
}
CP_XML_NODE
(
L"a:prstGeom"
)
//автофигура
CP_XML_NODE
(
L"a:prstGeom"
)
//автофигура
{
{
...
...
ASCOfficeOdfFile/src/docx/xlsx_textcontext.cpp
View file @
c9aee26f
...
@@ -317,77 +317,58 @@ void xlsx_text_context::Impl::write_rPr(std::wostream & strm)
...
@@ -317,77 +317,58 @@ void xlsx_text_context::Impl::write_rPr(std::wostream & strm)
ApplyTextProperties
(
span_style_name_
,
paragraph_style_name_
,
text_properties_
);
ApplyTextProperties
(
span_style_name_
,
paragraph_style_name_
,
text_properties_
);
_CP_OPT
(
double
)
dValFontSize
;
if
(
in_draw
)
if
(
text_properties_
.
fo_font_size_
)
dValFontSize
=
text_properties_
.
fo_font_size_
->
get_length
().
get_value
();
_CP_OPT
(
std
::
wstring
)
sValFontFamily
;
if
(
text_properties_
.
fo_font_family_
)
{
{
std
::
wstring
val
=
text_properties_
.
fo_font_family_
.
get
();
odf_reader
::
fonts_container
fonts
;
//'Arial' глючит
text_properties_
.
drawing_serialize
(
strm
,
L"a:rPr"
,
fonts
);
removeCharsFromString
(
val
,
_T
(
"'"
));
sValFontFamily
=
text_properties_
.
fo_font_family_
.
get
();
}
}
//else if (text_properties_.style_font_name_) - тут может быть отсылка к font_face)decl !!!!
else
// sValFontFamily=text_properties_.style_font_name_.get();
{
CP_XML_WRITER
(
strm
)
_CP_OPT
(
std
::
wstring
)
sValFontColor
;
if
(
text_properties_
.
fo_color_
)
sValFontColor
=
text_properties_
.
fo_color_
->
get_hex_value
();
_CP_OPT
(
int
)
iValFontWeight
;
if
(
text_properties_
.
fo_font_weight_
)
iValFontWeight
=
text_properties_
.
fo_font_weight_
->
get_type
();
_CP_OPT
(
int
)
iValFontStyle
;
if
(
text_properties_
.
fo_font_style_
)
iValFontStyle
=
text_properties_
.
fo_font_style_
->
get_type
();
CP_XML_WRITER
(
strm
)
{
if
(
in_draw
)
{
{
//oox_serialize_style_text(strm,text_properties_);
CP_XML_NODE
(
L"rPr"
)
//oox_serialize_style_text(strm,odf_reader::text_format_properties_content & properties);
CP_XML_NODE
(
L"a:rPr"
)
{
{
//стр 3197
if
(
text_properties_
.
fo_font_family_
)
if
(
dValFontSize
)
{
CP_XML_ATTR
(
L"sz"
,
(
int
)(
dValFontSize
.
get
()
*
100
));}
if
((
iValFontStyle
)
&&
(
iValFontStyle
.
get
()
>
0
))
{
CP_XML_ATTR
(
L"i"
,
"1"
);}
//"true");} Exercícios de Aprendizagem.ods
if
((
iValFontWeight
)
&&
(
iValFontWeight
.
get
()
>
0
))
{
CP_XML_ATTR
(
L"b"
,
"1"
);}
//"true");} Exercícios de Aprendizagem.ods
if
(
sValFontColor
)
{
{
CP_XML_NODE
(
L"a:solidFill"
)
{
CP_XML_NODE
(
L"a:srgbClr"
){
CP_XML_ATTR
(
L"val"
,
sValFontColor
.
get
());}}
CP_XML_NODE
(
L"rFont"
)
{
CP_XML_ATTR
(
L"val"
,
text_properties_
.
fo_font_family_
.
get
());
}
}
}
if
(
sValFontFamily
)
if
(
text_properties_
.
fo_font_size_
)
{
{
CP_XML_NODE
(
L"a:latin"
){
CP_XML_ATTR
(
L"typeface"
,
sValFontFamily
.
get
());}
CP_XML_NODE
(
L"sz"
)
}
{
CP_XML_ATTR
(
L"val"
,
(
int
)
text_properties_
.
fo_font_size_
->
get_length
().
get_value
());
}
if
(
hyperlink_hId
.
length
()
>
0
)
}
if
(
text_properties_
.
fo_color_
)
{
{
CP_XML_NODE
(
L"
a:hlinkClick "
)
CP_XML_NODE
(
L"
color"
)
{
{
CP_XML_ATTR
(
L"xmlns:r"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
);
CP_XML_ATTR
(
L"rgb"
,
text_properties_
.
fo_color_
->
get_hex_value
());
CP_XML_ATTR
(
L"r:id"
,
hyperlink_hId
);
}
}
if
(
text_properties_
.
fo_font_style_
)
{
CP_XML_NODE
(
L"i"
)
{
if
(
text_properties_
.
fo_font_style_
->
get_type
()
>
0
)
CP_XML_ATTR
(
L"val"
,
"true"
);
else
CP_XML_ATTR
(
L"val"
,
"false"
);
}
}
if
(
text_properties_
.
fo_font_weight_
)
{
CP_XML_NODE
(
L"b"
)
{
if
(
text_properties_
.
fo_font_weight_
->
get_type
()
>
0
)
CP_XML_ATTR
(
L"val"
,
"true"
);
else
CP_XML_ATTR
(
L"val"
,
"false"
);
}
}
}
}
}
}
else
{
CP_XML_NODE
(
L"rPr"
)
{
if
(
sValFontFamily
)
{
CP_XML_NODE
(
L"rFont"
)
{
CP_XML_ATTR
(
L"val"
,
sValFontFamily
.
get
());}}
if
(
dValFontSize
)
{
CP_XML_NODE
(
L"sz"
)
{
CP_XML_ATTR
(
L"val"
,
(
int
)(
dValFontSize
.
get
()));}}
if
(
sValFontColor
)
{
CP_XML_NODE
(
L"color"
)
{
CP_XML_ATTR
(
L"rgb"
,
sValFontColor
.
get
());}}
if
((
iValFontStyle
)
&&
(
iValFontStyle
.
get
()
>
0
))
{
CP_XML_NODE
(
L"i"
)
{
CP_XML_ATTR
(
L"val"
,
"true"
);}}
if
((
iValFontWeight
)
&&
(
iValFontWeight
.
get
()
>
0
))
{
CP_XML_NODE
(
L"b"
)
{
CP_XML_ATTR
(
L"val"
,
"true"
);}}
}
}
}
}
}
}
...
...
ASCOfficeOdfFile/src/docx/xlsx_textcontext.h
View file @
c9aee26f
...
@@ -54,10 +54,9 @@ class xlsx_conversion_context;
...
@@ -54,10 +54,9 @@ class xlsx_conversion_context;
class
xlsx_text_context
:
boost
::
noncopyable
class
xlsx_text_context
:
boost
::
noncopyable
{
{
public:
public:
//xlsx_text_context();
xlsx_text_context
(
odf_reader
::
styles_container
&
styles_
);
xlsx_text_context
(
odf_reader
::
styles_container
&
styles_
);
~
xlsx_text_context
();
~
xlsx_text_context
();
public:
void
set_local_styles_container
(
odf_reader
::
styles_container
*
local_styles_
);
void
set_local_styles_container
(
odf_reader
::
styles_container
*
local_styles_
);
void
set_cell_text_properties
(
odf_reader
::
text_format_properties_content
*
text_properties
);
void
set_cell_text_properties
(
odf_reader
::
text_format_properties_content
*
text_properties
);
...
...
ASCOfficeOdfFile/src/odf/draw_shapes_docx.cpp
View file @
c9aee26f
...
@@ -259,7 +259,7 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
...
@@ -259,7 +259,7 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
shape
->
sub_type_
=
sub_type_
.
get
();
shape
->
sub_type_
=
sub_type_
.
get
();
set_shape
=
true
;
set_shape
=
true
;
}
}
std
::
wstring
odf_path
;
std
::
wstring
odf_path
;
//общая часть - объединить ...
if
(
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
)
if
(
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
)
odf_path
=
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
.
get
();
odf_path
=
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
.
get
();
else
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
else
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
...
@@ -280,7 +280,7 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
...
@@ -280,7 +280,7 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
res
=
false
;
res
=
false
;
}
}
if
(
o_Polyline
.
size
()
>
1
&&
res
)
if
(
!
o_Polyline
.
empty
()
&&
res
)
{
{
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
std
::
wstringstream
output_
;
std
::
wstringstream
output_
;
...
...
ASCOfficeOdfFile/src/odf/draw_shapes_pptx.cpp
View file @
c9aee26f
...
@@ -325,7 +325,13 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
...
@@ -325,7 +325,13 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
set_shape
=
true
;
set_shape
=
true
;
}
}
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
std
::
wstring
odf_path
;
if
(
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
)
odf_path
=
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
.
get
();
else
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
odf_path
=
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
.
get
();
if
(
!
odf_path
.
empty
())
{
{
std
::
vector
<::
svg_path
::
_polyline
>
o_Polyline
;
std
::
vector
<::
svg_path
::
_polyline
>
o_Polyline
;
...
@@ -333,7 +339,7 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
...
@@ -333,7 +339,7 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
try
try
{
{
res
=
::
svg_path
::
parseSvgD
(
o_Polyline
,
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
.
get
()
,
true
);
res
=
::
svg_path
::
parseSvgD
(
o_Polyline
,
odf_path
,
true
);
}
}
catch
(...)
catch
(...)
{
{
...
...
ASCOfficeOdfFile/src/odf/draw_shapes_xlsx.cpp
View file @
c9aee26f
...
@@ -269,7 +269,13 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
...
@@ -269,7 +269,13 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
Context
.
get_drawing_context
().
start_shape
(
sub_type_
.
get
());
Context
.
get_drawing_context
().
start_shape
(
sub_type_
.
get
());
}
}
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
std
::
wstring
odf_path
;
if
(
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
)
odf_path
=
draw_enhanced_geometry_attlist_
.
drawooo_enhanced_path_
.
get
();
else
if
(
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
)
odf_path
=
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
.
get
();
if
(
!
odf_path
.
empty
())
{
{
std
::
vector
<::
svg_path
::
_polyline
>
o_Polyline
;
std
::
vector
<::
svg_path
::
_polyline
>
o_Polyline
;
...
@@ -277,7 +283,7 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
...
@@ -277,7 +283,7 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
try
try
{
{
res
=
::
svg_path
::
parseSvgD
(
o_Polyline
,
draw_enhanced_geometry_attlist_
.
draw_enhanced_path_
.
get
()
,
true
);
res
=
::
svg_path
::
parseSvgD
(
o_Polyline
,
odf_path
,
true
);
}
}
catch
(...)
catch
(...)
{
{
...
...
ASCOfficeOdfFile/src/odf/math_layout_elements.cpp
View file @
c9aee26f
...
@@ -292,7 +292,7 @@ void math_mstyle::oox_convert(oox::math_context & Context)
...
@@ -292,7 +292,7 @@ void math_mstyle::oox_convert(oox::math_context & Context)
{
{
CP_XML_NODE
(
L"m:ctrlPr"
)
CP_XML_NODE
(
L"m:ctrlPr"
)
{
{
Context
.
text_properties_
->
content
().
oox_
convert
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
Context
.
text_properties_
->
content
().
oox_
serialize
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
}
}
}
}
}
}
...
@@ -317,7 +317,7 @@ void math_mstyle::oox_convert(oox::math_context & Context)
...
@@ -317,7 +317,7 @@ void math_mstyle::oox_convert(oox::math_context & Context)
{
{
CP_XML_NODE
(
L"m:ctrlPr"
)
CP_XML_NODE
(
L"m:ctrlPr"
)
{
{
Context
.
text_properties_
->
content
().
oox_
convert
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
Context
.
text_properties_
->
content
().
oox_
serialize
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
}
}
}
}
}
}
...
...
ASCOfficeOdfFile/src/odf/math_token_elements.cpp
View file @
c9aee26f
...
@@ -114,7 +114,7 @@ void math_mi::oox_convert(oox::math_context & Context)
...
@@ -114,7 +114,7 @@ void math_mi::oox_convert(oox::math_context & Context)
}
}
}
}
Context
.
text_properties_
->
content
().
oox_
convert
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
Context
.
text_properties_
->
content
().
oox_
serialize
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
CP_XML_NODE
(
L"m:t"
)
CP_XML_NODE
(
L"m:t"
)
{
{
...
@@ -162,7 +162,7 @@ void math_mo::oox_convert(oox::math_context & Context)
...
@@ -162,7 +162,7 @@ void math_mo::oox_convert(oox::math_context & Context)
{
{
// + доп стили текста ... todoooo
// + доп стили текста ... todoooo
Context
.
text_properties_
->
content
().
oox_
convert
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
Context
.
text_properties_
->
content
().
oox_
serialize
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
CP_XML_NODE
(
L"m:t"
)
CP_XML_NODE
(
L"m:t"
)
{
{
...
@@ -203,7 +203,7 @@ void math_mn::oox_convert(oox::math_context & Context)
...
@@ -203,7 +203,7 @@ void math_mn::oox_convert(oox::math_context & Context)
{
{
// + доп стили текста ... todoooo
// + доп стили текста ... todoooo
Context
.
text_properties_
->
content
().
oox_
convert
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
Context
.
text_properties_
->
content
().
oox_
serialize
(
CP_XML_STREAM
(),
Context
.
graphRPR_
,
Context
.
fonts_container_
);
CP_XML_NODE
(
L"m:t"
)
CP_XML_NODE
(
L"m:t"
)
{
{
...
...
ASCOfficeOdfFile/src/odf/style_text_properties.cpp
View file @
c9aee26f
This diff is collapsed.
Click to expand it.
ASCOfficeOdfFile/src/odf/style_text_properties.h
View file @
c9aee26f
...
@@ -80,7 +80,9 @@ public:
...
@@ -80,7 +80,9 @@ public:
void
pptx_convert
(
oox
::
pptx_conversion_context
&
Context
);
void
pptx_convert
(
oox
::
pptx_conversion_context
&
Context
);
void
pptx_convert_as_list
(
oox
::
pptx_conversion_context
&
Context
);
void
pptx_convert_as_list
(
oox
::
pptx_conversion_context
&
Context
);
void
oox_convert
(
std
::
wostream
&
stream
,
bool
graphic
,
fonts_container
&
fonts
);
void
oox_serialize
(
std
::
wostream
&
stream
,
bool
graphic
,
fonts_container
&
fonts
);
void
docx_serialize
(
std
::
wostream
&
stream
,
fonts_container
&
fonts
);
void
drawing_serialize
(
std
::
wostream
&
stream
,
std
::
wstring
node
,
fonts_container
&
fonts
,
const
odf_reader
::
style_instance
*
current_style
=
NULL
,
std
::
wstring
hlink
=
L""
);
void
apply_from
(
const
text_format_properties_content
&
Other
);
void
apply_from
(
const
text_format_properties_content
&
Other
);
void
apply_to
(
std
::
vector
<
_property
>
&
properties
);
void
apply_to
(
std
::
vector
<
_property
>
&
properties
);
...
...
ASCOfficeOdfFile/src/odf/svg_parser.cpp
View file @
c9aee26f
...
@@ -455,6 +455,45 @@ namespace svg_path
...
@@ -455,6 +455,45 @@ namespace svg_path
}
}
}
break
;
}
break
;
case
'G'
:
{
nPos
++
;
skipSpaces
(
nPos
,
rSvgDStatement
,
nLen
);
while
(
nPos
<
nLen
&&
isOnNumberChar
(
rSvgDStatement
,
nPos
))
{
double
nX
,
nY
;
double
A1
,
A2
;
if
(
!
importDoubleAndSpaces
(
nX
,
nPos
,
rSvgDStatement
,
nLen
))
return
false
;
if
(
!
importDoubleAndSpaces
(
nY
,
nPos
,
rSvgDStatement
,
nLen
))
return
false
;
if
(
!
importDoubleAndSpaces
(
A1
,
nPos
,
rSvgDStatement
,
nLen
))
return
false
;
if
(
!
importDoubleAndSpaces
(
A2
,
nPos
,
rSvgDStatement
,
nLen
))
return
false
;
if
(
bRelative
)
{
nX
+=
nLastX
;
nY
+=
nLastY
;
}
aCurrPoly
.
command
=
L"a:ArcTo"
;
// append curved edge
aCurrPoly
.
points
.
push_back
(
_point
(
nX
,
nY
));
aCurrPoly
.
points
.
push_back
(
_point
(
A1
,
A2
));
Polyline
.
push_back
(
aCurrPoly
);
aCurrPoly
.
points
.
clear
();
// set last position
nLastX
=
nX
;
nLastY
=
nY
;
//keep control point
nLastControlX
=
nX
;
nLastControlY
=
nY
;
}
}
break
;
// #100617# quadratic beziers are imported as cubic ones
// #100617# quadratic beziers are imported as cubic ones
//case 'q' :
//case 'q' :
//{
//{
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
View file @
c9aee26f
...
@@ -1528,13 +1528,13 @@ void OoxConverter::convert(PPTX::Logic::TextParagraphPr *oox_paragraph_pr , odf_
...
@@ -1528,13 +1528,13 @@ void OoxConverter::convert(PPTX::Logic::TextParagraphPr *oox_paragraph_pr , odf_
{
{
paragraph_properties
->
content_
.
fo_text_indent_
=
odf_types
::
length_or_percent
(
odf_types
::
length
(
oox_paragraph_pr
->
indent
.
get
()
/
12700.
,
odf_types
::
length
::
pt
));
paragraph_properties
->
content_
.
fo_text_indent_
=
odf_types
::
length_or_percent
(
odf_types
::
length
(
oox_paragraph_pr
->
indent
.
get
()
/
12700.
,
odf_types
::
length
::
pt
));
}
}
if
(
oox_paragraph_pr
->
rtl
.
IsInit
())
if
(
oox_paragraph_pr
->
rtl
.
IsInit
()
&&
*
oox_paragraph_pr
->
rtl
)
{
{
paragraph_properties
->
content_
.
style_writing_mode_
=
odf_types
::
writing_mode
(
odf_types
::
writing_mode
::
RlTb
);
}
}
}
}
//nullable<SimpleTypes::CDecimalNumber<> > m_oLvl;
//defTabSz;
//nullable<SimpleTypes::CCoordinate32<> > m_oDefTabSz;
//fontAlgn;
//nullable<SimpleTypes::CTextFontAlignType<>> m_oFontAlgn;
if
(
oox_paragraph_pr
->
defRPr
.
IsInit
())
if
(
oox_paragraph_pr
->
defRPr
.
IsInit
())
{
{
...
@@ -1571,7 +1571,7 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
...
@@ -1571,7 +1571,7 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
//------------------------------------------------------
//------------------------------------------------------
odf_writer
::
odf_drawing_context
*
drawing
=
odf_context
()
->
drawing_context
();
odf_writer
::
odf_drawing_context
*
drawing
=
odf_context
()
->
drawing_context
();
if
(
drawing
)
//from styles
impossible(
if
(
drawing
)
//from styles
drawing impossible( ... todoooo ???
{
{
if
((
oox_run_pr
->
Fill
.
is
<
PPTX
::
Logic
::
GradFill
>
())
||
if
((
oox_run_pr
->
Fill
.
is
<
PPTX
::
Logic
::
GradFill
>
())
||
((
oox_run_pr
->
ln
.
IsInit
())
&&
(
oox_run_pr
->
ln
->
Fill
.
is_init
()
&&
oox_run_pr
->
ln
->
Fill
.
getType
()
!=
OOX
::
et_a_noFill
)))
((
oox_run_pr
->
ln
.
IsInit
())
&&
(
oox_run_pr
->
ln
->
Fill
.
is_init
()
&&
oox_run_pr
->
ln
->
Fill
.
getType
()
!=
OOX
::
et_a_noFill
)))
...
@@ -1709,37 +1709,99 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
...
@@ -1709,37 +1709,99 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
{
{
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Solid
);
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Solid
);
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Single
);
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Single
);
switch
(
oox_run_pr
->
u
->
GetBYTECode
())
switch
(
oox_run_pr
->
u
->
GetBYTECode
())
{
{
case
SimpleTypes
:
:
underlineNone
:
case
12
:
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
None
);
break
;
text_properties
->
content_
.
style_text_underline_style_
=
boost
::
none
;
case
SimpleTypes
:
:
underlineDash
:
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
None
);
break
;
case
SimpleTypes
:
:
underlineDashedHeavy
:
case
0
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Dash
);
break
;
case
1
:
case
SimpleTypes
:
:
underlineDotDash
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Dash
);
break
;
case
SimpleTypes
:
:
underlineDashDotHeavy
:
case
5
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
DotDash
);
break
;
case
6
:
case
SimpleTypes
:
:
underlineDashLong
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
DotDash
);
break
;
case
SimpleTypes
:
:
underlineDashLongHeavy
:
case
2
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
LongDash
);
break
;
case
3
:
case
SimpleTypes
:
:
underlineDotDotDash
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
LongDash
);
break
;
case
SimpleTypes
:
:
underlineDashDotDotHeavy
:
case
7
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
DotDotDash
);
break
;
case
8
:
case
SimpleTypes
:
:
underlineDotted
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
DotDotDash
);
break
;
case
SimpleTypes
:
:
underlineDottedHeavy
:
case
9
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Dotted
);
break
;
case
10
:
case
SimpleTypes
:
:
underlineWave
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Dotted
);
break
;
case
SimpleTypes
:
:
underlineWavyHeavy
:
case
14
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Wave
);
break
;
case
16
:
case
SimpleTypes
:
:
underlineDouble
:
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Wave
);
break
;
case
SimpleTypes
:
:
underlineThick
:
case
4
:
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Double
);
break
;
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Double
);
break
;
case
SimpleTypes
:
:
underlineWavyDouble
:
case
15
:
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Double
);
text_properties
->
content_
.
style_text_underline_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Double
);
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Wave
);
break
;
text_properties
->
content_
.
style_text_underline_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Wave
);
break
;
}
PPTX
::
Logic
::
UniFill
*
fill
=
NULL
;
if
(
oox_run_pr
->
uFillTx
.
IsInit
())
fill
=
&
oox_run_pr
->
uFillTx
->
Fill
;
else
if
(
oox_run_pr
->
uFill
.
IsInit
())
fill
=
&
oox_run_pr
->
uFill
->
Fill
;
if
(
fill
&&
fill
->
is
<
PPTX
::
Logic
::
SolidFill
>
()
)
{
PPTX
::
Logic
::
SolidFill
&
solid
=
fill
->
as
<
PPTX
::
Logic
::
SolidFill
>
();
_CP_OPT
(
double
)
opacityText
;
std
::
wstring
hexColorText
;
convert
(
&
solid
.
Color
,
hexColorText
,
opacityText
);
if
(
!
hexColorText
.
empty
())
{
text_properties
->
content_
.
style_text_underline_color_
=
odf_types
::
color
(
hexColorText
);
}
}
}
}
}
if
(
oox_run_pr
->
highlight
.
IsInit
())
{
_CP_OPT
(
double
)
opacityText
;
std
::
wstring
hexColorText
;
convert
(
&
oox_run_pr
->
highlight
->
Color
,
hexColorText
,
opacityText
);
text_properties
->
content_
.
fo_background_color_
=
odf_types
::
color
(
hexColorText
);
}
if
(
oox_run_pr
->
strike
.
IsInit
())
{
switch
(
oox_run_pr
->
strike
->
GetBYTECode
())
{
case
0
:
text_properties
->
content_
.
style_text_line_through_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Solid
);
text_properties
->
content_
.
style_text_line_through_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Double
);
break
;
case
1
:
text_properties
->
content_
.
style_text_line_through_style_
=
boost
::
none
;
text_properties
->
content_
.
style_text_line_through_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
None
);
break
;
case
2
:
text_properties
->
content_
.
style_text_line_through_style_
=
odf_types
::
line_style
(
odf_types
::
line_style
::
Solid
);
text_properties
->
content_
.
style_text_line_through_type_
=
odf_types
::
line_type
(
odf_types
::
line_type
::
Single
);
break
;
}
}
if
(
oox_run_pr
->
baseline
.
IsInit
())
{
text_properties
->
content_
.
style_text_position_
=
odf_types
::
text_position
(
*
oox_run_pr
->
baseline
/
1000.
);
}
if
(
oox_run_pr
->
cap
.
IsInit
())
{
switch
(
oox_run_pr
->
cap
->
GetBYTECode
())
{
case
0
:
text_properties
->
content_
.
fo_text_transform_
=
odf_types
::
text_transform
(
odf_types
::
text_transform
::
Uppercase
);
break
;
case
1
:
text_properties
->
content_
.
fo_font_variant_
=
odf_types
::
font_variant
(
odf_types
::
font_variant
::
SmallCaps
);
break
;
case
2
:
text_properties
->
content_
.
fo_font_variant_
=
odf_types
::
font_variant
(
odf_types
::
font_variant
::
Normal
);
break
;
}
}
if
(
oox_run_pr
->
normalizeH
.
IsInit
()
&&
*
oox_run_pr
->
normalizeH
)
{
text_properties
->
content_
.
fo_text_transform_
=
odf_types
::
text_transform
(
odf_types
::
text_transform
::
Capitalize
);
}
}
}
void
OoxConverter
::
convert
(
PPTX
::
Logic
::
Run
*
oox_run
)
void
OoxConverter
::
convert
(
PPTX
::
Logic
::
Run
*
oox_run
)
{
{
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp
View file @
c9aee26f
...
@@ -347,12 +347,18 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
...
@@ -347,12 +347,18 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
}
}
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
convert
(
oox_sheet
->
m_oSheetViews
.
GetPointer
());
convert
(
oox_sheet
->
m_oSheetViews
.
GetPointer
());
convert
(
oox_sheet
->
m_oHeaderFooter
.
GetPointer
());
convert
(
oox_sheet
->
m_oPageSetup
.
GetPointer
());
convert
(
oox_sheet
->
m_oPageSetup
.
GetPointer
());
convert
(
oox_sheet
->
m_oPageMargins
.
GetPointer
());
convert
(
oox_sheet
->
m_oPageMargins
.
GetPointer
());
convert
(
oox_sheet
->
m_oPicture
.
GetPointer
());
convert
(
oox_sheet
->
m_oPicture
.
GetPointer
());
xlsx_current_container
=
old_container
;
xlsx_current_container
=
old_container
;
}
}
void
XlsxConverter
::
convert
(
OOX
::
Spreadsheet
::
CHeaderFooter
*
oox_header_footer
)
{
if
(
!
oox_header_footer
)
return
;
}
void
XlsxConverter
::
convert
(
OOX
::
Spreadsheet
::
CPictureWorksheet
*
oox_background
)
void
XlsxConverter
::
convert
(
OOX
::
Spreadsheet
::
CPictureWorksheet
*
oox_background
)
{
{
if
(
!
oox_background
)
return
;
if
(
!
oox_background
)
return
;
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.h
View file @
c9aee26f
...
@@ -89,6 +89,7 @@ namespace OOX
...
@@ -89,6 +89,7 @@ namespace OOX
class
CSi
;
class
CSi
;
class
CWorkbookView
;
class
CWorkbookView
;
class
CPictureWorksheet
;
class
CPictureWorksheet
;
class
CHeaderFooter
;
}
}
}
}
...
@@ -153,6 +154,7 @@ namespace Oox2Odf
...
@@ -153,6 +154,7 @@ namespace Oox2Odf
void
convert
(
OOX
::
Spreadsheet
::
CDefinedName
*
oox_defined
);
void
convert
(
OOX
::
Spreadsheet
::
CDefinedName
*
oox_defined
);
void
convert
(
OOX
::
Spreadsheet
::
CTable
*
oox_table_part
);
void
convert
(
OOX
::
Spreadsheet
::
CTable
*
oox_table_part
);
void
convert
(
OOX
::
Spreadsheet
::
CPictureWorksheet
*
oox_background
);
void
convert
(
OOX
::
Spreadsheet
::
CPictureWorksheet
*
oox_background
);
void
convert
(
OOX
::
Spreadsheet
::
CHeaderFooter
*
oox_header_footer
);
void
convert
(
OOX
::
Spreadsheet
::
CCol
*
oox_column
);
void
convert
(
OOX
::
Spreadsheet
::
CCol
*
oox_column
);
void
convert
(
OOX
::
Spreadsheet
::
CRow
*
oox_row
);
void
convert
(
OOX
::
Spreadsheet
::
CRow
*
oox_row
);
...
...
ASCOfficePPTXFile/PPTXFormat/Logic/RunProperties.h
View file @
c9aee26f
This diff is collapsed.
Click to expand it.
Common/DocxFormat/Source/DocxFormat/WritingElement.h
View file @
c9aee26f
...
@@ -330,6 +330,8 @@ namespace OOX
...
@@ -330,6 +330,8 @@ namespace OOX
et_a_txDef
,
// <a:txDef>
et_a_txDef
,
// <a:txDef>
et_a_up
,
// <a:up>
et_a_up
,
// <a:up>
et_a_xfrm
,
// <a:xfrm>
et_a_xfrm
,
// <a:xfrm>
et_a_uFillTx
,
et_a_highlight
,
et_a_groupSpPr
,
// <a:groupSpPr>
et_a_groupSpPr
,
// <a:groupSpPr>
et_a_Shape
,
// <a:sp>
et_a_Shape
,
// <a:sp>
...
...
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