Commit c0f29521 authored by Alexey Golubev's avatar Alexey Golubev

Merge tag 'v4.2.1' into develop

v4.2.1
parents 1e04770e 13d57361
...@@ -82,8 +82,6 @@ void text_tracked_context::start_changes_content() ...@@ -82,8 +82,6 @@ void text_tracked_context::start_changes_content()
void text_tracked_context::end_changes_content() void text_tracked_context::end_changes_content()
{ {
docx_context_.finish_run(); //0106GS-GettingStartedWithWriter_el.odt - удаленный заголовок
current_state_.content.push_back(changes_stream_.str()); current_state_.content.push_back(changes_stream_.str());
docx_context_.set_delete_text_state (false); docx_context_.set_delete_text_state (false);
...@@ -132,6 +130,7 @@ text_tracked_context::_state & text_tracked_context::get_tracked_change(std::wst ...@@ -132,6 +130,7 @@ text_tracked_context::_state & text_tracked_context::get_tracked_change(std::wst
//---------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------
docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfDocument) : docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfDocument) :
mediaitems_ (OdfDocument->get_folder() ),
next_dump_page_properties_ (false), next_dump_page_properties_ (false),
page_break_after_ (false), page_break_after_ (false),
page_break_before_ (false), page_break_before_ (false),
...@@ -151,8 +150,7 @@ docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfD ...@@ -151,8 +150,7 @@ docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfD
delayed_converting_ (false), delayed_converting_ (false),
process_headers_footers_ (false), process_headers_footers_ (false),
process_comment_ (false), process_comment_ (false),
mediaitems_ (OdfDocument->get_folder() ), math_context_ (false),
math_context_ (OdfDocument->odf_context().fontContainer(), false),
odf_document_ (OdfDocument) odf_document_ (OdfDocument)
{ {
streams_man_ = streams_man::create(temp_stream_); streams_man_ = streams_man::create(temp_stream_);
...@@ -834,20 +832,13 @@ void docx_conversion_context::docx_serialize_paragraph_style(std::wostream & str ...@@ -834,20 +832,13 @@ void docx_conversion_context::docx_serialize_paragraph_style(std::wostream & str
//in_styles = true -> styles.xml //in_styles = true -> styles.xml
//почему то конструкция <pPr><rPr/></pPr><rPr/> "не работает" в части в rPr в ms2010 ) //почему то конструкция <pPr><rPr/></pPr><rPr/> "не работает" в части в rPr в ms2010 )
{ {
bool in_drawing = false;
if (get_drawing_context().get_current_shape() || get_drawing_context().get_current_frame())
{
in_drawing = true;
}
std::wstringstream & paragraph_style = get_styles_context().paragraph_nodes(); std::wstringstream & paragraph_style = get_styles_context().paragraph_nodes();
std::wstringstream & run_style = get_styles_context().text_style(); std::wstringstream & run_style = get_styles_context().text_style();
CP_XML_WRITER(strm) CP_XML_WRITER(strm)
{ {
//Tutor_Charlotte_Tutor_the_Entire_World_.odt
if (get_section_context().dump_.empty() == false && (!ParentId.empty() || get_section_context().get().is_dump_ || in_header_) if (get_section_context().dump_.empty() == false && (!ParentId.empty() || get_section_context().get().is_dump_ || in_header_)
&& !get_table_context().in_table() && !in_drawing) && !get_table_context().in_table())
{//две подряд секции или если стиль определен и в заголовки нельзя пихать !!! {//две подряд секции или если стиль определен и в заголовки нельзя пихать !!!
CP_XML_NODE(L"w:pPr") CP_XML_NODE(L"w:pPr")
{ {
...@@ -862,7 +853,7 @@ void docx_conversion_context::docx_serialize_paragraph_style(std::wostream & str ...@@ -862,7 +853,7 @@ void docx_conversion_context::docx_serialize_paragraph_style(std::wostream & str
{ {
CP_XML_NODE(L"w:pPr") CP_XML_NODE(L"w:pPr")
{ {
if ( !get_table_context().in_table() && !in_drawing) if ( !get_table_context().in_table() )
{ {
CP_XML_STREAM() << get_section_context().dump_; CP_XML_STREAM() << get_section_context().dump_;
get_section_context().dump_.clear(); get_section_context().dump_.clear();
......
...@@ -270,7 +270,7 @@ void docx_serialize_shape_child(std::wostream & strm, _docx_drawing & val) ...@@ -270,7 +270,7 @@ void docx_serialize_shape_child(std::wostream & strm, _docx_drawing & val)
{ {
CP_XML_ATTR(L"txBox", 1); CP_XML_ATTR(L"txBox", 1);
} }
if (val.inGroup == false && val.sub_type != 1 && val.sub_type != 2) if (val.inGroup == false)
{ {
CP_XML_NODE(L"a:spLocks") CP_XML_NODE(L"a:spLocks")
{ {
...@@ -439,6 +439,8 @@ void docx_serialize_wps(std::wostream & strm, _docx_drawing & val) ...@@ -439,6 +439,8 @@ void docx_serialize_wps(std::wostream & strm, _docx_drawing & val)
{ {
std::wstring relativeFrom = L"margin"; std::wstring relativeFrom = L"margin";
if (val.styleHorizontalRel) relativeFrom =val.styleHorizontalRel->get_type_str(); if (val.styleHorizontalRel) relativeFrom =val.styleHorizontalRel->get_type_str();
if (relativeFrom == L"column") relativeFrom = L"margin";
CP_XML_ATTR(L"relativeFrom", relativeFrom); CP_XML_ATTR(L"relativeFrom", relativeFrom);
...@@ -508,10 +510,8 @@ void docx_serialize_wps(std::wostream & strm, _docx_drawing & val) ...@@ -508,10 +510,8 @@ void docx_serialize_wps(std::wostream & strm, _docx_drawing & val)
} }
if (val.pctHeight) if (val.pctHeight)
{ {
std::wstring relativeFrom = L"margin"; std::wstring relativeFrom = L"paragraph";
if (val.styleVerticalRel)relativeFrom = val.styleVerticalRel->get_type_str(); if (val.styleVerticalRel)relativeFrom = val.styleVerticalRel->get_type_str();
if (relativeFrom == L"paragraph") relativeFrom = L"margin";
CP_XML_NODE(L"wp14:sizeRelV") CP_XML_NODE(L"wp14:sizeRelV")
{ {
......
...@@ -97,12 +97,9 @@ void headers_footers::dump_rels(rels & Rels) const//внешние релсы ...@@ -97,12 +97,9 @@ void headers_footers::dump_rels(rels & Rels) const//внешние релсы
} }
} }
bool headers_footers::write_sectPr(const std::wstring & StyleName, bool next_page/*not used*/, std::wostream & _Wostream) bool headers_footers::write_sectPr(const std::wstring & StyleName, std::wostream & _Wostream) const
{ {
if (!instances_.count(StyleName)) return false; if (!instances_.count(StyleName))return false;
if (last_write_style_ == StyleName) return true;
last_write_style_ = StyleName;
bool first = false, left = false; bool first = false, left = false;
bool res = false; bool res = false;
......
...@@ -49,8 +49,7 @@ namespace oox { ...@@ -49,8 +49,7 @@ namespace oox {
class headers_footers class headers_footers
{ {
public: public:
headers_footers() : size_(0) {} headers_footers() : size_(0),enable_write_(false){}
enum Type { header, footer, headerLeft, footerLeft, headerFirst, footerFirst, none }; enum Type { header, footer, headerLeft, footerLeft, headerFirst, footerFirst, none };
std::wstring add(const std::wstring & StyleName, const std::wstring & Content, Type type,rels &_rels); std::wstring add(const std::wstring & StyleName, const std::wstring & Content, Type type,rels &_rels);
...@@ -67,17 +66,18 @@ public: ...@@ -67,17 +66,18 @@ public:
}; };
void dump_rels(rels & Rels) const; void dump_rels(rels & Rels) const;
bool write_sectPr(const std::wstring & StyleName, bool next_page, std::wostream & _Wostream); bool write_sectPr(const std::wstring & StyleName, std::wostream & _Wostream) const;
typedef boost::shared_ptr<instance> instance_ptr; typedef boost::shared_ptr<instance> instance_ptr;
typedef std::vector<instance_ptr> instances_array; typedef std::vector<instance_ptr> instances_array;
typedef boost::unordered_map<std::wstring, instances_array> instances_map; typedef boost::unordered_map<std::wstring, instances_array> instances_map;
const instances_map & instances() const { return instances_; }
const instances_map & instances() const { return instances_; }
private: bool get_enable_write(){return enable_write_;}
std::wstring last_write_style_; void set_enable_write(bool val){enable_write_ = val;}
private:
bool enable_write_;
static std::wstring create_id(size_t i); static std::wstring create_id(size_t i);
static std::wstring create_name(size_t i, Type _Type); static std::wstring create_name(size_t i, Type _Type);
instances_map instances_; instances_map instances_;
......
...@@ -144,7 +144,7 @@ void styles_context::docx_serialize_table_style(std::wostream & strm, std::wstri ...@@ -144,7 +144,7 @@ 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(bool graphic) : base_font_size_(12)
{ {
graphRPR_ = graphic; graphRPR_ = graphic;
......
...@@ -44,7 +44,6 @@ namespace odf_reader ...@@ -44,7 +44,6 @@ namespace odf_reader
{ {
class style_instance; class style_instance;
class style_text_properties; class style_text_properties;
class fonts_container;
typedef boost::shared_ptr<style_text_properties> style_text_properties_ptr; typedef boost::shared_ptr<style_text_properties> style_text_properties_ptr;
}; };
...@@ -91,7 +90,7 @@ namespace oox { ...@@ -91,7 +90,7 @@ namespace oox {
class math_context : boost::noncopyable class math_context : boost::noncopyable
{ {
public: public:
math_context(odf_reader::fonts_container & fonts, bool graphic = false); math_context(bool graphic = false);
void start(); void start();
std::wstring end(); std::wstring end();
...@@ -100,7 +99,6 @@ namespace oox { ...@@ -100,7 +99,6 @@ namespace oox {
std::wstringstream & math_style_stream() { return math_style_stream_; } std::wstringstream & math_style_stream() { return math_style_stream_; }
odf_reader::fonts_container & fonts_container_;
int base_font_size_; int base_font_size_;
odf_reader::style_text_properties_ptr text_properties_; odf_reader::style_text_properties_ptr text_properties_;
......
...@@ -260,8 +260,8 @@ void oox_serialize_bodyPr(std::wostream & strm, _oox_drawing & val, const std::w ...@@ -260,8 +260,8 @@ void oox_serialize_bodyPr(std::wostream & strm, _oox_drawing & val, const std::w
if (val.inGroup == false) if (val.inGroup == false)
{ {
_CP_OPT(int) iWrap; _CP_OPT(int) iWrap;
odf_reader::GetProperty(prop, L"text-wrap" , iWrap); odf_reader::GetProperty(prop,L"text-wrap" , iWrap);
if ((iWrap) && (*iWrap == 0)) CP_XML_ATTR(L"wrap", L"none"); if ((iWrap) && (*iWrap == 0))CP_XML_ATTR(L"wrap", L"none");
} }
_CP_OPT(int) iAlign; _CP_OPT(int) iAlign;
...@@ -419,13 +419,13 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst ...@@ -419,13 +419,13 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst
std::wstring xfrm = name_space + L":xfrm"; std::wstring xfrm = name_space + L":xfrm";
_CP_OPT(double) dRotate; _CP_OPT(double) dRotate;
odf_reader::GetProperty(val.additional, L"svg:rotate", dRotate); odf_reader::GetProperty(val.additional,L"svg:rotate",dRotate);
_CP_OPT(double) dSkewX; _CP_OPT(double) dSkewX;
odf_reader::GetProperty(val.additional, L"svg:skewX", dSkewX); odf_reader::GetProperty(val.additional,L"svg:skewX",dSkewX);
_CP_OPT(double) dSkewY; _CP_OPT(double) dSkewY;
odf_reader::GetProperty(val.additional, L"svg:skewY", dSkewY); odf_reader::GetProperty(val.additional,L"svg:skewY",dSkewY);
_CP_OPT(double) dRotateAngle; _CP_OPT(double) dRotateAngle;
...@@ -443,7 +443,7 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst ...@@ -443,7 +443,7 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst
{ {
if (dRotateAngle) if (dRotateAngle)
{ {
double d =360 - dRotateAngle.get() * 180. / 3.14159265358979323846; double d =360-dRotateAngle.get()*180./3.14159265358979323846;
d *= 60000; //60 000 per 1 gr - 19.5.5 oox d *= 60000; //60 000 per 1 gr - 19.5.5 oox
CP_XML_ATTR(L"rot", (int)d); CP_XML_ATTR(L"rot", (int)d);
} }
...@@ -456,19 +456,11 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst ...@@ -456,19 +456,11 @@ void oox_serialize_xfrm(std::wostream & strm, _oox_drawing & val, const std::wst
CP_XML_NODE(L"a:off") CP_XML_NODE(L"a:off")
{ {
if (val.inGroup) CP_XML_ATTR(L"x", val.x);
{ CP_XML_ATTR(L"y", val.y);
CP_XML_ATTR(L"x", val.x);
CP_XML_ATTR(L"y", val.y);
}
else
{
CP_XML_ATTR(L"x", 0);
CP_XML_ATTR(L"y", 0);
}
} }
if (val.cx > 0 || val.cy > 0) if (val.cx >0 || val.cy >0)
{ {
CP_XML_NODE(L"a:ext") CP_XML_NODE(L"a:ext")
{ {
......
...@@ -61,16 +61,16 @@ namespace package ...@@ -61,16 +61,16 @@ namespace package
class pptx_document; class pptx_document;
} }
pptx_conversion_context::pptx_conversion_context( odf_reader::odf_document * odfDocument) pptx_conversion_context::pptx_conversion_context( odf_reader::odf_document * odfDocument):
:output_document_ (NULL) output_document_(NULL)
,odf_document_ (odfDocument) ,odf_document_(odfDocument)
,pptx_text_context_ (odf_document_->odf_context(), *this) ,pptx_text_context_(odf_document_->odf_context(),*this)
,pptx_table_context_ (*this) ,pptx_table_context_(*this)
,pptx_comments_context_ (comments_context_handle_) ,pptx_comments_context_(comments_context_handle_)
,pptx_slide_context_ (*this/*, pptx_text_context_*/) ,pptx_slide_context_(*this/*, pptx_text_context_*/)
,math_context_ (odf_document_->odf_context().fontContainer(), true) ,math_context_(true)
,last_idx_placeHolder (1) ,last_idx_placeHolder(1)
,last_uniq_big_id (1) ,last_uniq_big_id(1)
{ {
applicationFonts_ = new CApplicationFonts(); applicationFonts_ = new CApplicationFonts();
} }
......
...@@ -66,7 +66,7 @@ xlsx_conversion_context::xlsx_conversion_context(odf_reader::odf_document * odfD ...@@ -66,7 +66,7 @@ xlsx_conversion_context::xlsx_conversion_context(odf_reader::odf_document * odfD
num_format_context_ (odf_document_->odf_context()), num_format_context_ (odf_document_->odf_context()),
xlsx_text_context_ (odf_document_->odf_context().styleContainer()), xlsx_text_context_ (odf_document_->odf_context().styleContainer()),
xlsx_table_context_ (this, xlsx_text_context_), xlsx_table_context_ (this, xlsx_text_context_),
math_context_ (odf_document_->odf_context().fontContainer(), true), math_context_ (true),
xlsx_style_ (this), xlsx_style_ (this),
maxDigitSize_ (std::pair<float,float>(-1.0, -1.0) ), maxDigitSize_ (std::pair<float,float>(-1.0, -1.0) ),
......
...@@ -52,10 +52,10 @@ static const _shape_converter _OO_OOX_custom_shapes[]= ...@@ -52,10 +52,10 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"hexagon" ,L"hexagon" ,0 ,0 ,0 }, {L"hexagon" ,L"hexagon" ,0 ,0 ,0 },
{L"octagon" ,L"octagon" ,0 ,0 ,0 }, {L"octagon" ,L"octagon" ,0 ,0 ,0 },
{L"star4" ,L"star4" ,1 ,0 ,50000 }, {L"star4" ,L"star4" ,1 ,0 ,50000 },
{L"star5" ,L"star5" ,0 ,0 ,50000 },//??? 19098 неверно {L"star5" ,L"star5" ,1 ,0 ,50000 },
{L"star8" ,L"star8" ,1 ,0 ,50000 }, {L"star8" ,L"star8" ,1 ,0 ,50000 },
{L"star24" ,L"star24" ,1 ,0 ,50000 }, {L"star24" ,L"star24" ,1 ,0 ,50000 },
{L"star6" ,L"star6" ,0 ,0 ,50000 }, {L"star6" ,L"star6" ,1 ,0 ,50000 },
{L"star12" ,L"star12" ,1 ,0 ,50000 }, {L"star12" ,L"star12" ,1 ,0 ,50000 },
{L"round-rectangle" ,L"roundRect" ,0 ,0 ,0 }, {L"round-rectangle" ,L"roundRect" ,0 ,0 ,0 },
{L"ellipse" ,L"ellipse" ,0 ,0 ,0 }, {L"ellipse" ,L"ellipse" ,0 ,0 ,0 },
...@@ -137,7 +137,6 @@ static const _shape_converter _OO_OOX_custom_shapes[]= ...@@ -137,7 +137,6 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"mso-spt14" ,L"thickArrow" ,0 ,0 ,0 }, {L"mso-spt14" ,L"thickArrow" ,0 ,0 ,0 },
{L"mso-spt17" ,L"Balloon" ,0 ,0 ,0 }, {L"mso-spt17" ,L"Balloon" ,0 ,0 ,0 },
{L"mso-spt18" ,L"irregularSeal1" ,0 ,0 ,0 }, {L"mso-spt18" ,L"irregularSeal1" ,0 ,0 ,0 },
{L"mso-spt19" ,L"rect" ,0 ,0 ,0 },
{L"mso-spt24" ,L"textBox" ,0 ,0 ,0 }, {L"mso-spt24" ,L"textBox" ,0 ,0 ,0 },
{L"mso-spt25" ,L"" ,0 ,0 ,0 }, {L"mso-spt25" ,L"" ,0 ,0 ,0 },
{L"mso-spt26" ,L"" ,0 ,0 ,0 }, {L"mso-spt26" ,L"" ,0 ,0 ,0 },
......
...@@ -230,11 +230,7 @@ void draw_path::add_attributes( const xml::attributes_wc_ptr & Attributes ) ...@@ -230,11 +230,7 @@ void draw_path::add_attributes( const xml::attributes_wc_ptr & Attributes )
} }
void draw_path::reset_svg_path() void draw_path::reset_svg_path()
{ {
if (!draw_path_attlist_.svg_d_) if (draw_path_attlist_.svg_d_)
{
bad_shape_ = true;
}
else
{ {
std::vector<svg_path::_polyline> o_Polyline_pt; std::vector<svg_path::_polyline> o_Polyline_pt;
std::vector<svg_path::_polyline> o_Polyline_cm; std::vector<svg_path::_polyline> o_Polyline_cm;
...@@ -290,11 +286,7 @@ void draw_polygon::add_attributes( const xml::attributes_wc_ptr & Attributes ) ...@@ -290,11 +286,7 @@ void draw_polygon::add_attributes( const xml::attributes_wc_ptr & Attributes )
} }
void draw_polygon::reset_polygon_path() void draw_polygon::reset_polygon_path()
{ {
if (!draw_polygon_attlist_.draw_points_) if (draw_polygon_attlist_.draw_points_)
{
bad_shape_ = true;
}
else
{ {
std::vector<svg_path::_polyline> o_Polyline_pt; std::vector<svg_path::_polyline> o_Polyline_pt;
std::vector<svg_path::_polyline> o_Polyline_cm; std::vector<svg_path::_polyline> o_Polyline_cm;
...@@ -346,11 +338,7 @@ void draw_polyline::add_attributes( const xml::attributes_wc_ptr & Attributes ) ...@@ -346,11 +338,7 @@ void draw_polyline::add_attributes( const xml::attributes_wc_ptr & Attributes )
} }
void draw_polyline::reset_polyline_path() void draw_polyline::reset_polyline_path()
{ {
if (!draw_polyline_attlist_.draw_points_) if (draw_polyline_attlist_.draw_points_)
{
bad_shape_ = true;
}
else
{ {
std::vector<svg_path::_polyline> o_Polyline_pt; std::vector<svg_path::_polyline> o_Polyline_pt;
std::vector<svg_path::_polyline> o_Polyline_cm; std::vector<svg_path::_polyline> o_Polyline_cm;
...@@ -613,11 +601,7 @@ void draw_connector::add_attributes( const xml::attributes_wc_ptr & Attributes ) ...@@ -613,11 +601,7 @@ void draw_connector::add_attributes( const xml::attributes_wc_ptr & Attributes )
} }
void draw_connector::reset_svg_path() void draw_connector::reset_svg_path()
{ {
if (!draw_connector_attlist_.svg_d_) if (draw_connector_attlist_.svg_d_)
{
bad_shape_ = true;
}
else
{ {
std::vector<svg_path::_polyline> o_Polyline_pt; std::vector<svg_path::_polyline> o_Polyline_pt;
std::vector<svg_path::_polyline> o_Polyline_cm; std::vector<svg_path::_polyline> o_Polyline_cm;
......
...@@ -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_convert(CP_XML_STREAM(), Context.graphRPR_);
} }
} }
} }
...@@ -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_convert(CP_XML_STREAM(), Context.graphRPR_);
} }
} }
} }
......
...@@ -94,10 +94,8 @@ void math_mtr::oox_convert(oox::math_context & Context) ...@@ -94,10 +94,8 @@ void math_mtr::oox_convert(oox::math_context & Context)
strm << L"<m:mr>"; strm << L"<m:mr>";
for (int i = 0; i < content_.size(); i++) for (int i = 0; i < content_.size(); i++)
{ {
strm << L"<m:e>";
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get()); office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
math_element->oox_convert(Context); math_element->oox_convert(Context);
strm << L"</m:e>";
} }
strm << L"</m:mr>"; strm << L"</m:mr>";
} }
......
...@@ -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_convert(CP_XML_STREAM(), Context.graphRPR_);
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_convert(CP_XML_STREAM(), Context.graphRPR_);
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_convert(CP_XML_STREAM(), Context.graphRPR_);
CP_XML_NODE(L"m:t") CP_XML_NODE(L"m:t")
{ {
......
...@@ -128,6 +128,8 @@ void office_body::docx_convert(oox::docx_conversion_context & Context) ...@@ -128,6 +128,8 @@ void office_body::docx_convert(oox::docx_conversion_context & Context)
if (content_) if (content_)
content_->docx_convert(Context); content_->docx_convert(Context);
Context.get_headers_footers().set_enable_write(true);
if (!Context.get_section_context().dump_.empty() && !Context.get_table_context().in_table()) if (!Context.get_section_context().dump_.empty() && !Context.get_table_context().in_table())
{ {
Context.output_stream() << Context.get_section_context().dump_; Context.output_stream() << Context.get_section_context().dump_;
......
...@@ -276,20 +276,18 @@ void text_format_properties_content::pptx_convert_as_list(oox::pptx_conversion_c ...@@ -276,20 +276,18 @@ void text_format_properties_content::pptx_convert_as_list(oox::pptx_conversion_c
{ {
std::wstring w_font = (fo_font_family_ ? *fo_font_family_: L""); std::wstring w_font = (fo_font_family_ ? *fo_font_family_: L"");
if (w_font.empty()) if (w_font.length() < 1)
{ {
std::wstring w_ascii = (style_font_name_ ? *style_font_name_ : L""); std::wstring w_ascii = (style_font_name_ ? *style_font_name_: L"");
std::wstring w_eastAsia = (style_font_name_asian_ ? *style_font_name_asian_ : L""); std::wstring w_eastAsia = (style_font_name_asian_ ? *style_font_name_asian_: L"");
std::wstring w_cs = (style_font_name_complex_ ? *style_font_name_complex_ : L""); std::wstring w_cs = (style_font_name_complex_ ? *style_font_name_complex_: L"");
fonts_container & fonts = Context.root()->odf_context().fontContainer(); fonts_container & fonts = Context.root()->odf_context().fontContainer();
font_instance * font = fonts.font_by_style_name(w_ascii); font_instance * font = fonts.font_by_style_name(w_ascii);
if (font == NULL) font = fonts.font_by_style_name(w_eastAsia); if (font == NULL)font = fonts.font_by_style_name(w_eastAsia);
if (font == NULL) font = fonts.font_by_style_name(w_cs); if (font == NULL)font = fonts.font_by_style_name(w_cs);
if (font)w_font = font->name();
if (font)
w_font = font->name();
//'Arial' глючит //'Arial' глючит
removeCharsFromString(w_font, _T("'")); removeCharsFromString(w_font, _T("'"));
...@@ -854,38 +852,22 @@ void text_format_properties_content::docx_convert(oox::docx_conversion_context & ...@@ -854,38 +852,22 @@ void text_format_properties_content::docx_convert(oox::docx_conversion_context &
if (style_font_name_ || style_font_name_asian_ || style_font_name_complex_ || fo_font_family_) if (style_font_name_ || style_font_name_asian_ || style_font_name_complex_ || fo_font_family_)
{ {
fonts_container & fonts = Context.root()->odf_context().fontContainer();
std::wstring w_eastAsia; std::wstring w_eastAsia;
std::wstring w_hAnsi; std::wstring w_hAnsi;
std::wstring w_cs; std::wstring w_cs;
std::wstring w_ascii = w_hAnsi = w_cs = (fo_font_family_ ? *fo_font_family_ : L""); std::wstring w_ascii = w_hAnsi = w_cs = (style_font_name_ ? *style_font_name_: L"");
if (style_font_name_complex_) _rPr << L"<w:rFonts ";
{ if (!w_ascii.empty())
font_instance * font = fonts.font_by_style_name(*style_font_name_complex_); _rPr << L"w:ascii=\"" << w_ascii <<"\" ";
if (font) if (!w_hAnsi.empty())
w_cs = font->name(); _rPr << L"w:hAnsi=\"" << w_hAnsi <<"\" ";
} if (!w_eastAsia.empty())
if (style_font_name_asian_) _rPr << L"w:eastAsia=\"" << w_eastAsia <<"\" ";
{ if (!w_cs.empty())
font_instance * font = fonts.font_by_style_name(*style_font_name_asian_); _rPr << L"w:cs=\"" << w_cs <<"\" ";
if (font)
w_eastAsia = font->name();
}
if (style_font_name_)
{
font_instance * font = fonts.font_by_style_name(*style_font_name_);
if (font)
w_ascii = w_hAnsi = font->name();
}
_rPr << L"<w:rFonts"; _rPr << L" />";
if (!w_ascii.empty()) _rPr << L" w:ascii=\"" << w_ascii <<"\"";
if (!w_hAnsi.empty()) _rPr << L" w:hAnsi=\"" << w_hAnsi <<"\"";
if (!w_eastAsia.empty()) _rPr << L" w:eastAsia=\"" << w_eastAsia <<"\"";
if (!w_cs.empty()) _rPr << L" w:cs=\"" << w_cs <<"\"";
_rPr << L"/>";
} }
_CP_OPT(color) color_text = fo_color_; _CP_OPT(color) color_text = fo_color_;
...@@ -992,12 +974,12 @@ void text_format_properties_content::docx_convert(oox::docx_conversion_context & ...@@ -992,12 +974,12 @@ void text_format_properties_content::docx_convert(oox::docx_conversion_context &
} }
void text_format_properties_content::oox_convert (std::wostream & _rPr, bool graphic, fonts_container & fonts) void text_format_properties_content::oox_convert (std::wostream & _rPr, bool graphic)
{ {
const int W = process_font_weight (fo_font_weight_); const int W = process_font_weight (fo_font_weight_);
const int fontStyle = process_font_style (fo_font_style_); const int fontStyle = process_font_style (fo_font_style_);
const int WCs = process_font_weight (style_font_weight_complex_); const int WCs = process_font_weight (style_font_weight_complex_);
if (graphic) if (graphic)
{ {
_rPr << L"<a:rPr"; _rPr << L"<a:rPr";
...@@ -1342,33 +1324,19 @@ void text_format_properties_content::oox_convert (std::wostream & _rPr, bool gra ...@@ -1342,33 +1324,19 @@ void text_format_properties_content::oox_convert (std::wostream & _rPr, bool gra
std::wstring w_eastAsia; std::wstring w_eastAsia;
std::wstring w_hAnsi; std::wstring w_hAnsi;
std::wstring w_cs; std::wstring w_cs;
std::wstring w_ascii = w_hAnsi = w_cs = (fo_font_family_ ? *fo_font_family_ : L""); std::wstring w_ascii = w_hAnsi = w_cs = (style_font_name_ ? *style_font_name_: L"");
if (style_font_name_complex_)
{
font_instance * font = fonts.font_by_style_name(*style_font_name_complex_);
if (font)
w_cs = font->name();
}
if (style_font_name_asian_)
{
font_instance * font = fonts.font_by_style_name(*style_font_name_asian_);
if (font)
w_eastAsia = font->name();
}
if (style_font_name_)
{
font_instance * font = fonts.font_by_style_name(*style_font_name_);
if (font)
w_ascii = w_hAnsi = font->name();
}
_rPr << L"<w:rFonts"; _rPr << L"<w:rFonts ";
if (!w_ascii.empty()) _rPr << L" w:ascii=\"" << w_ascii <<"\""; if (!w_ascii.empty())
if (!w_hAnsi.empty()) _rPr << L" w:hAnsi=\"" << w_hAnsi <<"\""; _rPr << L"w:ascii=\"" << w_ascii <<"\" ";
if (!w_eastAsia.empty()) _rPr << L" w:eastAsia=\"" << w_eastAsia <<"\""; if (!w_hAnsi.empty())
if (!w_cs.empty()) _rPr << L" w:cs=\"" << w_cs <<"\""; _rPr << L"w:hAnsi=\"" << w_hAnsi <<"\" ";
_rPr << L"/>"; if (!w_eastAsia.empty())
_rPr << L"w:eastAsia=\"" << w_eastAsia <<"\" ";
if (!w_cs.empty())
_rPr << L"w:cs=\"" << w_cs <<"\" ";
_rPr << L" />";
} }
_CP_OPT(color) color_text = fo_color_; _CP_OPT(color) color_text = fo_color_;
......
...@@ -69,7 +69,6 @@ namespace cpdoccore { ...@@ -69,7 +69,6 @@ namespace cpdoccore {
namespace odf_reader { namespace odf_reader {
class style_instance; class style_instance;
class fonts_container;
// 15.4 // 15.4
class text_format_properties_content : public oox::conversion_element class text_format_properties_content : public oox::conversion_element
...@@ -80,8 +79,7 @@ public: ...@@ -80,8 +79,7 @@ public:
void docx_convert (oox::docx_conversion_context & Context); void docx_convert (oox::docx_conversion_context & Context);
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);
void oox_convert (std::wostream & stream, bool graphic, fonts_container & fonts);
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);
......
...@@ -1134,14 +1134,14 @@ void style_page_layout_properties_attlist::docx_convert_serialize(std::wostream ...@@ -1134,14 +1134,14 @@ void style_page_layout_properties_attlist::docx_convert_serialize(std::wostream
CP_XML_NODE(L"w:pgMar") CP_XML_NODE(L"w:pgMar")
{ {
CP_XML_ATTR(L"w:header" , process_page_margin(common_vertical_margin_attlist_.fo_margin_top_ ) );
CP_XML_ATTR(L"w:footer" , process_page_margin(common_vertical_margin_attlist_.fo_margin_bottom_ ) );
CP_XML_ATTR(L"w:gutter" , 0 );
CP_XML_ATTR(L"w:left" , process_page_margin(common_horizontal_margin_attlist_.fo_margin_left_ , margin_left_length) ); CP_XML_ATTR(L"w:left" , process_page_margin(common_horizontal_margin_attlist_.fo_margin_left_ , margin_left_length) );
CP_XML_ATTR(L"w:right" , process_page_margin(common_horizontal_margin_attlist_.fo_margin_right_, margin_right_length) ); CP_XML_ATTR(L"w:right" , process_page_margin(common_horizontal_margin_attlist_.fo_margin_right_, margin_right_length) );
CP_XML_ATTR(L"w:top" , process_page_margin(common_vertical_margin_attlist_.fo_margin_top_ , Context.get_header_footer_context().header()) ); CP_XML_ATTR(L"w:top" , process_page_margin(common_vertical_margin_attlist_.fo_margin_top_ , Context.get_header_footer_context().header()) );
CP_XML_ATTR(L"w:bottom" , process_page_margin(common_vertical_margin_attlist_.fo_margin_bottom_ , Context.get_header_footer_context().footer()) ); CP_XML_ATTR(L"w:bottom" , process_page_margin(common_vertical_margin_attlist_.fo_margin_bottom_ , Context.get_header_footer_context().footer()) );
CP_XML_ATTR(L"w:header" , process_page_margin(common_vertical_margin_attlist_.fo_margin_top_ ) );
CP_XML_ATTR(L"w:footer" , process_page_margin(common_vertical_margin_attlist_.fo_margin_bottom_ ) );
CP_XML_ATTR(L"w:gutter" , 0 );
} }
} }
...@@ -1286,17 +1286,19 @@ void style_page_layout_properties::docx_convert_serialize(std::wostream & strm, ...@@ -1286,17 +1286,19 @@ void style_page_layout_properties::docx_convert_serialize(std::wostream & strm,
{ {
Context.process_section( CP_XML_STREAM(), columns); Context.process_section( CP_XML_STREAM(), columns);
bool next_page = Context.is_next_dump_page_properties();
CP_XML_NODE(L"w:type") CP_XML_NODE(L"w:type")
{ {
if (next_page) CP_XML_ATTR(L"w:val", L"nextPage"); if (Context.is_next_dump_page_properties())
else CP_XML_ATTR(L"w:val", L"continuous"); {
CP_XML_ATTR(L"w:val", L"nextPage");
}else
{
CP_XML_ATTR(L"w:val", L"continuous");
}
} }
std::wstring masterPageName = Context.get_master_page_name(); std::wstring masterPageName = Context.get_master_page_name();
bool res = Context.get_headers_footers().write_sectPr(masterPageName, next_page, strm); bool res = Context.get_headers_footers().write_sectPr(masterPageName, strm);
if (res == false) if (res == false)
{ {
// default??? // default???
...@@ -1306,7 +1308,7 @@ void style_page_layout_properties::docx_convert_serialize(std::wostream & strm, ...@@ -1306,7 +1308,7 @@ void style_page_layout_properties::docx_convert_serialize(std::wostream & strm,
Context.remove_page_properties(); Context.remove_page_properties();
Context.add_page_properties(masterPageNameLayout); Context.add_page_properties(masterPageNameLayout);
bool res = Context.get_headers_footers().write_sectPr(masterPageName, next_page, strm); bool res = Context.get_headers_footers().write_sectPr(masterPageName, strm);
} }
oox::section_context::_section & section = Context.get_section_context().get(); oox::section_context::_section & section = Context.get_section_context().get();
......
...@@ -137,14 +137,7 @@ typedef std::map<std::wstring, oox::text_tracked_context::_state>::iterator map_ ...@@ -137,14 +137,7 @@ typedef std::map<std::wstring, oox::text_tracked_context::_state>::iterator map_
int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_context & Context) int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_context & Context)
{ {
bool in_drawing = false; if (!Attr.text_style_name_.empty())
if (Context.get_drawing_context().get_current_shape() || Context.get_drawing_context().get_current_frame())
{
in_drawing = true;
}
if (!Attr.text_style_name_.empty())
{ {
if (style_instance * styleInst = if (style_instance * styleInst =
Context.root()->odf_context().styleContainer().style_by_name(Attr.text_style_name_.style_name(), style_family::Paragraph, Context.process_headers_footers_) Context.root()->odf_context().styleContainer().style_by_name(Attr.text_style_name_.style_name(), style_family::Paragraph, Context.process_headers_footers_)
...@@ -187,7 +180,7 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co ...@@ -187,7 +180,7 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co
Context.end_automatic_style(); Context.end_automatic_style();
Context.push_text_properties(styleContent->get_style_text_properties()); Context.push_text_properties(styleContent->get_style_text_properties());
return 1; return 1;
} }
} }
else else
...@@ -195,10 +188,9 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co ...@@ -195,10 +188,9 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co
const std::wstring id = Context.styles_map_.get( styleInst->name(), styleInst->type() ); const std::wstring id = Context.styles_map_.get( styleInst->name(), styleInst->type() );
Context.output_stream() << L"<w:pPr>"; Context.output_stream() << L"<w:pPr>";
//todooo причесать //todooo причесать
if (!Context.get_section_context().dump_.empty() if (!Context.get_section_context().dump_.empty() &&
&& !Context.get_table_context().in_table() !Context.get_table_context().in_table() &&
&& (Context.get_process_note() == oox::docx_conversion_context::noNote) (Context.get_process_note() == oox::docx_conversion_context::noNote))
&& !in_drawing)
{ {
if (Context.is_paragraph_header() ) if (Context.is_paragraph_header() )
{ {
...@@ -244,10 +236,9 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co ...@@ -244,10 +236,9 @@ int process_paragraph_attr(const paragraph_attrs & Attr, oox::docx_conversion_co
} }
} }
} }
if (!Context.get_section_context().dump_.empty() if (!Context.get_section_context().dump_.empty() &&
&& !Context.get_table_context().in_table() !Context.get_table_context().in_table() &&
&& (Context.get_process_note() == oox::docx_conversion_context::noNote) (Context.get_process_note() == oox::docx_conversion_context::noNote))
&& !in_drawing)
{ {
Context.output_stream() << L"<w:pPr>"; Context.output_stream() << L"<w:pPr>";
Context.output_stream() << Context.get_section_context().dump_; Context.output_stream() << Context.get_section_context().dump_;
...@@ -370,18 +361,18 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context) ...@@ -370,18 +361,18 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context)
{ {
const std::wstring & styleName = attrs_.text_style_name_.style_name(); const std::wstring & styleName = attrs_.text_style_name_.style_name();
bool in_drawing = false; bool drawing = false;
if (Context.get_drawing_context().get_current_shape() || Context.get_drawing_context().get_current_frame()) if (Context.get_drawing_context().get_current_shape() || Context.get_drawing_context().get_current_frame())
{ {
in_drawing = true; drawing = true;
} }
bool bIsNewParagraph = true; bool bIsNewParagraph = true;
bool is_empty = content_.empty(); bool is_empty = content_.empty();
if (Context.get_paragraph_state() && (Context.get_process_note() == oox::docx_conversion_context::noNote) && !in_drawing) if (Context.get_paragraph_state() && (Context.get_process_note() == oox::docx_conversion_context::noNote) && !drawing)
{//вложеннные элементы ... или после графики embedded_linux_kernel_and_drivers_labs_zh_TW.odt {//вложеннные элементы ... или после графики embedded_linux_kernel_and_drivers_labs_zh_TW.odt
bIsNewParagraph = false; bIsNewParagraph = false;
...@@ -434,6 +425,8 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context) ...@@ -434,6 +425,8 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context)
Context.remove_page_properties(); Context.remove_page_properties();
Context.add_page_properties(masterPageNameLayout); Context.add_page_properties(masterPageNameLayout);
Context.set_page_break(true);
is_empty = false; is_empty = false;
} }
...@@ -460,8 +453,7 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context) ...@@ -460,8 +453,7 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context)
if (Context.get_page_break()) if (Context.get_page_break())
{ {
if (Context.process_headers_footers_ == false) if (Context.process_headers_footers_ == false)
//_Wostream << L"<w:lastRenderedPageBreak/>"; _Wostream << L"<w:lastRenderedPageBreak/>";
_Wostream << L"<w:br w:type=\"page\"/>";
Context.set_page_break(false); Context.set_page_break(false);
} }
elm->docx_convert(Context); elm->docx_convert(Context);
...@@ -490,7 +482,7 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context) ...@@ -490,7 +482,7 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context)
is_empty = false; is_empty = false;
Context.add_new_run(_T("")); Context.add_new_run(_T(""));
_Wostream << L"<w:br w:type=\"page\"/>"; _Wostream << L"<w:br w:type=\"page\" />";
Context.finish_run(); Context.finish_run();
} }
...@@ -975,39 +967,9 @@ void text_table_index::add_child_element( xml::sax * Reader, const std::wstring ...@@ -975,39 +967,9 @@ void text_table_index::add_child_element( xml::sax * Reader, const std::wstring
const wchar_t * text_illustration_index::ns = L"text"; const wchar_t * text_illustration_index::ns = L"text";
const wchar_t * text_illustration_index::name = L"illustration-index"; const wchar_t * text_illustration_index::name = L"illustration-index";
void text_illustration_index::afterCreate()
{
if (document_context * context = getContext())
{
if (paragraph * lastPar = context->get_last_paragraph())
{
lastPar->set_next_section(true);
}
}
}
void text_illustration_index::afterReadContent()
{
if (document_context * context = getContext())
{
if (paragraph * lastPar = context->get_last_paragraph())
{
lastPar->set_next_end_section(true);
}
}
}
void text_illustration_index::docx_convert(oox::docx_conversion_context & Context) void text_illustration_index::docx_convert(oox::docx_conversion_context & Context)
{ {
std::wstring current_page_properties = Context.get_page_properties(); if (text_index_body_)
Context.get_section_context().add_section(
text_section_attr_.text_name_,
text_section_attr_.text_style_name_.get_value_or(style_ref()).style_name(),
current_page_properties
);
Context.add_page_properties(current_page_properties);
if (text_index_body_)
text_index_body_->docx_convert(Context); text_index_body_->docx_convert(Context);
} }
...@@ -1035,77 +997,8 @@ void text_illustration_index::add_child_element( xml::sax * Reader, const std::w ...@@ -1035,77 +997,8 @@ void text_illustration_index::add_child_element( xml::sax * Reader, const std::w
{ {
CP_CREATE_ELEMENT(text_index_body_); CP_CREATE_ELEMENT(text_index_body_);
} }
// todooo text-illustration-index-source // TODO text-illustration-index-source
}
// text:alphabetical-index
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * text_alphabetical_index::ns = L"text";
const wchar_t * text_alphabetical_index::name = L"alphabetical-index";
void text_alphabetical_index::afterCreate()
{
if (document_context * context = getContext())
{
if (paragraph * lastPar = context->get_last_paragraph())
{
lastPar->set_next_section(true);
}
}
}
void text_alphabetical_index::afterReadContent()
{
if (document_context * context = getContext())
{
if (paragraph * lastPar = context->get_last_paragraph())
{
lastPar->set_next_end_section(true);
}
}
}
void text_alphabetical_index::docx_convert(oox::docx_conversion_context & Context)
{
std::wstring current_page_properties = Context.get_page_properties();
Context.get_section_context().add_section(
text_section_attr_.text_name_,
text_section_attr_.text_style_name_.get_value_or(style_ref()).style_name(),
current_page_properties
);
Context.add_page_properties(current_page_properties);
if (text_index_body_)
text_index_body_->docx_convert(Context);
}
void text_alphabetical_index::pptx_convert(oox::pptx_conversion_context & Context)
{
if (text_index_body_)
text_index_body_->pptx_convert(Context);
}
std::wostream & text_alphabetical_index::text_to_stream(std::wostream & _Wostream) const
{
CP_SERIALIZE_TEXT(text_index_body_);
return _Wostream;
}
void text_alphabetical_index::add_attributes( const xml::attributes_wc_ptr & Attributes )
{
text_section_attr_.add_attributes( Attributes );
}
void text_alphabetical_index::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
{
if CP_CHECK_NAME(L"text", L"index-body")
{
CP_CREATE_ELEMENT(text_index_body_);
}
// todooo text-alphabetical-index-source
} }
//-------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------
// text:tracked-changes // text:tracked-changes
const wchar_t * text_tracked_changes::ns = L"text"; const wchar_t * text_tracked_changes::ns = L"text";
......
...@@ -360,9 +360,6 @@ public: ...@@ -360,9 +360,6 @@ public:
static const ElementType type = typeTextIllustrationIndex; static const ElementType type = typeTextIllustrationIndex;
CPDOCCORE_DEFINE_VISITABLE(); CPDOCCORE_DEFINE_VISITABLE();
virtual void afterCreate();
virtual void afterReadContent();
void docx_convert(oox::docx_conversion_context & Context); void docx_convert(oox::docx_conversion_context & Context);
void pptx_convert(oox::pptx_conversion_context & Context) ; void pptx_convert(oox::pptx_conversion_context & Context) ;
...@@ -380,36 +377,6 @@ public: ...@@ -380,36 +377,6 @@ public:
}; };
CP_REGISTER_OFFICE_ELEMENT2(text_illustration_index); CP_REGISTER_OFFICE_ELEMENT2(text_illustration_index);
//---------------------------------------------------------------------------------------------------
class text_alphabetical_index : public text_content_impl<text_alphabetical_index>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextAlphabeticalIndex;
CPDOCCORE_DEFINE_VISITABLE();
virtual void afterCreate();
virtual void afterReadContent();
void docx_convert(oox::docx_conversion_context & Context);
void pptx_convert(oox::pptx_conversion_context & Context) ;
virtual std::wostream & text_to_stream(std::wostream & _Wostream) const;
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);
public:
text_section_attr text_section_attr_;
office_element_ptr text_alphabetical_index_source_;
office_element_ptr text_index_body_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_alphabetical_index);
//--------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------
class text_index_body : public text_content_impl<text_index_body> class text_index_body : public text_content_impl<text_index_body>
......
...@@ -116,7 +116,7 @@ namespace OOX ...@@ -116,7 +116,7 @@ namespace OOX
} }
virtual void toXML(NSStringUtils::CStringBuilder& writer) const virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{ {
if(m_oName.IsInit()) if(m_oName.IsInit() && m_arrItems.size() > 0)
{ {
writer.WriteString(_T("<tableStyle")); writer.WriteString(_T("<tableStyle"));
WritingStringNullableAttrEncodeXmlString(L"name", m_oName, m_oName.get()); WritingStringNullableAttrEncodeXmlString(L"name", m_oName, m_oName.get());
...@@ -249,4 +249,4 @@ namespace OOX ...@@ -249,4 +249,4 @@ namespace OOX
} //Spreadsheet } //Spreadsheet
} // namespace OOX } // namespace OOX
#endif // OOX_TABLESTYLES_FILE_INCLUDE_H_ #endif // OOX_TABLESTYLES_FILE_INCLUDE_H_
\ No newline at end of file
...@@ -744,12 +744,13 @@ ...@@ -744,12 +744,13 @@
#define ASC_MENU_EVENT_TYPE_ERROR 500 #define ASC_MENU_EVENT_TYPE_ERROR 500
#define ASC_MENU_EVENT_TYPE_COLOR_SCHEMES 2404 // CAscColorSchemes
#define ASC_MENU_EVENT_TYPE_CHANGE_COLOR_SCHEME 2415 // SET(int)
#define ASC_COAUTH_EVENT_TYPE_PARTICIPANTS_CHANGED 20101 #define ASC_MENU_EVENT_TYPE_COLOR_SCHEMES 2404 // CAscColorSchemes
#define ASC_COAUTH_EVENT_TYPE_LOST_CONNECTION 20102 #define ASC_MENU_EVENT_TYPE_CHANGE_COLOR_SCHEME 2415 // SET(int)
#define ASC_COAUTH_EVENT_TYPE_DROP_CONNECTION 20103
#define ASC_MENU_EVENT_TYPE_AUTH_PARTICIPANTS_CHANGED 2416
#define ASC_MENU_EVENT_TYPE_LOST_CONNECTION 2420
#define ASC_MENU_EVENT_TYPE_DROP_CONNECTION 2421
#define ASC_COAUTH_EVENT_TYPE_INSERT_URL_IMAGE 21000 #define ASC_COAUTH_EVENT_TYPE_INSERT_URL_IMAGE 21000
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
//#define ONLINE_WORD_TO_PDF //#define ONLINE_WORD_TO_PDF
//#define TO_PDF //#define TO_PDF
#define TO_HTML_RENDERER #define TO_HTML_RENDERER
//#define ONLY_TEXT #define ONLY_TEXT
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
...@@ -97,7 +97,7 @@ int main(int argc, char *argv[]) ...@@ -97,7 +97,7 @@ int main(int argc, char *argv[])
//std::wstring sFile = L"D:\\bankomats.xps"; //std::wstring sFile = L"D:\\bankomats.xps";
//std::wstring sFile = L"\\\\kirillov8\\_Office\\DJVU\\Основы разработки приложений на платформе Microsoft .NET Framework. Учебный курс Microsoft экзамен 70-536.djvu"; //std::wstring sFile = L"\\\\kirillov8\\_Office\\DJVU\\Основы разработки приложений на платформе Microsoft .NET Framework. Учебный курс Microsoft экзамен 70-536.djvu";
//std::wstring sFile = L"D:\\TESTFILES\\Алгоритмы - построение и анализ.djvu"; //std::wstring sFile = L"D:\\TESTFILES\\Алгоритмы - построение и анализ.djvu";
std::wstring sFile = L"D:\\knopk5_0.pdf"; std::wstring sFile = L"D:\\TESTFILES\\PDF 1-7 (756p).pdf";
std::wstring sDst = L"D:\\test\\Document"; std::wstring sDst = L"D:\\test\\Document";
//std::wstring sFile = L"/home/oleg/activex/Android intro(2p).pdf"; //std::wstring sFile = L"/home/oleg/activex/Android intro(2p).pdf";
...@@ -170,7 +170,5 @@ int main(int argc, char *argv[]) ...@@ -170,7 +170,5 @@ int main(int argc, char *argv[])
oRenderer.SaveToFile(L"/home/oleg/activex/1/1.pdf"); oRenderer.SaveToFile(L"/home/oleg/activex/1/1.pdf");
#endif #endif
RELEASEOBJECT(pReader);
return 0; return 0;
} }
...@@ -13,28 +13,19 @@ ifeq ($(OS),Windows_NT) ...@@ -13,28 +13,19 @@ ifeq ($(OS),Windows_NT)
endif endif
else else
UNAME_S := $(shell uname -s) UNAME_S := $(shell uname -s)
UNAME_P := $(shell uname -p)
ifeq ($(UNAME_S),Linux) ifeq ($(UNAME_S),Linux)
PLATFORM := linux PLATFORM := linux
SHARED_EXT := .so* SHARED_EXT := .so*
SHELL_EXT := .sh SHELL_EXT := .sh
LIB_EXT := .a LIB_EXT := .a
MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo) MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo)
ifeq ($(UNAME_P),x86_64)
ARCHITECTURE := 64
endif
ifneq ($(filter %86,$(UNAME_P)),)
ARCHITECTURE := 32
endif
endif endif
ifeq ($(UNAME_S),Darwin) UNAME_P := $(shell uname -p)
PLATFORM := mac ifeq ($(UNAME_P),x86_64)
ARCHITECTURE := 64 ARCHITECTURE := 64
SHARED_EXT := .dylib* endif
SHELL_EXT := .sh ifneq ($(filter %86,$(UNAME_P)),)
LIB_EXT := .a ARCHITECTURE := 32
MAKE := make -j $(shell sysctl -n hw.ncpu)
endif endif
endif endif
......
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