Commit 53cf16b3 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

(1.2.0.64): ASCOfficeOdfFileW


git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@56551 954022d7-b5bf-4e40-9824-e11837661b57
parent 7c4adc6c
...@@ -81,6 +81,7 @@ public: ...@@ -81,6 +81,7 @@ public:
std::vector<odf_axis_state> axis_; std::vector<odf_axis_state> axis_;
std::vector<office_element_ptr> group_series_; std::vector<office_element_ptr> group_series_;
std::vector<unsigned int> axis_group_series_; std::vector<unsigned int> axis_group_series_;
std::vector<std::wstring> data_cell_ranges_;
std::vector<odf_chart_level_state> current_level_; // std::vector<odf_chart_level_state> current_level_; //
std::vector<odf_chart_state> chart_list_; // .. "" std::vector<odf_chart_state> chart_list_; // .. ""
...@@ -124,6 +125,7 @@ void odf_chart_context::Impl::clear_current() ...@@ -124,6 +125,7 @@ void odf_chart_context::Impl::clear_current()
categories_.clear(); categories_.clear();
axis_.clear(); axis_.clear();
group_series_.clear(); group_series_.clear();
data_cell_ranges_.clear();
current_series_count_ = 0; current_series_count_ = 0;
} }
...@@ -687,7 +689,7 @@ void odf_chart_context::start_plot_area() ...@@ -687,7 +689,7 @@ void odf_chart_context::start_plot_area()
chart_plot_area *plot_area = dynamic_cast<chart_plot_area*>(chart_elm.get()); chart_plot_area *plot_area = dynamic_cast<chart_plot_area*>(chart_elm.get());
if (plot_area == NULL)return; if (plot_area == NULL)return;
//plot_area->chart_plot_area_attlist_.chart_data_source_has_labels_ = L"both"; plot_area->chart_plot_area_attlist_.chart_data_source_has_labels_ = L"both";
////////// //////////
impl_->styles_context_->create_style(L"",style_family::Chart, true, false, -1); impl_->styles_context_->create_style(L"",style_family::Chart, true, false, -1);
...@@ -706,7 +708,27 @@ void odf_chart_context::start_plot_area() ...@@ -706,7 +708,27 @@ void odf_chart_context::start_plot_area()
if (!impl_->current_level_.back().chart_properties_) return; if (!impl_->current_level_.back().chart_properties_) return;
impl_->current_level_.back().chart_properties_->content().chart_treat_empty_cells_ = true; impl_->current_level_.back().chart_properties_->content().chart_treat_empty_cells_ = true;
}
void odf_chart_context::end_plot_area()
{
if (impl_->axis_.size() < 1 && impl_->categories_.size() > 0)
{
start_axis();
set_axis_dimension(1);
//set_axis_type();
end_element();
}
chart_plot_area *plot_area = dynamic_cast<chart_plot_area*>(impl_->current_level_.back().elm.get());
if (plot_area)
{
std::wstring cell_range;
for (long i=0; i< impl_->data_cell_ranges_.size();i++)
{
cell_range = cell_range + impl_->data_cell_ranges_[i] + L" ";
}
plot_area->chart_plot_area_attlist_.table_cell_range_address_ = cell_range;
}
end_element();
} }
void odf_chart_context::start_text() void odf_chart_context::start_text()
{ {
...@@ -1108,6 +1130,7 @@ void odf_chart_context::start_element(office_element_ptr & elm, office_element_p ...@@ -1108,6 +1130,7 @@ void odf_chart_context::start_element(office_element_ptr & elm, office_element_p
impl_->current_level_.push_back(level_state);// current_chart_properties ???? impl_->current_level_.push_back(level_state);// current_chart_properties ????
} }
void odf_chart_context::end_element() void odf_chart_context::end_element()
{ {
// //
...@@ -1142,6 +1165,7 @@ void odf_chart_context::end_chart() ...@@ -1142,6 +1165,7 @@ void odf_chart_context::end_chart()
end_element(); end_element();
/////////////////// ///////////////////
for (long i=0; i< impl_->axis_.size() && impl_->categories_.size() > 0; i++) for (long i=0; i< impl_->axis_.size() && impl_->categories_.size() > 0; i++)
{ {
if (impl_->axis_[i].elm == NULL)continue; if (impl_->axis_[i].elm == NULL)continue;
...@@ -1174,6 +1198,7 @@ void odf_chart_context::set_series_value_formula(std::wstring oox_formula) ...@@ -1174,6 +1198,7 @@ void odf_chart_context::set_series_value_formula(std::wstring oox_formula)
series->chart_series_attlist_.chart_values_cell_range_address_ = odfFormula; series->chart_series_attlist_.chart_values_cell_range_address_ = odfFormula;
impl_->data_cell_ranges_.push_back(odfFormula);
impl_->current_data_points_series_count_ = formulas_converter.get_count_value_points(oox_formula); impl_->current_data_points_series_count_ = formulas_converter.get_count_value_points(oox_formula);
} }
void odf_chart_context::set_series_label_formula(std::wstring oox_formula) void odf_chart_context::set_series_label_formula(std::wstring oox_formula)
...@@ -1183,6 +1208,7 @@ void odf_chart_context::set_series_label_formula(std::wstring oox_formula) ...@@ -1183,6 +1208,7 @@ void odf_chart_context::set_series_label_formula(std::wstring oox_formula)
chart_series *series = dynamic_cast<chart_series*>(impl_->current_chart_state_.elements_.back().elm.get()); chart_series *series = dynamic_cast<chart_series*>(impl_->current_chart_state_.elements_.back().elm.get());
if (series == NULL)return; if (series == NULL)return;
impl_->data_cell_ranges_.push_back(odfFormula);
series->chart_series_attlist_.chart_label_cell_address_ = odfFormula; series->chart_series_attlist_.chart_label_cell_address_ = odfFormula;
} }
...@@ -1190,6 +1216,7 @@ void odf_chart_context::set_category_axis_formula(std::wstring oox_formula,int t ...@@ -1190,6 +1216,7 @@ void odf_chart_context::set_category_axis_formula(std::wstring oox_formula,int t
{ {
std::wstring odfFormula = formulas_converter.convert_chart_distance(oox_formula); std::wstring odfFormula = formulas_converter.convert_chart_distance(oox_formula);
impl_->data_cell_ranges_.push_back(odfFormula);
impl_->categories_.push_back(std::pair<std::wstring,int>(odfFormula,type)); impl_->categories_.push_back(std::pair<std::wstring,int>(odfFormula,type));
} }
......
...@@ -47,6 +47,9 @@ public: ...@@ -47,6 +47,9 @@ public:
void set_marker_size(int size); void set_marker_size(int size);
void set_marker_type(int type); void set_marker_type(int type);
void start_plot_area();
void end_plot_area();
void start_group_series(); void start_group_series();
void add_axis_group_series(unsigned int id); void add_axis_group_series(unsigned int id);
void start_series(std::wstring type); void start_series(std::wstring type);
...@@ -82,7 +85,6 @@ public: ...@@ -82,7 +85,6 @@ public:
void set_axis_min(double val); void set_axis_min(double val);
void start_title(); void start_title();
void start_grid(int type); void start_grid(int type);
void start_plot_area();
void start_legend(); void start_legend();
void start_floor(); void start_floor();
void start_wall(); void start_wall();
......
...@@ -16,7 +16,7 @@ namespace odf { ...@@ -16,7 +16,7 @@ namespace odf {
////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////
odf_conversion_context::odf_conversion_context(package::odf_document * outputDocument) : chart_context_ (this) odf_conversion_context::odf_conversion_context(package::odf_document * outputDocument) : chart_context_ (this), page_layout_context_(this)
{ {
output_document_ = outputDocument; output_document_ = outputDocument;
...@@ -30,6 +30,11 @@ odf_style_context* odf_conversion_context::styles_context() ...@@ -30,6 +30,11 @@ odf_style_context* odf_conversion_context::styles_context()
else else
return NULL; return NULL;
} }
odf_page_layout_context* odf_conversion_context::page_layout_context()
{
return &page_layout_context_;
}
odf_chart_context* odf_conversion_context::chart_context() odf_chart_context* odf_conversion_context::chart_context()
{ {
return &chart_context_; return &chart_context_;
......
...@@ -50,6 +50,8 @@ public: ...@@ -50,6 +50,8 @@ public:
odf_chart_context * chart_context(); odf_chart_context * chart_context();
odf_style_context * styles_context(); odf_style_context * styles_context();
odf_page_layout_context * page_layout_context();
odf_number_styles_context * numbers_styles_context(); odf_number_styles_context * numbers_styles_context();
_mediaitems * mediaitems(); _mediaitems * mediaitems();
...@@ -69,11 +71,13 @@ private: ...@@ -69,11 +71,13 @@ private:
std::vector<_object> objects_;//"0" = root std::vector<_object> objects_;//"0" = root
odf_chart_context chart_context_; odf_chart_context chart_context_;
odf_page_layout_context page_layout_context_;
void process_styles(_object & object, bool isRoot); void process_styles(_object & object, bool isRoot);
int current_object_; int current_object_;
//page_layout_container & pageLayoutContainer() { return page_layout_container_; } //page_layout_container & pageLayoutContainer() { return page_layout_container_; }
//fonts_container & fontContainer() { return fonts_container_; } //fonts_container & fontContainer() { return fonts_container_; }
//list_style_container & listStyleContainer() { return list_style_container_; } //list_style_container & listStyleContainer() { return list_style_container_; }
......
...@@ -14,16 +14,13 @@ ...@@ -14,16 +14,13 @@
namespace cpdoccore { namespace cpdoccore {
namespace odf { namespace odf {
odf_page_layout_context::odf_page_layout_context() odf_page_layout_context::odf_page_layout_context(odf_conversion_context * Context)
{
}
void odf_page_layout_context::set_odf_context(odf_conversion_context * Context)
{ {
odf_context_ = Context; odf_context_ = Context;
style_context_ = Context->styles_context(); style_context_ = Context->styles_context();
} }
odf_layout_state & odf_page_layout_context::last_layout() odf_layout_state & odf_page_layout_context::last_layout()
{ {
if (layout_state_list_.size() >0) if (layout_state_list_.size() >0)
...@@ -47,16 +44,26 @@ void odf_page_layout_context::create_master_page(std::wstring oox_name) ...@@ -47,16 +44,26 @@ void odf_page_layout_context::create_master_page(std::wstring oox_name)
style_family family = style_family::MasterPage; style_family family = style_family::MasterPage;
create_element(L"style", L"master-page", elm, odf_context_); create_element(L"style", L"master-page", elm, odf_context_);
if (odf_name.length() <1)odf_name = style_context_->find_free_name(style_family::MasterPage);
if (!elm) return; if (!elm) return;
style_context_->add_master_style(elm); style_context_->add_master_style(elm);
master_state_list_.push_back( odf_master_state(elm) ); master_state_list_.push_back( odf_master_state(elm) );
/////////////////////////////////////// ///////////////////////////////////////
if (odf_name.length() <1)odf_name =L"MasterPage" + boost::lexical_cast<std::wstring>(master_state_list_.size());
master_state_list_.back().set_name(odf_name); master_state_list_.back().set_name(odf_name);
/////////////////////////
//default layout
create_layout_page();
master_state_list_.back().set_layout_name(layout_state_list_.back().get_name());
}
void odf_page_layout_context::set_styles_context(odf_style_context * Context)
{
style_context_ = Context;
} }
void odf_page_layout_context::create_layout_page() void odf_page_layout_context::create_layout_page()
...@@ -76,9 +83,54 @@ void odf_page_layout_context::create_layout_page() ...@@ -76,9 +83,54 @@ void odf_page_layout_context::create_layout_page()
/////////////////////////////////////// ///////////////////////////////////////
layout_state_list_.back().set_name(odf_name); layout_state_list_.back().set_name(odf_name);
}
void odf_page_layout_context::set_page_margin(_CP_OPT(double) top, _CP_OPT(double) left, _CP_OPT(double) bottom, _CP_OPT(double) right, _CP_OPT(double) header, _CP_OPT(double) footer)
{
if (layout_state_list_.size() < 1) return;
style_page_layout_properties * props = layout_state_list_.back().get_properties();
if (props == NULL)
{
office_element_ptr elm;
create_element(L"style", L"page-layout-properties", elm, odf_context_);
layout_state_list_.back().add_child(elm, office_element_ptr(),L"");
props = layout_state_list_.back().get_properties();
}
if (!props)return;
if (top)
props->style_page_layout_properties_attlist_.common_vertical_margin_attlist_.fo_margin_top_ =
length(length(*top,length::inch).get_value_unit(length::cm),length::cm);
if (bottom)
props->style_page_layout_properties_attlist_.common_vertical_margin_attlist_.fo_margin_bottom_=
length(length(*bottom,length::inch).get_value_unit(length::cm),length::cm);
if (left)
props->style_page_layout_properties_attlist_.common_horizontal_margin_attlist_.fo_margin_left_ =
length(length(*left,length::inch).get_value_unit(length::cm),length::cm);
if (right)
props->style_page_layout_properties_attlist_.common_horizontal_margin_attlist_.fo_margin_right_ =
length(length(*right,length::inch).get_value_unit(length::cm),length::cm);
} }
void odf_page_layout_context::set_page_orientation(int type)
{
if (layout_state_list_.size() < 1) return;
style_page_layout_properties * props = layout_state_list_.back().get_properties();
if (props == NULL)
{
office_element_ptr elm;
create_element(L"style", L"page-layout-properties", elm, odf_context_);
layout_state_list_.back().add_child(elm, office_element_ptr(),L"");
props = layout_state_list_.back().get_properties();
}
if (!props)return;
if (type == 2)
props->style_page_layout_properties_attlist_.style_print_orientation_ = L"landscape";
else
props->style_page_layout_properties_attlist_.style_print_orientation_ = L"portrait";
}
} }
} }
\ No newline at end of file
...@@ -20,17 +20,17 @@ typedef shared_ptr<odf_page_layout_context>::Type odf_page_layout_context_ptr; ...@@ -20,17 +20,17 @@ typedef shared_ptr<odf_page_layout_context>::Type odf_page_layout_context_ptr;
class odf_page_layout_context class odf_page_layout_context
{ {
public: public:
odf_page_layout_context(); odf_page_layout_context(odf_conversion_context * Context);
void set_odf_context (odf_conversion_context * Context); void set_styles_context (odf_style_context * Context);
void set_style_context (odf_style_context * Context);
void create_master_page(std::wstring oox_name); void create_master_page(std::wstring oox_name);
void create_layout_page(); void create_layout_page();
odf_layout_state & last_layout(); odf_layout_state & last_layout();
odf_master_state & last_master(); odf_master_state & last_master();
void set_page_margin(_CP_OPT(double) top, _CP_OPT(double) left, _CP_OPT(double) bottom, _CP_OPT(double) right, _CP_OPT(double) header, _CP_OPT(double) footer);
void set_page_orientation(int type);
private: private:
......
...@@ -66,6 +66,8 @@ odf_layout_state::odf_layout_state(office_element_ptr & layout_elm ) ...@@ -66,6 +66,8 @@ odf_layout_state::odf_layout_state(office_element_ptr & layout_elm )
void odf_layout_state::add_child(office_element_ptr & child_elm, office_element_ptr style_elm, std::wstring style_name ) void odf_layout_state::add_child(office_element_ptr & child_elm, office_element_ptr style_elm, std::wstring style_name )
{ {
if (current_level_.size() < 1) return;
int level =current_level_.size(); int level =current_level_.size();
odf_element_state state = {child_elm, style_name, style_elm,level}; odf_element_state state = {child_elm, style_name, style_elm,level};
...@@ -88,5 +90,19 @@ std::wstring odf_layout_state::get_name() ...@@ -88,5 +90,19 @@ std::wstring odf_layout_state::get_name()
return style_->style_page_layout_attlist_.style_name_.get_value_or(L""); return style_->style_page_layout_attlist_.style_name_.get_value_or(L"");
} }
style_page_layout_properties *odf_layout_state::get_properties()
{
style_page_layout_properties *result=NULL;
for (long i= 1; i<elements_.size(); i++)//"0" - root
{
result = dynamic_cast<style_page_layout_properties *>(elements_[i].elm.get());
if (result) return result;
}
return NULL;
}
} }
} }
\ No newline at end of file
...@@ -13,6 +13,7 @@ namespace odf { ...@@ -13,6 +13,7 @@ namespace odf {
class odf_conversion_context; class odf_conversion_context;
class odf_style_context; class odf_style_context;
class odf_page_layout_context; class odf_page_layout_context;
class style_page_layout_properties;
struct odf_element_state struct odf_element_state
{ {
...@@ -36,7 +37,6 @@ public: ...@@ -36,7 +37,6 @@ public:
void set_layout_name(std::wstring & name); void set_layout_name(std::wstring & name);
private: private:
std::wstring style_oox_name_; std::wstring style_oox_name_;
...@@ -56,15 +56,13 @@ public: ...@@ -56,15 +56,13 @@ public:
void set_name(std::wstring & name); void set_name(std::wstring & name);
std::wstring get_name(); std::wstring get_name();
style_page_layout_properties * get_properties();// ...
private: private:
std::wstring style_oox_name_; std::wstring style_oox_name_;
std::vector<office_element_ptr> current_level_; std::vector<office_element_ptr> current_level_;
std::vector<odf_element_state> elements_; std::vector<odf_element_state> elements_;
friend class odf_page_layout_context; friend class odf_page_layout_context;
}; };
......
...@@ -58,7 +58,6 @@ public: ...@@ -58,7 +58,6 @@ public:
private: private:
odf_number_styles_context number_styles_context_; odf_number_styles_context number_styles_context_;
odf_conversion_context * odf_context_; odf_conversion_context * odf_context_;
std::vector<odf_style_state> style_state_list_; std::vector<odf_style_state> style_state_list_;
......
...@@ -37,7 +37,7 @@ void calculate_size_font_symbols(_font_metrix & metrix) ...@@ -37,7 +37,7 @@ void calculate_size_font_symbols(_font_metrix & metrix)
} }
} }
ods_conversion_context::ods_conversion_context(package::odf_document * outputDocument) ods_conversion_context::ods_conversion_context(package::odf_document * outputDocument)
: odf_conversion_context(outputDocument), table_context_(*this), current_text_context_(NULL) : odf_conversion_context(outputDocument), table_context_(*this), current_text_context_(NULL), page_layout_context_(this)
{ {
font_metrix_ = _font_metrix(); font_metrix_ = _font_metrix();
} }
...@@ -81,10 +81,14 @@ void ods_conversion_context::add_defined_expression(std::wstring & name,std::wst ...@@ -81,10 +81,14 @@ void ods_conversion_context::add_defined_expression(std::wstring & name,std::wst
void ods_conversion_context::start_sheet() void ods_conversion_context::start_sheet()
{ {
create_element(L"table", L"table",root_spreadsheet_->getContent(),this); create_element(L"table", L"table",root_spreadsheet_->getContent(),this);
table_context_.start_table(root_spreadsheet_->getContent().back()); table_context_.start_table(root_spreadsheet_->getContent().back());
drawing_context()->set_styles_context(styles_context()); drawing_context()->set_styles_context(styles_context());
page_layout_context()->set_styles_context(styles_context());
page_layout_context()->create_master_page(L"");
current_table().set_table_master_page(page_layout_context()->last_master().get_name());
} }
void ods_conversion_context::set_sheet_dimension(std::wstring & ref) void ods_conversion_context::set_sheet_dimension(std::wstring & ref)
......
...@@ -122,6 +122,13 @@ void ods_table_state::set_table_name(std::wstring name) ...@@ -122,6 +122,13 @@ void ods_table_state::set_table_name(std::wstring name)
table->table_table_attlist_.table_name_ = name; table->table_table_attlist_.table_name_ = name;
} }
void ods_table_state::set_table_master_page(std::wstring name)
{
if (!office_table_style_)return;
office_table_style_->style_master_page_name_ = name;
}
void ods_table_state::set_table_hidden(bool Val) void ods_table_state::set_table_hidden(bool Val)
{ {
if (!office_table_style_)return; if (!office_table_style_)return;
......
...@@ -173,6 +173,7 @@ public: ...@@ -173,6 +173,7 @@ public:
void set_table_name(std::wstring name); void set_table_name(std::wstring name);
void set_table_style(office_element_ptr & _style); void set_table_style(office_element_ptr & _style);
void set_table_hidden(bool Val); void set_table_hidden(bool Val);
void set_table_master_page(std::wstring name);
void set_table_rtl(bool Val); void set_table_rtl(bool Val);
void set_table_tab_color(_CP_OPT(color) & _color); void set_table_tab_color(_CP_OPT(color) & _color);
void set_table_dimension(int col, int row); void set_table_dimension(int col, int row);
......
...@@ -935,12 +935,6 @@ public: ...@@ -935,12 +935,6 @@ public:
static const ElementType type = typeStylePageLayout; static const ElementType type = typeStylePageLayout;
CPDOCCORE_DEFINE_VISITABLE(); CPDOCCORE_DEFINE_VISITABLE();
const style_page_layout_properties_attlist & get_style_page_layout_properties_attlist() const
{
return style_page_layout_properties_attlist_;
};
style_page_layout_properties() { } style_page_layout_properties() { }
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name); virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name);
......
...@@ -230,7 +230,7 @@ public: ...@@ -230,7 +230,7 @@ public:
void convert(OOX::WritingElement *oox_unknown); void convert(OOX::WritingElement *oox_unknown);
void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr); void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr);
void convert(OOX::Drawing::CShapeProperties *oox_spPr, OOX::Drawing::CShapeStyle* oox_sp_style /*= NULL)*/); void convert(OOX::Drawing::CShapeProperties *oox_spPr, OOX::Drawing::CShapeStyle* oox_sp_style = NULL);
void convert(OOX::Drawing::CGroupShapeProperties *oox_groupSpPr); void convert(OOX::Drawing::CGroupShapeProperties *oox_groupSpPr);
void convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr); void convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr);
......
...@@ -170,7 +170,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea) ...@@ -170,7 +170,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea)
odf_context()->chart_context()->start_wall(); odf_context()->chart_context()->start_wall();
convert(ct_plotArea->m_oSpPr.GetPointer()); convert(ct_plotArea->m_oSpPr.GetPointer());
odf_context()->chart_context()->end_element(); odf_context()->chart_context()->end_element();
odf_context()->chart_context()->end_element(); odf_context()->chart_context()->end_plot_area();
} }
////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////
......
...@@ -176,11 +176,8 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet) ...@@ -176,11 +176,8 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
{ {
ods_context->set_sheet_dimension(string2std_string(oox_sheet->m_oDimension->m_oRef.get())); ods_context->set_sheet_dimension(string2std_string(oox_sheet->m_oDimension->m_oRef.get()));
} }
// &
convert(oox_sheet->m_oSheetFormatPr.GetPointer()); convert(oox_sheet->m_oSheetFormatPr.GetPointer());
convert(oox_sheet->m_oSheetPr.GetPointer()); convert(oox_sheet->m_oSheetPr.GetPointer());
convert(oox_sheet->m_oSheetViews.GetPointer());
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
...@@ -249,6 +246,10 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet) ...@@ -249,6 +246,10 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
} }
ods_context->end_conditional_formats(); ods_context->end_conditional_formats();
} }
/////////////////////////////////////////////////////////////////////////
convert(oox_sheet->m_oSheetViews.GetPointer());
convert(oox_sheet->m_oPageSetup.GetPointer());
convert(oox_sheet->m_oPageMargins.GetPointer());
} }
void XlsxConverter::convert(OOX::Spreadsheet::CCommentItem * oox_comment) void XlsxConverter::convert(OOX::Spreadsheet::CCommentItem * oox_comment)
{ {
...@@ -731,6 +732,22 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views) ...@@ -731,6 +732,22 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views)
} }
} }
void XlsxConverter::convert(OOX::Spreadsheet::CPageSetup *oox_page)
{
if (!oox_page) return;
int type = 1;
ods_context->page_layout_context()->set_page_orientation(type);
}
void XlsxConverter::convert(OOX::Spreadsheet::CPageMargins *oox_page)
{
if (!oox_page) return;
_CP_OPT(double) top, left,right,header,footer,bottom;
ods_context->page_layout_context()->set_page_margin(top,left,bottom, right,header,footer);
}
void XlsxConverter::convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_pr) void XlsxConverter::convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_pr)
{ {
if (!oox_sheet_format_pr)return; if (!oox_sheet_format_pr)return;
...@@ -1606,7 +1623,12 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape) ...@@ -1606,7 +1623,12 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
ods_context->drawing_context()->start_shape(type); ods_context->drawing_context()->start_shape(type);
{ {
OoxConverter::convert(oox_shape->m_oSpPr.GetPointer()); OoxConverter::convert(oox_shape->m_oSpPr.GetPointer(), oox_shape->m_oShapeStyle.GetPointer());
// .. :)
odf_context()->drawing_context()->start_area_properies();
odf_context()->drawing_context()->set_no_fill();
odf_context()->drawing_context()->end_area_properies();
if (oox_shape->m_oNvConnSpPr.IsInit()) if (oox_shape->m_oNvConnSpPr.IsInit())
{ {
...@@ -1619,12 +1641,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape) ...@@ -1619,12 +1641,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
{ {
} }
} }
if (oox_shape->m_oShapeStyle.IsInit())
{
}
//avLst //avLst
} }
ods_context->drawing_context()->end_shape(); ods_context->drawing_context()->end_shape();
ods_context->drawing_context()->end_drawing(); ods_context->drawing_context()->end_drawing();
...@@ -1694,14 +1711,9 @@ void XlsxConverter::convert(OOX::Spreadsheet::CPic* oox_picture) ...@@ -1694,14 +1711,9 @@ void XlsxConverter::convert(OOX::Spreadsheet::CPic* oox_picture)
//m_oExtLst //m_oExtLst
} }
} }
if (oox_picture->m_oSpPr.IsInit())
{
OoxConverter::convert(oox_picture->m_oSpPr.GetPointer());
}
if (oox_picture->m_oShapeStyle.IsInit()) OoxConverter::convert(oox_picture->m_oSpPr.GetPointer(), oox_picture->m_oShapeStyle.GetPointer());
{
}
} }
ods_context->drawing_context()->end_image(); ods_context->drawing_context()->end_image();
ods_context->drawing_context()->end_drawing(); ods_context->drawing_context()->end_drawing();
......
...@@ -56,6 +56,8 @@ namespace OOX ...@@ -56,6 +56,8 @@ namespace OOX
class CAutofilter; class CAutofilter;
class CFilterColumn; class CFilterColumn;
class CSheetViews; class CSheetViews;
class CPageSetup;
class CPageMargins;
} }
} }
...@@ -139,6 +141,8 @@ namespace Oox2Odf ...@@ -139,6 +141,8 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_pr); void convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_pr);
void convert(OOX::Spreadsheet::CSheetPr *oox_sheet_pr); void convert(OOX::Spreadsheet::CSheetPr *oox_sheet_pr);
void convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views); void convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views);
void convert(OOX::Spreadsheet::CPageSetup *oox_page);
void convert(OOX::Spreadsheet::CPageMargins *oox_page);
void convert(OOX::Spreadsheet::CFont *font, odf::style_text_properties *text_properties); void convert(OOX::Spreadsheet::CFont *font, odf::style_text_properties *text_properties);
void convert(OOX::Spreadsheet::CBorder *border, odf::style_table_cell_properties *cell_properties); void convert(OOX::Spreadsheet::CBorder *border, odf::style_table_cell_properties *cell_properties);
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//2 //2
//0 //0
//62 //64
#define INTVER 1,2,0,62 #define INTVER 1,2,0,64
#define STRVER "1,2,0,62\0" #define STRVER "1,2,0,64\0"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment