Commit c9aee26f authored by ElenaSubbotina's avatar ElenaSubbotina

.

parent 32d3c0e6
...@@ -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;
......
...@@ -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")//автофигура
{ {
......
...@@ -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");}}
} }
} }
} }
......
...@@ -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);
......
...@@ -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_;
......
...@@ -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(...)
{ {
......
...@@ -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(...)
{ {
......
...@@ -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_);
} }
} }
} }
......
...@@ -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")
{ {
......
...@@ -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);
......
...@@ -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' :
//{ //{
......
...@@ -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)
{ {
......
...@@ -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;
......
...@@ -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);
......
...@@ -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>
......
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