Compare commits

..

30 Commits

Author SHA1 Message Date
2b8efdd9b1 v5.2.4 2018-12-11 16:07:08 +03:00
98a568177d . 2018-11-27 15:26:08 +03:00
f9af786d5a . 2018-11-23 12:19:38 +03:00
394d1e7b38 Remove preload libcef library 2018-11-22 11:24:18 +03:00
45ba99b9bf Up cef version on linux 2018-11-21 16:20:33 +03:00
af7640e736 DocFormat - fix after testing 2018-11-16 18:28:34 +03:00
292781e6fb DocFormat - fix after testing
x2t version up - 2.4.556
2018-11-16 15:50:05 +03:00
9cd97d48b8 MetaFile - fix bugs #39745, #39747 2018-11-16 14:10:37 +03:00
579b441edc . 2018-11-16 12:05:22 +03:00
90f1aa055c OdfFormatReader - fix after testing 2018-11-15 19:49:54 +03:00
d75352f1f2 x2t - fix convert vml -> drawing_ml 2018-11-13 14:29:19 +03:00
eef66b3498 OdfFormat - fix convert same autoshapes 2018-11-12 18:37:19 +03:00
b41170a233 Update .gitignore 2018-11-12 15:17:34 +03:00
5626963bdf Fix build 2018-11-12 12:16:04 +03:00
643f117a92 . 2018-11-12 11:53:01 +03:00
dd24ca837f x2t - version up. 2.4.555. 2018-11-10 19:04:30 +03:00
f555e3f821 OdfFormat - refactoring same auto shapes 2018-11-10 19:03:18 +03:00
07a07a1abd PdfWriter - fix encrypt 2018-11-09 19:18:09 +03:00
30473ee9b7 MacOS build (clang) 2018-11-09 15:38:15 +03:00
8b6e5f17c8 MacOS 2018-11-09 14:06:51 +03:00
4d0e44c8b6 Fix PRODUCT_VERSION substitution 2018-11-07 11:39:03 +03:00
b6b79576a1 Update base.pri 2018-11-06 14:25:39 +03:00
1c1223b148 Fix misprint 2018-11-06 14:22:40 +03:00
9947f058a9 XlsFormat - fix bug #39541 2018-11-06 13:17:16 +03:00
54f55ad2ac Fix build without PRODUCT_VERSION env 2018-11-06 12:22:40 +03:00
e4edb9cca4 Fix current year substitution into copyright on windows 2018-11-02 18:18:18 +03:00
aacea2f015 Fix year in copyright on windows 2018-11-02 17:14:31 +03:00
1475b2fef9 Fix misprint 2018-11-02 16:31:01 +03:00
8e58975095 Add publisher name and version env param 2018-11-02 16:25:26 +03:00
04550f06ad Fix bug with metadata in UTF16 format 2018-11-02 15:20:36 +03:00
50 changed files with 5554 additions and 1047 deletions

2
.gitignore vendored
View File

@ -47,6 +47,8 @@ ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_p.c
ASCOfficeXlsFile2/win32/dlldata.c
OfficeUtils/win32/OfficeUtilsLib/OfficeUtilsLib/ReadMe.txt
X2tConverter/**/Makefile.*
X2tConverter/ASCOfficePPTXFile/PPTXLib/Linux/PPTXFormatLib/Makefile
X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
*.7z
*.obj
*.pdb

View File

@ -1071,7 +1071,9 @@ namespace DocFileFormat
int cpPic = searchNextTextMark(m_document->Text, cpFieldStart, TextMark::Picture);
int cpFieldEnd = searchNextTextMark( m_document->Text, cpFieldStart, TextMark::FieldEndMark );
if (cpFieldStart < cpPic && cpPic < cpFieldEnd)
bool bStartField = _fieldLevels.empty() ? false : (_fieldLevels.back().bBegin && !_fieldLevels.back().bSeparate);
if (cpFieldStart < cpPic && cpPic < cpFieldEnd && !bStartField)
{
writeField(text, cpFieldStart, cpFieldEnd);
text.clear();

View File

@ -31,6 +31,7 @@
*/
#include "MainDocumentMapping.h"
#include "OfficeDrawing/FillStyleBooleanProperties.h"
namespace DocFileFormat
{
@ -83,16 +84,27 @@ namespace DocFileFormat
if ((m_document->GetOfficeArt()) && (m_document->GetOfficeArt()->GetShapeBackgound()))
{
bool bFilled = true;
m_document->DocProperties->bDisplayBackgroundShape = true;
ShapeContainer* pShape = m_document->GetOfficeArt()->GetShapeBackgound();
m_pXmlWriter->WriteNodeBegin ( L"w:background", TRUE);
m_pXmlWriter->WriteAttribute ( L"w:color", L"FFFFFF");
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
VMLShapeMapping oVmlWriter (m_context, m_pXmlWriter, NULL, NULL, _caller);
pShape->Convert(&oVmlWriter);
m_pXmlWriter->WriteNodeEnd (L"w:background");
OptionEntryPtr boolFill = pShape->ExtractOption(fillStyleBooleanProperties);
FillStyleBooleanProperties booleans(boolFill ? boolFill->op : 0);
if (booleans.fUsefFilled && !booleans.fFilled)
{
bFilled = false;
}
if (bFilled)
{
m_pXmlWriter->WriteNodeBegin ( L"w:background", TRUE);
m_pXmlWriter->WriteAttribute ( L"w:color", L"FFFFFF");
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
VMLShapeMapping oVmlWriter (m_context, m_pXmlWriter, NULL, NULL, _caller);
pShape->Convert(&oVmlWriter);
m_pXmlWriter->WriteNodeEnd (L"w:background");
}
}
m_pXmlWriter->WriteNodeBegin( L"w:body", FALSE );

View File

@ -101,6 +101,24 @@ namespace DocFileFormat
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
}
OptionEntryPtr ExtractOption(const PropertyId & prop) const
{
OptionEntryPtr ret;
for ( size_t i = 0; i < this->Children.size(); ++i )
{
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( this->Children[i] );
if ( opt == NULL ) continue;
std::map<PropertyId, OptionEntryPtr>::iterator pFind = opt->OptionsByID.find(prop);
if (pFind != opt->OptionsByID.end())
{
ret = pFind->second;
}
}
return ret;
}
std::vector<OptionEntryPtr> ExtractOptions() const
{
std::vector<OptionEntryPtr> ret;

View File

@ -235,7 +235,7 @@ namespace formulasconvert {
{
convert_with_TableName = withTableName;
boost::wregex complexRef(L"\\[(?:\$)?([^\\.]+?){0,1}\\.(\\${0,1}[\\w^0-9]*\\${0,1}\\d*)(?::(\\${0,1}[^\\.]+?){0,1}\\.(\\${0,1}[\\w^0-9]*\\${0,1}\\d*)){0,1}\\]");
boost::wregex complexRef(L"\\[(?:\\$)?([^\\.]+?){0,1}\\.(\\${0,1}[\\w^0-9]*\\${0,1}\\d*)(?::(\\${0,1}[^\\.]+?){0,1}\\.(\\${0,1}[\\w^0-9]*\\${0,1}\\d*)){0,1}\\]");
/*
[ $ Sheet2 . A1 : ( $ Sheet2)? . B5 ]
*/
@ -494,7 +494,7 @@ namespace formulasconvert {
bool isFormula = check_formula(workstr);
boost::regex_replace(
workstr = boost::regex_replace(
workstr,
boost::wregex(L"('.*?')|(\".*?\")"),
&convert_scobci, boost::match_default | boost::format_all);

View File

@ -108,6 +108,8 @@ static const std::wstring _ooxShapeType[]=
L"custGeom",//uses sub-sub type,
L"polygon",
L"roundRect",
L"bentConnector3",
L"curvedConnector3"
};
@ -243,16 +245,16 @@ void oox_serialize_aLst(std::wostream & strm, const std::vector<odf_reader::_pro
{
names.push_back(L"adj1");
}
else if (std::wstring::npos != shapeGeomPreset.find(L"decagon"))
{
names.push_back(L"vf");
}
else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
{
names.push_back(L"hf");
names.push_back(L"vf");
}
//else if (std::wstring::npos != shapeGeomPreset.find(L"decagon"))
//{
// names.push_back(L"vf");
//}
//else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
// std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
//{
// names.push_back(L"hf");
// names.push_back(L"vf");
//}
else if (std::wstring::npos != shapeGeomPreset.find(L"hexagon"))
{
names.push_back(L"adj");
@ -418,7 +420,7 @@ void _oox_drawing::serialize_shape(std::wostream & strm)
shapeGeomPreset = L"rect";
}
}
else if (sub_type < 10 && sub_type >= 0)
else if (sub_type <= 12 && sub_type >= 0)
{
shapeGeomPreset = _ooxShapeType[sub_type]; //odf -> oox
}

View File

@ -212,7 +212,7 @@ void pptx_serialize_shape(std::wostream & strm, _pptx_drawing & val)
}
CP_XML_NODE(L"p:cNvSpPr")//non visual properies (собственно тока 1 там)
{
if (val.sub_type==1 || val.sub_type==2)CP_XML_ATTR(L"txBox", 1);
if (val.sub_type == 1 || val.sub_type == 2)CP_XML_ATTR(L"txBox", 1);
CP_XML_NODE(L"a:spLocks")
{
CP_XML_ATTR(L"noGrp", 1);

View File

@ -211,13 +211,6 @@ void xlsx_xml_worksheet::write_to(std::wostream & strm)
CP_XML_STREAM() << impl_->drawing_.str();
if (!impl_->tableParts_.str().empty())
{
CP_XML_NODE(L"tableParts")
{
CP_XML_STREAM() << impl_->tableParts_.str();
}
}
if (!impl_->commentsId_.empty())
{
CP_XML_NODE(L"legacyDrawing")
@ -239,6 +232,13 @@ void xlsx_xml_worksheet::write_to(std::wostream & strm)
CP_XML_STREAM() << impl_->controls_.str();
}
}
if (!impl_->tableParts_.str().empty())
{
CP_XML_NODE(L"tableParts")
{
CP_XML_STREAM() << impl_->tableParts_.str();
}
}
CP_XML_STREAM() << impl_->picture_background_.str();
//CP_XML_NODE(L"headerFooter){}

View File

@ -59,17 +59,24 @@ typedef _CP_PTR(xlsx_data_range_values) xlsx_data_range_values_ptr;
class xlsx_data_range_values
{
public:
xlsx_data_range_values(size_t row, size_t col1, size_t col2) : row_header(row), start_column(col1), end_column(col2) {}
xlsx_data_range_values(size_t row, size_t col1, size_t col2) : withHeader(false), filter(false), row_header(row), start_column(col1), end_column(col2)
{
for (size_t i = start_column; i <= end_column; i++)
values.push_back(L"");
}
size_t row_header;
size_t start_column;
size_t end_column;
bool withHeader;
bool filter;
std::vector<std::wstring> values;
void set_value(size_t col, size_t row, const std::wstring& value)
{
while (col - start_column + 1 > values.size())
while (col - start_column + 1 >= values.size())
values.push_back(L"");
values[col - start_column] = value;

View File

@ -119,12 +119,14 @@ void xlsx_table_context::set_database_header (bool val)
if (xlsx_data_ranges_.empty()) return;
xlsx_data_ranges_.back()->withHeader = val;
xlsx_data_ranges_values_.back()->withHeader = val;
}
void xlsx_table_context::set_database_filter (bool val)
{
if (xlsx_data_ranges_.empty()) return;
xlsx_data_ranges_.back()->filter = val;
xlsx_data_ranges_values_.back()->filter = val;
}
void xlsx_table_context::end_database_range()
{
@ -145,7 +147,8 @@ int xlsx_table_context::in_database_range()
for (size_t i = 0; i < xlsx_data_ranges_values_.size(); i++)
{
if (xlsx_data_ranges_values_[i]->in_range(col, row))
if ((xlsx_data_ranges_values_[i]->withHeader || xlsx_data_ranges_values_[i]->filter)
&& xlsx_data_ranges_values_[i]->in_range(col, row))
{
return (int)i;
}
@ -317,6 +320,12 @@ void xlsx_table_context::serialize_tableParts(std::wostream & _Wostream, rels &
CP_XML_ATTR(L"name", xlsx_data_ranges_[it->second]->table_name);
CP_XML_ATTR(L"displayName", xlsx_data_ranges_[it->second]->table_name);
CP_XML_ATTR(L"ref", xlsx_data_ranges_[it->second]->ref);
if (xlsx_data_ranges_[it->second]->withHeader == false &&
xlsx_data_ranges_[it->second]->filter == false)
CP_XML_ATTR(L"headerRowCount", 0);
CP_XML_ATTR(L"totalsRowCount", 0);
CP_XML_ATTR(L"totalsRowShown", 0);
xlsx_data_ranges_[it->second]->serialize_autofilter(CP_XML_STREAM());
@ -331,8 +340,13 @@ void xlsx_table_context::serialize_tableParts(std::wostream & _Wostream, rels &
{
CP_XML_NODE(L"tableColumn")
{
std::wstring column_name = xlsx_data_ranges_values_[it->second]->values[id];
if (column_name.empty())
{
column_name = L"Column_" + std::to_wstring(id + 1);
}
CP_XML_ATTR(L"id", id + 1);
CP_XML_ATTR(L"name", xlsx_data_ranges_values_[it->second]->values[id]);
CP_XML_ATTR(L"name", column_name);
}
}
}

View File

@ -1057,7 +1057,7 @@ void process_build_object::visit(table_table_cell& val)
if (cell_cash.empty())
cell_cash = cell_val;
object_odf_context::_cell cell_= {object_odf_context_.current_table_column_, object_odf_context_.current_table_row_, cell_cash};
object_odf_context::_cell cell_= {(size_t)object_odf_context_.current_table_column_, (size_t)object_odf_context_.current_table_row_, cell_cash};
object_odf_context_.cash_values.push_back(cell_);

View File

@ -79,8 +79,8 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"up-down-arrow-callout" ,L"upDownArrowCallout" ,0 ,0 ,0 },
{L"quad-arrow-callout" ,L"quadArrowCallout" ,0 ,0 ,0 },
{L"circular-arrow" ,L"circularArrow" ,0 ,0 ,0 },
{L"can" ,L"lightningBolt" ,0 ,0 ,0 },
{L"lightning" ,L"can" ,0 ,0 ,0 },
{L"can" ,L"can" ,0 ,0 ,0 },
{L"lightning" ,L"lightningBolt" ,0 ,0 ,0 },
{L"heart" ,L"heart" ,0 ,0 ,0 },
{L"sun" ,L"sun" ,1 ,46875 ,12500 },
{L"moon" ,L"moon" ,0 ,0 ,0 },
@ -222,7 +222,6 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"concave-star6" ,L"" ,0 ,0 ,0 },
{L"signet" ,L"" ,0 ,0 ,0 },
{L"doorplate" ,L"" ,0 ,0 ,0 },
{L"" ,L"round1Rect" ,0 ,0 ,0 },
{L"" ,L"round2DiagRect" ,0 ,0 ,0 },
{L"" ,L"snip2DiagRect" ,0 ,0 ,0 },

View File

@ -1038,7 +1038,9 @@ void draw_shape::docx_convert(oox::docx_conversion_context & Context)
drawing.sub_type = sub_type_;
drawing.additional = additional_;//сюда могут добавиться свойства ...
if (drawing.sub_type !=5 )//line
if (drawing.sub_type != 5 &&
drawing.sub_type != 11 &&
drawing.sub_type != 12 )//line, connectors
{
drawing.additional.push_back(_property(L"text-content", Context.get_drawing_context().get_text_stream_shape()));
}

View File

@ -546,9 +546,9 @@ void draw_enhanced_geometry::find_draw_type_oox()
if (!draw_type_oox_index_)
{
int count = sizeof(_OO_OOX_custom_shapes) / sizeof(_shape_converter);
int pos = odf_type.find(L"ooxml-");
size_t pos = odf_type.find(L"ooxml-");
if (pos < 0)
if (pos == std::wstring::npos)
{
for (long i = 0; i< count; i++)
{
@ -562,7 +562,7 @@ void draw_enhanced_geometry::find_draw_type_oox()
else
{
std::wstring oox_type = odf_type.substr(pos + 6);
for (long i = 0; i< count; i++)
for (long i = 0; i < count; i++)
{
if (_OO_OOX_custom_shapes[i].oox == oox_type)
{
@ -572,7 +572,7 @@ void draw_enhanced_geometry::find_draw_type_oox()
}
}
}
if ((draw_type_oox_index_) && (*draw_type_oox_index_== 179))//L"textBox"
if ((draw_type_oox_index_) && (*draw_type_oox_index_== 96))//L"textBox" "mso-spt24"
{
sub_type_ = 1;//textBox
}
@ -649,17 +649,15 @@ void draw_connector::add_attributes( const xml::attributes_wc_ptr & Attributes )
draw_line_attlist_.add_attributes(Attributes);
draw_shape::add_attributes(Attributes);
sub_type_ = 5; //коннектор - линия, если ломаная (ниже определяется) - то путь
sub_type_ = 10; //коннектор - линия, если ломаная (ниже определяется) - то путь
}
void draw_connector::reset_svg_path()
{
if (!draw_connector_attlist_.svg_d_)
{
bad_shape_ = true;
}
else
if (draw_connector_attlist_.svg_d_)
{
sub_type_ = 8;
std::vector<::svg_path::_polyline> o_Polyline_pt;
std::vector<::svg_path::_polyline> o_Polyline_cm;
@ -707,7 +705,7 @@ void dr3d_scene::add_attributes( const xml::attributes_wc_ptr & Attributes )
{
draw_shape::add_attributes(Attributes);
sub_type_ = 10;
sub_type_ = 12;
}
//-------------------------------------------------------------------------------------------

View File

@ -215,10 +215,18 @@ void draw_path::docx_convert(oox::docx_conversion_context & Context)
void draw_connector::docx_convert(oox::docx_conversion_context & Context)
{
//if (Context.get_drawing_context().get_current_level() >0 )return;
if (draw_connector_attlist_.draw_type_)
{
if (*draw_connector_attlist_.draw_type_ == L"curve")
{
sub_type_ = 11;
}
}
reset_svg_attributes();
common_docx_convert(Context);
//...
reset_svg_path();
draw_shape::docx_convert(Context);
}
void draw_polygon::docx_convert(oox::docx_conversion_context & Context)

View File

@ -298,6 +298,13 @@ void draw_connector::reset_svg_attributes()
}
void draw_connector::pptx_convert(oox::pptx_conversion_context & Context)
{
if (draw_connector_attlist_.draw_type_)
{
if (*draw_connector_attlist_.draw_type_ == L"curve")
{
sub_type_ = 11;
}
}
reset_svg_attributes();
reset_svg_path();
///////////////////////////////////////////////////////////////////////

View File

@ -211,6 +211,15 @@ void draw_path::xlsx_convert(oox::xlsx_conversion_context & Context)
void draw_connector::xlsx_convert(oox::xlsx_conversion_context & Context)
{
if (draw_connector_attlist_.draw_type_)
{
if (*draw_connector_attlist_.draw_type_ == L"curve")
{
sub_type_ = 11;
}
}
reset_svg_attributes();
reset_svg_path();
///////////////////////////////////////////////////////////////////////
Context.get_drawing_context().start_shape(6);

View File

@ -42,9 +42,9 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeAccentBorderCallout1 = 0,
{ L"" , 7}, // shapetypeAccentBorderCallout2,
{ L"" , 7}, // shapetypeAccentBorderCallout3,
{ L"mso-spt44" , 7}, // shapetypeAccentCallout1,
{ L"mso-spt45" , 7}, // shapetypeAccentCallout2,
{ L"mso-spt46" , 7}, // shapetypeAccentCallout3,
{ L"" , 7}, // shapetypeAccentCallout1,
{ L"" , 7}, // shapetypeAccentCallout2,
{ L"" , 7}, // shapetypeAccentCallout3,
{ L"actionButtonBackPrevious" , 7}, // shapetypeActionButtonBackPrevious, //mso-spt194
{ L"mso-spt196" , 7}, // shapetypeActionButtonBeginning,
{ L"mso-spt189" , 7}, // shapetypeActionButtonBlank,
@ -58,23 +58,23 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"mso-spt197" , 7}, // shapetypeActionButtonReturn,
{ L"mso-spt199" , 7}, // shapetypeActionButtonSound,
{ L"" , 7}, // shapetypeArc,
{ L"mso-spt91" , 7}, // shapetypeBentArrow,
{ L"mso-spt33" , 7}, // shapetypeBentConnector2,
{ L"mso-spt34" , 7}, // shapetypeBentConnector3,
{ L"mso-spt35" , 7}, // shapetypeBentConnector4,
{ L"mso-spt36" , 7}, // shapetypeBentConnector5,
{ L"" , 7}, // shapetypeBentArrow,
{ L"" , 9}, // shapetypeBentConnector2,
{ L"" , 9}, // shapetypeBentConnector3,
{ L"" , 9}, // shapetypeBentConnector4,
{ L"" , 9}, // shapetypeBentConnector5,
{ L"" , 7}, // shapetypeBentUpArrow,
{ L"quad-bevel" , 7}, // shapetypeBevel,
{ L"" , 7}, // shapetypeBevel,
{ L"" , 7}, // shapetypeBlockArc,
{ L"mso-spt49" , 7}, // shapetypeBorderCallout1,
{ L"mso-spt50" , 7}, // shapetypeBorderCallout2,
{ L"mso-spt51" , 7}, // shapetypeBorderCallout3,
{ L"brace-pair" , 7}, // shapetypeBracePair,
{ L"" , 7}, // shapetypeBorderCallout1,
{ L"" , 7}, // shapetypeBorderCallout2,
{ L"" , 7}, // shapetypeBorderCallout3,
{ L"" , 7}, // shapetypeBracePair,
{ L"" , 7}, // shapetypeBracketPair,
{ L"mso-spt41" , 7}, // shapetypeCallout1,
{ L"mso-spt42" , 7}, // shapetypeCallout2,
{ L"mso-spt43" , 7}, // shapetypeCallout3,
{ L"can" , 7}, // shapetypeCan,
{ L"" , 7}, // shapetypeCallout1,
{ L"" , 7}, // shapetypeCallout2,
{ L"" , 7}, // shapetypeCallout3,
{ L"" , 7}, // shapetypeCan,
{ L"" , 7}, // shapetypeChartPlus,
{ L"" , 7}, // shapetypeChartStar,
{ L"" , 7}, // shapetypeChartX,
@ -82,18 +82,18 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeChord,
{ L"" , 7}, // shapetypeCircularArrow,
{ L"cloud" , 7}, // shapetypeCloud,
{ L"cloud-callout" , 7}, // shapetypeCloudCallout,
{ L"" , 7}, // shapetypeCloudCallout,
{ L"" , 7}, // shapetypeCorner,
{ L"" , 7}, // shapetypeCornerTabs,
{ L"cube" , 7}, // shapetypeCube,
{ L"mso-spt37" , 7}, // shapetypeCurvedConnector2,
{ L"mso-spt38" , 7}, // shapetypeCurvedConnector3,
{ L"mso-spt39" , 7}, // shapetypeCurvedConnector4,
{ L"mso-spt40" , 7}, // shapetypeCurvedConnector5,
{ L"" , 7}, // shapetypeCube,
{ L"" , 10}, // shapetypeCurvedConnector2,
{ L"" , 10}, // shapetypeCurvedConnector3,
{ L"" , 10}, // shapetypeCurvedConnector4,
{ L"" , 10}, // shapetypeCurvedConnector5,
{ L"" , 7}, // shapetypeCurvedDownArrow,
{ L"" , 7}, // shapetypeCurvedLeftArrow,
{ L"" , 7}, // shapetypeCurvedRightArrow,
{ L"mso-spt104" , 7}, // shapetypeCurvedUpArrow,
{ L"" , 7}, // shapetypeCurvedUpArrow,
{ L"" , 7}, // shapetypeDecagon,
{ L"" , 7}, // shapetypeDiagStripe,
{ L"" , 7}, // shapetypeDiamond,
@ -103,8 +103,8 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeDownArrow,
{ L"" , 7}, // shapetypeDownArrowCallout,
{ L"ellipse" , 3}, // shapetypeEllipse,
{ L"mso-spt107" , 7}, // shapetypeEllipseRibbon,
{ L"mso-spt108" , 7}, // shapetypeEllipseRibbon2,
{ L"" , 7}, // shapetypeEllipseRibbon,
{ L"" , 7}, // shapetypeEllipseRibbon2,
{ L"flowchart-alternate-process" , 7}, // shapetypeFlowChartAlternateProcess,
{ L"flowchart-collate" , 7}, // shapetypeFlowChartCollate,
{ L"flowchart-connector" , 7}, // shapetypeFlowChartConnector,
@ -134,23 +134,23 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"flowchart-sort" , 7}, // shapetypeFlowChartSort,
{ L"flowchart-summing-junction" , 7}, // shapetypeFlowChartSummingJunction,
{ L"flowchart-terminator" , 7}, // shapetypeFlowChartTerminator,
{ L"paper" , 7}, // shapetypeFoldedCorner,
{ L"" , 7}, // shapetypeFoldedCorner,
{ L"" , 7}, // shapetypeFrame,
{ L"" , 7}, // shapetypeFunnel,
{ L"" , 7}, // shapetypeGear6,
{ L"" , 7}, // shapetypeGear9,
{ L"" , 7}, // shapetypeHalfFrame,
{ L"heart" , 7}, // shapetypeHeart,
{ L"" , 7}, // shapetypeHeart,
{ L"" , 7}, // shapetypeHeptagon,
{ L"hexagon" , 7}, // shapetypeHexagon,
{ L"" , 7}, // shapetypeHexagon,
{ L"" , 7}, // shapetypeHomePlate,
{ L"horizontal-scroll" , 7}, // shapetypeHorizontalScroll,
{ L"" , 7}, // shapetypeIrregularSeal1,
{ L"" , 7}, // shapetypeIrregularSeal2,
{ L"" , 7}, // shapetypeLeftArrow,
{ L"" , 7}, // shapetypeLeftArrowCallout,
{ L"left-brace" , 7}, // shapetypeLeftBrace,
{ L"left-bracket" , 7}, // shapetypeLeftBracket,
{ L"" , 7}, // shapetypeLeftBrace,
{ L"" , 7}, // shapetypeLeftBracket,
{ L"" , 7}, // shapetypeLeftCircularArrow,
{ L"" , 7}, // shapetypeLeftRightArrow,
{ L"left-right-arrow-callout" , 7}, // shapetypeLeftRightArrowCallout,
@ -158,7 +158,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeLeftRightRibbon,
{ L"" , 7}, // shapetypeLeftRightUpArrow,
{ L"" , 7}, // shapetypeLeftUpArrow,
{ L"lightning" , 7}, // shapetypeLightningBolt,
{ L"" , 7}, // shapetypeLightningBolt,
{ L"" , 5}, // shapetypeLine,
{ L"" , 7}, // shapetypeLineInv,
{ L"" , 7}, // shapetypeMathDivide,
@ -167,27 +167,27 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeMathMultiply,
{ L"" , 7}, // shapetypeMathNotEqual,
{ L"" , 7}, // shapetypeMathPlus,
{ L"moon" , 7}, // shapetypeMoon,
{ L"" , 7}, // shapetypeMoon,
{ L"" , 7}, // shapetypeNonIsoscelesTrapezoid,
{ L"forbidden" , 7}, // shapetypeNoSmoking,
{ L"" , 7}, // shapetypeNotchedRightArrow,
{ L"octagon" , 7}, // shapetypeOctagon,
{ L"" , 7}, // shapetypeOctagon,
{ L"" , 7}, // shapetypeParallelogram,
{ L"pentagon" , 7}, // shapetypePentagon,
{ L"" , 7}, // shapetypePentagon,
{ L"" , 7}, // shapetypePie,
{ L"" , 7}, // shapetypePieWedge,
{ L"" , 7}, // shapetypePlaque,
{ L"" , 7}, // shapetypePlaqueTabs,
{ L"" , 7}, // shapetypePlus,
{ L"quad-arrow" , 7}, // shapetypeQuadArrow,
{ L"quad-arrow-callout" , 7}, // shapetypeQuadArrowCallout,
{ L"" , 7}, // shapetypeQuadArrowCallout,
{ L"rectangle" , 2}, // shapetypeRect,
{ L"mso-spt53" , 7}, // shapetypeRibbon,
{ L"mso-spt54" , 7}, // shapetypeRibbon2,
{ L"" , 7}, // shapetypeRibbon,
{ L"" , 7}, // shapetypeRibbon2,
{ L"" , 7}, // shapetypeRightArrow,
{ L"" , 7}, // shapetypeRightArrowCallout,
{ L"right-brace" , 7}, // shapetypeRightBrace,
{ L"right-bracket" , 7}, // shapetypeRightBracket,
{ L"" , 7}, // shapetypeRightBrace,
{ L"" , 7}, // shapetypeRightBracket,
{ L"" , 7}, // shapetypeRound1Rect,
{ L"" , 7}, // shapetypeRound2DiagRect,
{ L"" , 7}, // shapetypeRound2SameRect,
@ -209,7 +209,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeStar6,
{ L"" , 7}, // shapetypeStar7,
{ L"star8" , 7}, // shapetypeStar8,
{ L"" , 7}, // shapetypeStraightConnector1,
{ L"" , 5}, // shapetypeStraightConnector1,
{ L"striped-right-arrow" , 7}, // shapetypeStripedRightArrow,
{ L"" , 7}, // shapetypeSun,
{ L"" , 7}, // shapetypeSwooshArrow,
@ -223,9 +223,9 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"mso-spt101" , 7}, // shapetypeUturnArrow,
{ L"vertical-scroll" , 7}, // shapetypeVerticalScroll,
{ L"" , 7}, // shapetypeWave,
{ L"round-callout" , 7}, // shapetypeWedgeEllipseCallout,
{ L"rectangular-callout" , 7}, // shapetypeWedgeRectCallout,
{ L"round-rectangular-callout" , 7}, // shapetypeWedgeRoundRectCallout,
{ L"" , 7}, // shapetypeWedgeEllipseCallout,
{ L"" , 7}, // shapetypeWedgeRectCallout,
{ L"" , 7}, // shapetypeWedgeRoundRectCallout,
{ L"mso-spt17" , 7}, // shapetypeBallon,
{ L"up-right-arrow" , 7}, // shapetypeRightUpArrow,
{ L"fontwork-arch-down-pour" , 7}, // shapetypeTextArchDownPour,

View File

@ -31,11 +31,336 @@
*/
#include "../oox_shape_defines.h"
// shapetypeAccentBorderCallout1,
// shapetypeAccentBorderCallout2,
// shapetypeAccentBorderCallout3,
//+ shapetypeAccentBorderCallout1,
//+ shapetypeAccentBorderCallout2,
//+ shapetypeAccentBorderCallout3,
//+ shapetypeAccentCallout1
//+ shapetypeAccentCallout2
//+ shapetypeAccentCallout3
//+ shapetypeBorderCallout1
//+ shapetypeBorderCallout2
//+ shapetypeBorderCallout3
namespace cpdoccore
{
class oox_shape_AccentCallout1 : public oox_shape
{
public:
oox_shape_AccentCallout1()
{
odf_type_name =L"ooxml-accentCallout1";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentCallout2 : public oox_shape
{
public:
oox_shape_AccentCallout2()
{
odf_type_name =L"ooxml-accentCallout2";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentCallout3 : public oox_shape
{
public:
oox_shape_AccentCallout3()
{
odf_type_name =L"ooxml-accentCallout3";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout1 : public oox_shape
{
public:
oox_shape_BorderCallout1()
{
odf_type_name =L"ooxml-borderCallout1";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout2 : public oox_shape
{
public:
oox_shape_BorderCallout2()
{
odf_type_name =L"ooxml-borderCallout2";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout3 : public oox_shape
{
public:
oox_shape_BorderCallout3()
{
odf_type_name =L"ooxml-borderCallout3";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout1 : public oox_shape
{
public:
oox_shape_AccentBorderCallout1()
{
odf_type_name =L"ooxml-accentBorderCallout1";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout2 : public oox_shape
{
public:
oox_shape_AccentBorderCallout2()
{
odf_type_name =L"ooxml-accentBorderCallout2";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout3 : public oox_shape
{
public:
oox_shape_AccentBorderCallout3()
{
odf_type_name =L"ooxml-accentBorderCallout3";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -608,230 +608,157 @@ public:
{
odf_type_name = L"ooxml-circularArrow";
enhanced_path = L"M ?f60 ?f61 G ?f10 ?f12 ?f197 ?f198 L ?f172 ?f173 ?f54 ?f55 ?f174 ?f175 ?f159 ?f160 G ?f13 ?f14 ?f199 ?f200 Z N";
text_areas = L"?f193 ?f195 ?f194 ?f196";
modifiers = L"12500 515062 20457681 17744048 18489";
view_box = L"0 0 0 0";
enhanced_path = L"M 534468 1430865 A ?f91 ?f92 ?f93 ?f94 534468 1430865 ?f88 ?f90 W ?f95 ?f96 ?f97 ?f98 534468 1430865 ?f88 ?f90 L 853493 790375 695381 939240 547047 613089 643004 668602 A ?f138 ?f139 ?f140 ?f141 643004 668602 ?f135 ?f137 W ?f142 ?f143 ?f144 ?f145 643004 668602 ?f135 ?f137 Z N";
text_areas = L"?f48 ?f50 ?f49 ?f51";
view_box = L"0 0 880110 1583055";
glue_points = L"?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47";
add(L"f0", L"if(0-$4 ,0,if(25000-$4 ,$4 ,25000))");
add(L"f1", L"?f0 *2/1");
add(L"f2", L"if(0-$0 ,0,if(?f1 -$0 ,$0 ,?f1 ))");
add(L"f3", L"if(1-$2 ,1,if(21599999-$2 ,$2 ,21599999))");
add(L"f4", L"if(0-$3 ,0,if(21599999-$3 ,$3 ,21599999))");
add(L"f5", L"min(logwidth,logheight)");
add(L"f6", L"?f5 *?f2 /100000");
add(L"f7", L"?f5 *?f0 /100000");
add(L"f8", L"?f6 *1/2");
add(L"f9", L"logwidth/2");
add(L"f10", L"?f9 +?f8 -?f7 ");
add(L"f11", L"logheight/2");
add(L"f12", L"?f11 +?f8 -?f7 ");
add(L"f13", L"?f10 +0-?f6 ");
add(L"f14", L"?f12 +0-?f6 ");
add(L"f15", L"?f13 +?f8 -0");
add(L"f16", L"?f14 +?f8 -0");
add(L"f17", L"?f15 *sin(pi*(?f3 )/10800000)");
add(L"f18", L"?f16 *cos(pi*(?f3 )/10800000)");
add(L"f19", L"?f15 *(cos(atan2(?f17 ,?f18 )))");
add(L"f20", L"?f16 *(sin(atan2(?f17 ,?f18 )))");
add(L"f21", L"logwidth/2");
add(L"f22", L"?f21 +?f19 -0");
add(L"f23", L"logheight/2");
add(L"f24", L"?f23 +?f20 -0");
add(L"f25", L"min(?f13 ,?f14 )");
add(L"f26", L"?f19 *?f19 /1");
add(L"f27", L"?f20 *?f20 /1");
add(L"f28", L"?f25 *?f25 /1");
add(L"f29", L"?f26 +0-?f28 ");
add(L"f30", L"?f27 +0-?f28 ");
add(L"f31", L"?f29 *?f30 /?f26 ");
add(L"f32", L"?f31 *1/?f27 ");
add(L"f33", L"1+0-?f32 ");
add(L"f34", L"sqrt(?f33 )");
add(L"f35", L"?f29 *1/?f19 ");
add(L"f36", L"?f35 *1/?f20 ");
add(L"f37", L"(1+?f34 )/?f36 ");
add(L"f38", L"(10800000*atan2(?f37 ,1))/pi");
add(L"f39", L"?f38 +21600000-0");
add(L"f40", L"if(?f38 ,?f38 ,?f39 )");
add(L"f41", L"?f40 +0-?f3 ");
add(L"f42", L"?f41 +21600000-0");
add(L"f43", L"if(?f41 ,?f41 ,?f42 )");
add(L"f44", L"?f43 +0-10800000");
add(L"f45", L"?f43 +0-21600000");
add(L"f46", L"if(?f44 ,?f45 ,?f43 )");
add(L"f47", L"abs(?f46 )");
add(L"f48", L"if(0-$1 ,0,if(?f47 -$1 ,$1 ,?f47 ))");
add(L"f49", L"?f3 +?f48 -0");
add(L"f50", L"?f15 *sin(pi*(?f49 )/10800000)");
add(L"f51", L"?f16 *cos(pi*(?f49 )/10800000)");
add(L"f52", L"?f15 *(cos(atan2(?f50 ,?f51 )))");
add(L"f53", L"?f16 *(sin(atan2(?f50 ,?f51 )))");
add(L"f54", L"?f21 +?f52 -0");
add(L"f55", L"?f23 +?f53 -0");
add(L"f56", L"?f10 *sin(pi*(?f4 )/10800000)");
add(L"f57", L"?f12 *cos(pi*(?f4 )/10800000)");
add(L"f58", L"?f10 *(cos(atan2(?f56 ,?f57 )))");
add(L"f59", L"?f12 *(sin(atan2(?f56 ,?f57 )))");
add(L"f60", L"?f21 +?f58 -0");
add(L"f61", L"?f23 +?f59 -0");
add(L"f62", L"?f7 *cos(pi*(?f49 )/10800000)");
add(L"f63", L"?f7 *sin(pi*(?f49 )/10800000)");
add(L"f64", L"?f22 +?f62 -0");
add(L"f65", L"?f24 +?f63 -0");
add(L"f66", L"?f7 *cos(pi*(?f49 )/10800000)");
add(L"f67", L"?f7 *sin(pi*(?f49 )/10800000)");
add(L"f68", L"?f22 +0-?f66 ");
add(L"f69", L"?f24 +0-?f67 ");
add(L"f70", L"?f68 +0-?f21 ");
add(L"f71", L"?f69 +0-?f23 ");
add(L"f72", L"?f64 +0-?f21 ");
add(L"f73", L"?f65 +0-?f23 ");
add(L"f74", L"min(?f10 ,?f12 )");
add(L"f75", L"?f70 *?f74 /?f10 ");
add(L"f76", L"?f71 *?f74 /?f12 ");
add(L"f77", L"?f72 *?f74 /?f10 ");
add(L"f78", L"?f73 *?f74 /?f12 ");
add(L"f79", L"?f77 +0-?f75 ");
add(L"f80", L"?f78 +0-?f76 ");
add(L"f81", L"sqrt(?f79 *?f79 +?f80 *?f80 +0*0)");
add(L"f82", L"?f75 *?f78 /1");
add(L"f83", L"?f77 *?f76 /1");
add(L"f84", L"?f82 +0-?f83 ");
add(L"f85", L"?f74 *?f74 /1");
add(L"f86", L"?f81 *?f81 /1");
add(L"f87", L"?f85 *?f86 /1");
add(L"f88", L"?f84 *?f84 /1");
add(L"f89", L"?f87 +0-?f88 ");
add(L"f90", L"max(?f89 ,0)");
add(L"f91", L"sqrt(?f90 )");
add(L"f92", L"?f80 *-1/1");
add(L"f93", L"if(?f92 ,-1,1)");
add(L"f94", L"?f93 *?f79 /1");
add(L"f95", L"?f94 *?f91 /1");
add(L"f96", L"?f84 *?f80 /1");
add(L"f97", L"(?f96 +?f95 )/?f86 ");
add(L"f98", L"?f96 +0-?f95 ");
add(L"f99", L"?f98 *1/?f86 ");
add(L"f100", L"abs(?f80 )");
add(L"f101", L"?f100 *?f91 /1");
add(L"f102", L"?f84 *?f79 /-1");
add(L"f103", L"(?f102 +?f101 )/?f86 ");
add(L"f104", L"?f102 +0-?f101 ");
add(L"f105", L"?f104 *1/?f86 ");
add(L"f106", L"?f77 +0-?f97 ");
add(L"f107", L"?f77 +0-?f99 ");
add(L"f108", L"?f78 +0-?f103 ");
add(L"f109", L"?f78 +0-?f105 ");
add(L"f110", L"sqrt(?f106 *?f106 +?f108 *?f108 +0*0)");
add(L"f111", L"sqrt(?f107 *?f107 +?f109 *?f109 +0*0)");
add(L"f112", L"?f111 +0-?f110 ");
add(L"f113", L"if(?f112 ,?f97 ,?f99 )");
add(L"f114", L"if(?f112 ,?f103 ,?f105 )");
add(L"f115", L"?f113 *?f10 /?f74 ");
add(L"f116", L"?f114 *?f12 /?f74 ");
add(L"f117", L"?f21 +?f115 -0");
add(L"f118", L"?f23 +?f116 -0");
add(L"f119", L"?f70 *?f25 /?f13 ");
add(L"f120", L"?f71 *?f25 /?f14 ");
add(L"f121", L"?f72 *?f25 /?f13 ");
add(L"f122", L"?f73 *?f25 /?f14 ");
add(L"f123", L"?f121 +0-?f119 ");
add(L"f124", L"?f122 +0-?f120 ");
add(L"f125", L"sqrt(?f123 *?f123 +?f124 *?f124 +0*0)");
add(L"f126", L"?f119 *?f122 /1");
add(L"f127", L"?f121 *?f120 /1");
add(L"f128", L"?f126 +0-?f127 ");
add(L"f129", L"?f25 *?f25 /1");
add(L"f130", L"?f125 *?f125 /1");
add(L"f131", L"?f129 *?f130 /1");
add(L"f132", L"?f128 *?f128 /1");
add(L"f133", L"?f131 +0-?f132 ");
add(L"f134", L"max(?f133 ,0)");
add(L"f135", L"sqrt(?f134 )");
add(L"f136", L"?f93 *?f123 /1");
add(L"f137", L"?f136 *?f135 /1");
add(L"f138", L"?f128 *?f124 /1");
add(L"f139", L"(?f138 +?f137 )/?f130 ");
add(L"f140", L"?f138 +0-?f137 ");
add(L"f141", L"?f140 *1/?f130 ");
add(L"f142", L"abs(?f124 )");
add(L"f143", L"?f142 *?f135 /1");
add(L"f144", L"?f128 *?f123 /-1");
add(L"f145", L"(?f144 +?f143 )/?f130 ");
add(L"f146", L"?f144 +0-?f143 ");
add(L"f147", L"?f146 *1/?f130 ");
add(L"f148", L"?f119 +0-?f139 ");
add(L"f149", L"?f119 +0-?f141 ");
add(L"f150", L"?f120 +0-?f145 ");
add(L"f151", L"?f120 +0-?f147 ");
add(L"f152", L"sqrt(?f148 *?f148 +?f150 *?f150 +0*0)");
add(L"f153", L"sqrt(?f149 *?f149 +?f151 *?f151 +0*0)");
add(L"f154", L"?f153 +0-?f152 ");
add(L"f155", L"if(?f154 ,?f139 ,?f141 )");
add(L"f156", L"if(?f154 ,?f145 ,?f147 )");
add(L"f157", L"?f155 *?f13 /?f25 ");
add(L"f158", L"?f156 *?f14 /?f25 ");
add(L"f159", L"?f21 +?f157 -0");
add(L"f160", L"?f23 +?f158 -0");
add(L"f161", L"(10800000*atan2(?f158 ,?f157 ))/pi");
add(L"f162", L"?f161 +21600000-0");
add(L"f163", L"if(?f161 ,?f161 ,?f162 )");
add(L"f164", L"?f4 +0-?f163 ");
add(L"f165", L"?f164 +0-21600000");
add(L"f166", L"if(?f164 ,?f165 ,?f164 )");
add(L"f167", L"?f117 +0-?f159 ");
add(L"f168", L"?f118 +0-?f160 ");
add(L"f169", L"sqrt(?f167 *?f167 +?f168 *?f168 +0*0)");
add(L"f170", L"?f169 *1/2");
add(L"f171", L"?f170 +0-?f7 ");
add(L"f172", L"if(?f171 ,?f117 ,?f64 )");
add(L"f173", L"if(?f171 ,?f118 ,?f65 )");
add(L"f174", L"if(?f171 ,?f159 ,?f68 )");
add(L"f175", L"if(?f171 ,?f160 ,?f69 )");
add(L"f176", L"(10800000*atan2(?f116 ,?f115 ))/pi");
add(L"f177", L"?f176 +21600000-0");
add(L"f178", L"if(?f176 ,?f176 ,?f177 )");
add(L"f179", L"?f178 +0-?f4 ");
add(L"f180", L"?f179 +21600000-0");
add(L"f181", L"if(?f179 ,?f179 ,?f180 )");
add(L"f182", L"?f15 *sin(pi*(?f4 )/10800000)");
add(L"f183", L"?f16 *cos(pi*(?f4 )/10800000)");
add(L"f184", L"?f15 *(cos(atan2(?f182 ,?f183 )))");
add(L"f185", L"?f16 *(sin(atan2(?f182 ,?f183 )))");
add(L"f186", L"?f21 +?f184 -0");
add(L"f187", L"?f23 +?f185 -0");
add(L"f188", L"?f4 +0-5400000");
add(L"f189", L"?f49 +5400000-0");
add(L"f190", L"?f49 +10800000-0");
add(L"f191", L"?f10 *cos(pi*(2700000)/10800000)");
add(L"f192", L"?f12 *sin(pi*(2700000)/10800000)");
add(L"f193", L"?f21 +0-?f191 ");
add(L"f194", L"?f21 +?f191 -0");
add(L"f195", L"?f23 +0-?f192 ");
add(L"f196", L"?f23 +?f192 -0");
add(L"f197", L"(?f4 )/60000.0");
add(L"f198", L"(?f181 )/60000.0");
add(L"f199", L"(?f163 )/60000.0");
add(L"f200", L"(?f166 )/60000.0");
/////////////////////////////////////////////////////////
_handle h;
h.position = L"?f54 ?f55";
handles.push_back(h);
h.position = L"?f60 ?f61";
handles.push_back(h);
h.position = L"?f117 ?f118";
h.r_minimum = L"0";
h.r_maximum = L"?f1";
handles.push_back(h);
h.position = L"?f68 ?f69";
h.r_minimum = L"0";
h.r_maximum = L"25000";
handles.push_back(h);
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"5419351 / 1725033");
add(L"f9", L"180");
add(L"f10", L"?f7 / 880110");
add(L"f11", L"?f6 / 1583055");
add(L"f12", L"695381 - 440055");
add(L"f13", L"939240 - 791527");
add(L"f14", L"sqrt(?f12 * ?f12 + ?f13 * ?f13 + 0 * 0)");
add(L"f15", L"atan2(?f12, ?f13)");
add(L"f16", L"?f15 + ?f1");
add(L"f17", L"?f16 * ?f9 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"534468 - 440055");
add(L"f20", L"1430865 - 791527");
add(L"f21", L"sqrt(?f19 * ?f19 + ?f20 * ?f20 + 0 * 0)");
add(L"f22", L"atan2(?f19, ?f20)");
add(L"f23", L"?f22 + ?f1");
add(L"f24", L"?f23 * ?f9 / ?f0");
add(L"f25", L"0 - ?f24");
add(L"f26", L"756945 - 440055");
add(L"f27", L"734520 - 791527");
add(L"f28", L"sqrt(?f26 * ?f26 + ?f27 * ?f27 + 0 * 0)");
add(L"f29", L"atan2(?f26, ?f27)");
add(L"f30", L"?f29 + ?f1");
add(L"f31", L"?f30 * ?f9 / ?f0");
add(L"f32", L"0 - ?f31");
add(L"f33", L"547047 - 440055");
add(L"f34", L"613089 - 791527");
add(L"f35", L"sqrt(?f33 * ?f33 + ?f34 * ?f34 + 0 * 0)");
add(L"f36", L"atan2(?f33, ?f34)");
add(L"f37", L"?f36 + ?f1");
add(L"f38", L"?f37 * ?f9 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"525840 / ?f10");
add(L"f41", L"1372440 / ?f11");
add(L"f42", L"853493 / ?f10");
add(L"f43", L"790375 / ?f11");
add(L"f44", L"695381 / ?f10");
add(L"f45", L"939240 / ?f11");
add(L"f46", L"547047 / ?f10");
add(L"f47", L"613089 / ?f11");
add(L"f48", L"215163 / ?f10");
add(L"f49", L"664947 / ?f10");
add(L"f50", L"318107 / ?f11");
add(L"f51", L"1264948 / ?f11");
add(L"f52", L"21550000 - 16092125");
add(L"f53", L"if(?f52, 16092125, 21550000)");
add(L"f54", L"-21550000 - ?f53");
add(L"f55", L"if(?f54, -21550000, ?f53)");
add(L"f56", L"4895979 + ?f55");
add(L"f57", L"4895979 + ?f1");
add(L"f58", L"?f57 * ?f8 / ?f0");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * 318045");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * 669518");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"318045 * 669518 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"534468 - ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"1430865 - ?f70");
add(L"f72", L"?f69 - 318045");
add(L"f73", L"?f71 - 669518");
add(L"f74", L"?f69 + 318045");
add(L"f75", L"?f71 + 669518");
add(L"f76", L"?f56 + ?f1");
add(L"f77", L"?f76 * ?f8 / ?f0");
add(L"f78", L"0 - ?f77");
add(L"f79", L"cos(?f78)");
add(L"f80", L"0 - ?f79");
add(L"f81", L"?f80 * 318045");
add(L"f82", L"sin(?f78)");
add(L"f83", L"0 - ?f82");
add(L"f84", L"?f83 * 669518");
add(L"f85", L"sqrt(?f81 * ?f81 + ?f84 * ?f84 + 0 * 0)");
add(L"f86", L"318045 * 669518 / ?f85");
add(L"f87", L"?f83 * ?f86");
add(L"f88", L"?f69 + ?f87");
add(L"f89", L"?f80 * ?f86");
add(L"f90", L"?f71 + ?f89");
add(L"f91", L"if(?f55, 534468, ?f72)");
add(L"f92", L"if(?f55, 1430865, ?f73)");
add(L"f93", L"if(?f55, 534468, ?f74)");
add(L"f94", L"if(?f55, 1430865, ?f75)");
add(L"f95", L"if(?f55, ?f72, ?f88)");
add(L"f96", L"if(?f55, ?f73, ?f90)");
add(L"f97", L"if(?f55, ?f74, ?f88)");
add(L"f98", L"if(?f55, ?f75, ?f90)");
add(L"f99", L"21550000 - -14831828");
add(L"f100", L"if(?f99, -14831828, 21550000)");
add(L"f101", L"-21550000 - ?f100");
add(L"f102", L"if(?f101, -21550000, ?f100)");
add(L"f103", L"19727807 + ?f102");
add(L"f104", L"19727807 + ?f1");
add(L"f105", L"?f104 * ?f8 / ?f0");
add(L"f106", L"0 - ?f105");
add(L"f107", L"cos(?f106)");
add(L"f108", L"0 - ?f107");
add(L"f109", L"?f108 * 208032");
add(L"f110", L"sin(?f106)");
add(L"f111", L"0 - ?f110");
add(L"f112", L"?f111 * 559504");
add(L"f113", L"sqrt(?f109 * ?f109 + ?f112 * ?f112 + 0 * 0)");
add(L"f114", L"208032 * 559504 / ?f113");
add(L"f115", L"?f111 * ?f114");
add(L"f116", L"643004 - ?f115");
add(L"f117", L"?f108 * ?f114");
add(L"f118", L"668602 - ?f117");
add(L"f119", L"?f116 - 208032");
add(L"f120", L"?f118 - 559504");
add(L"f121", L"?f116 + 208032");
add(L"f122", L"?f118 + 559504");
add(L"f123", L"?f103 + ?f1");
add(L"f124", L"?f123 * ?f8 / ?f0");
add(L"f125", L"0 - ?f124");
add(L"f126", L"cos(?f125)");
add(L"f127", L"0 - ?f126");
add(L"f128", L"?f127 * 208032");
add(L"f129", L"sin(?f125)");
add(L"f130", L"0 - ?f129");
add(L"f131", L"?f130 * 559504");
add(L"f132", L"sqrt(?f128 * ?f128 + ?f131 * ?f131 + 0 * 0)");
add(L"f133", L"208032 * 559504 / ?f132");
add(L"f134", L"?f130 * ?f133");
add(L"f135", L"?f116 + ?f134");
add(L"f136", L"?f127 * ?f133");
add(L"f137", L"?f118 + ?f136");
add(L"f138", L"if(?f102, 643004, ?f119)");
add(L"f139", L"if(?f102, 668602, ?f120)");
add(L"f140", L"if(?f102, 643004, ?f121)");
add(L"f141", L"if(?f102, 668602, ?f122)");
add(L"f142", L"if(?f102, ?f119, ?f135)");
add(L"f143", L"if(?f102, ?f120, ?f137)");
add(L"f144", L"if(?f102, ?f121, ?f135)");
add(L"f145", L"if(?f102, ?f122, ?f137)");
}
};
class oox_shape_SwooshArrow : public oox_shape
@ -990,4 +917,5 @@ public:
handles.push_back(h2);
}
};
}

View File

@ -35,6 +35,14 @@
//+ shapetypeRightArrowCallout
//+ shapetypeUpArrowCallout
//+ shapetypeDownArrowCallout
//+ shapetypeCallout1
//+ shapetypeCallout2
//- shapetypeCallout3
//+ shapetypeWedgeRectCallout
//+ shapetypeWedgeRoundRectCallout
//+ shapetypeCloudCallout
//+ shapetypeWedgeEllipseCallout
//+ shapetypeQuadArrowCallout
namespace cpdoccore
{
@ -277,5 +285,329 @@ public:
handles.push_back(h2);
}
};
class oox_shape_Callout1 : public oox_shape
{
public:
oox_shape_Callout1()
{
odf_type_name =L"ooxml-callout1";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Callout2 : public oox_shape
{
public:
oox_shape_Callout2()
{
odf_type_name =L"ooxml-callout2";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_CloudCallout : public oox_shape
{
public:
oox_shape_CloudCallout()
{
odf_type_name =L"ooxml-cloudCallout";
enhanced_path = L"M 1930 7160 C 1530 4490 3400 1970 5270 1970 5860 1950 6470 2210 6970 2600 7450 1390 8340 650 9340 650 10004 690 10710 1050 11210 1700 11570 630 12330 0 13150 0 13840 0 14470 460 14870 1160 15330 440 16020 0 16740 0 17910 0 18900 1130 19110 2710 20240 3150 21060 4580 21060 6220 21060 6720 21000 7200 20830 7660 21310 8460 21600 9450 21600 10460 21600 12750 20310 14680 18650 15010 18650 17200 17370 18920 15770 18920 15220 18920 14700 18710 14240 18310 13820 20240 12490 21600 11000 21600 9890 21600 8840 20790 8210 19510 7620 20000 7930 20290 6240 20290 4850 20290 3570 19280 2900 17640 1300 17600 480 16300 480 14660 480 13900 690 13210 1070 12640 380 12160 0 11210 0 10120 0 8590 840 7330 1930 7160 Z N M 1930 7160 C 1950 7410 2040 7690 2090 7920 F N M 6970 2600 C 7200 2790 7480 3050 7670 3310 F N M 11210 1700 C 11130 1910 11080 2160 11030 2400 F N M 14870 1160 C 14720 1400 14640 1720 14540 2010 F N M 19110 2710 C 19130 2890 19230 3290 19190 3380 F N M 20830 7660 C 20660 8170 20430 8620 20110 8990 F N M 18660 15010 C 18740 14200 18280 12200 17000 11450 F N M 14240 18310 C 14320 17980 14350 17680 14370 17360 F N M 8220 19510 C 8060 19250 7960 18950 7860 18640 F N M 2900 17640 C 3090 17600 3280 17540 3460 17450 F N M 1070 12640 C 1400 12900 1780 13130 2330 13040 F N U ?f17 ?f18 1800 1800 0 23592960 Z N U ?f19 ?f20 1200 1200 0 23592960 Z N U ?f13 ?f14 700 700 0 23592960 Z N";
text_areas = L"3000 3320 17110 17330";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"0 10800 10800 21600 21600 10800 10800 0 ?f13 ?f14";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"atan2(?f1 ,?f0 )/(pi/180)");
add(L"f3", L"10800*cos(?f2 *(pi/180))");
add(L"f4", L"10800*sin(?f2 *(pi/180))");
add(L"f5", L"?f3 +10800");
add(L"f6", L"?f4 +10800");
add(L"f7", L"$0 -?f5 ");
add(L"f8", L"$1 -?f6 ");
add(L"f9", L"?f7 /3");
add(L"f10", L"?f8 /3");
add(L"f11", L"?f7 *2/3");
add(L"f12", L"?f8 *2/3");
add(L"f13", L"$0 ");
add(L"f14", L"$1 ");
add(L"f15", L"?f3 /12");
add(L"f16", L"?f4 /12");
add(L"f17", L"?f9 +?f5 -?f15 ");
add(L"f18", L"?f10 +?f6 -?f16 ");
add(L"f19", L"?f11 +?f5 ");
add(L"f20", L"?f12 +?f6 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeRectCallout : public oox_shape
{
public:
oox_shape_WedgeRectCallout()
{
odf_type_name =L"ooxml-wedgeRectCallout";
enhanced_path = L"M 0 0 L 0 3590 ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 0 21600 3590 21600 ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 21600 21600 21600 18010 ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 21600 0 18010 0 ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 3590 0 0 0 Z N";
text_areas = L"0 0 21600 21600";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"?f40 ?f41";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"if(?f18 ,$0 ,0)");
add(L"f3", L"if(?f18 ,$1 ,6280)");
add(L"f4", L"if(?f23 ,$0 ,0)");
add(L"f5", L"if(?f23 ,$1 ,15320)");
add(L"f6", L"if(?f26 ,$0 ,6280)");
add(L"f7", L"if(?f26 ,$1 ,21600)");
add(L"f8", L"if(?f29 ,$0 ,15320)");
add(L"f9", L"if(?f29 ,$1 ,21600)");
add(L"f10", L"if(?f32 ,$0 ,21600)");
add(L"f11", L"if(?f32 ,$1 ,15320)");
add(L"f12", L"if(?f34 ,$0 ,21600)");
add(L"f13", L"if(?f34 ,$1 ,6280)");
add(L"f14", L"if(?f36 ,$0 ,15320)");
add(L"f15", L"if(?f36 ,$1 ,0)");
add(L"f16", L"if(?f38 ,$0 ,6280)");
add(L"f17", L"if(?f38 ,$1 ,0)");
add(L"f18", L"if($0 ,-1,?f19 )");
add(L"f19", L"if(?f1 ,-1,?f22 )");
add(L"f20", L"abs(?f0 )");
add(L"f21", L"abs(?f1 )");
add(L"f22", L"?f20 -?f21 ");
add(L"f23", L"if($0 ,-1,?f24 )");
add(L"f24", L"if(?f1 ,?f22 ,-1)");
add(L"f25", L"$1 -21600");
add(L"f26", L"if(?f25 ,?f27 ,-1)");
add(L"f27", L"if(?f0 ,-1,?f28 )");
add(L"f28", L"?f21 -?f20 ");
add(L"f29", L"if(?f25 ,?f30 ,-1)");
add(L"f30", L"if(?f0 ,?f28 ,-1)");
add(L"f31", L"$0 -21600");
add(L"f32", L"if(?f31 ,?f33 ,-1)");
add(L"f33", L"if(?f1 ,?f22 ,-1)");
add(L"f34", L"if(?f31 ,?f35 ,-1)");
add(L"f35", L"if(?f1 ,-1,?f22 )");
add(L"f36", L"if($1 ,-1,?f37 )");
add(L"f37", L"if(?f0 ,?f28 ,-1)");
add(L"f38", L"if($1 ,-1,?f39 )");
add(L"f39", L"if(?f0 ,-1,?f28 )");
add(L"f40", L"$0 ");
add(L"f41", L"$1 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeRoundRectCallout : public oox_shape
{
public:
oox_shape_WedgeRoundRectCallout()
{
odf_type_name =L"ooxml-wedgeRoundRectCallout";
enhanced_path = L"M 3590 0 X 0 3590 L ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 Y 3590 21600 L ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 X 21600 18010 L ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 Y 18010 0 L ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 Z N";
text_areas = L"800 800 20800 20800";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"?f40 ?f41";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"if(?f18 ,$0 ,0)");
add(L"f3", L"if(?f18 ,$1 ,6280)");
add(L"f4", L"if(?f23 ,$0 ,0)");
add(L"f5", L"if(?f23 ,$1 ,15320)");
add(L"f6", L"if(?f26 ,$0 ,6280)");
add(L"f7", L"if(?f26 ,$1 ,21600)");
add(L"f8", L"if(?f29 ,$0 ,15320)");
add(L"f9", L"if(?f29 ,$1 ,21600)");
add(L"f10", L"if(?f32 ,$0 ,21600)");
add(L"f11", L"if(?f32 ,$1 ,15320)");
add(L"f12", L"if(?f34 ,$0 ,21600)");
add(L"f13", L"if(?f34 ,$1 ,6280)");
add(L"f14", L"if(?f36 ,$0 ,15320)");
add(L"f15", L"if(?f36 ,$1 ,0)");
add(L"f16", L"if(?f38 ,$0 ,6280)");
add(L"f17", L"if(?f38 ,$1 ,0)");
add(L"f18", L"if($0 ,-1,?f19 )");
add(L"f19", L"if(?f1 ,-1,?f22 )");
add(L"f20", L"abs(?f0 )");
add(L"f21", L"abs(?f1 )");
add(L"f22", L"?f20 -?f21 ");
add(L"f23", L"if($0 ,-1,?f24 )");
add(L"f24", L"if(?f1 ,?f22 ,-1)");
add(L"f25", L"$1 -21600");
add(L"f26", L"if(?f25 ,?f27 ,-1)");
add(L"f27", L"if(?f0 ,-1,?f28 )");
add(L"f28", L"?f21 -?f20 ");
add(L"f29", L"if(?f25 ,?f30 ,-1)");
add(L"f30", L"if(?f0 ,?f28 ,-1)");
add(L"f31", L"$0 -21600");
add(L"f32", L"if(?f31 ,?f33 ,-1)");
add(L"f33", L"if(?f1 ,?f22 ,-1)");
add(L"f34", L"if(?f31 ,?f35 ,-1)");
add(L"f35", L"if(?f1 ,-1,?f22 )");
add(L"f36", L"if($1 ,-1,?f37 )");
add(L"f37", L"if(?f0 ,?f28 ,-1)");
add(L"f38", L"if($1 ,-1,?f39 )");
add(L"f39", L"if(?f0 ,-1,?f28 )");
add(L"f40", L"$0 ");
add(L"f41", L"$1 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeEllipseCallout : public oox_shape
{
public:
oox_shape_WedgeEllipseCallout()
{
odf_type_name =L"ooxml-wedgeEllipseCallout";
enhanced_path = L"W 0 0 21600 21600 ?f22 ?f23 ?f18 ?f19 L ?f14 ?f15 Z N";
text_areas = L"3200 3200 18400 18400";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"3160 3160 3160 18440 18440 18440 18440 3160 ?f14 ?f15";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"?f0 *?f0 ");
add(L"f3", L"?f1 *?f1 ");
add(L"f4", L"?f2 +?f3 ");
add(L"f5", L"sqrt(?f4 )");
add(L"f6", L"?f5 -10800");
add(L"f7", L"atan2(?f1 ,?f0 )/(pi/180)");
add(L"f8", L"?f7 -10");
add(L"f9", L"?f7 +10");
add(L"f10", L"10800*cos(?f7 *(pi/180))");
add(L"f11", L"10800*sin(?f7 *(pi/180))");
add(L"f12", L"?f10 +10800");
add(L"f13", L"?f11 +10800");
add(L"f14", L"if(?f6 ,$0 ,?f12 )");
add(L"f15", L"if(?f6 ,$1 ,?f13 )");
add(L"f16", L"10800*cos(?f8 *(pi/180))");
add(L"f17", L"10800*sin(?f8 *(pi/180))");
add(L"f18", L"?f16 +10800");
add(L"f19", L"?f17 +10800");
add(L"f20", L"10800*cos(?f9 *(pi/180))");
add(L"f21", L"10800*sin(?f9 *(pi/180))");
add(L"f22", L"?f20 +10800");
add(L"f23", L"?f21 +10800");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_QuadArrowCallout : public oox_shape
{
public:
oox_shape_QuadArrowCallout()
{
odf_type_name =L"ooxml-quadArrowCallout";
enhanced_path = L"M ?f0 ?f6 L ?f17 ?f30 ?f17 ?f32 ?f21 ?f32 ?f21 ?f28 ?f25 ?f28 ?f25 ?f17 ?f23 ?f17 ?f9 ?f2 ?f24 ?f17 ?f26 ?f17 ?f26 ?f28 ?f22 ?f28 ?f22 ?f32 ?f20 ?f32 ?f20 ?f30 ?f1 ?f6 ?f20 ?f31 ?f20 ?f33 ?f22 ?f33 ?f22 ?f29 ?f26 ?f29 ?f26 ?f27 ?f24 ?f27 ?f9 ?f3 ?f23 ?f27 ?f25 ?f27 ?f25 ?f29 ?f21 ?f29 ?f21 ?f33 ?f17 ?f33 ?f17 ?f31 Z N";
text_areas = L"?f21 ?f28 ?f22 ?f29";
view_box = L"0 0 21600 21600";
modifiers = L"18515 18515 18515 48123";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"min(?f7, ?f4)");
add(L"f11", L"$1");
add(L"f12", L"$0");
add(L"f13", L"$2");
add(L"f14", L"$3");
add(L"f15", L"?f10 * ?f11 / 100000");
add(L"f16", L"?f10 * ?f12 / 200000");
add(L"f17", L"?f10 * ?f13 / 100000");
add(L"f18", L"?f7 * ?f14 / 200000");
add(L"f19", L"?f4 * ?f14 / 200000");
add(L"f20", L"?f1 - ?f17");
add(L"f21", L"?f9 - ?f18");
add(L"f22", L"?f9 + ?f18");
add(L"f23", L"?f9 - ?f15");
add(L"f24", L"?f9 + ?f15");
add(L"f25", L"?f9 - ?f16");
add(L"f26", L"?f9 + ?f16");
add(L"f27", L"?f3 - ?f17");
add(L"f28", L"?f6 - ?f19");
add(L"f29", L"?f6 + ?f19");
add(L"f30", L"?f6 - ?f15");
add(L"f31", L"?f6 + ?f15");
add(L"f32", L"?f6 - ?f16");
add(L"f33", L"?f6 + ?f16");
/////////////////////////////////////////////////////////
}
};
}

File diff suppressed because it is too large Load Diff

View File

@ -31,23 +31,28 @@
*/
//+ shapetypeArc,
//+ shapetypeBevel,
//+ shapetypeCan,
//+ shapetypeChevron,
//+ shapetypeChord,
//+ shapetypeCorner,
// shapetypeCornerTabs,
// shapetypeDecagon,
//+ shapetypeCube,
//+ shapetypeDecagon,
// shapetypeDiagStripe,
//+ shapetypeDiamond
// shapetypeDodecagon,
//+ shapetypeDodecagon,
//+ shapetypeDoubleWave,
//+ shapetypeFunnel,
//+ shapetypeGear6,
//+ shapetypeGear9,
// shapetypeHalfFrame,
// shapetypeHeptagon,
//+ shapetypeHeptagon,
//+ shapetypeHexagon,
//+ shapetypeHomePlate,
// shapetypeNonIsoscelesTrapezoid,
//+ shapetypeOctagon,
//+ shapetypeParallelogram
//+ shapetypePentagon,
//+ shapetypePie,
//+ shapetypePieWedge,
//+ shapetypePlaque,
@ -282,55 +287,52 @@ public:
odf_type_name =L"ooxml-wave";
modifiers = L"12500 0";
enhanced_path = L"M ?f13 ?f2 C ?f17 ?f4 ?f18 ?f5 ?f15 ?f2 L ?f20 ?f6 C ?f22 ?f8 ?f21 ?f7 ?f19 ?f6 Z N";
text_areas = L"?f27 ?f29 ?f28 ?f30";
glue_points = L"?f35 ?f10 ?f19 ?f6 ?f28 ?f14 ?f38 ?f6";
view_box = L"0 0 0 0";
enhanced_path = L"M ?f23 ?f12 C ?f27 ?f14 ?f28 ?f15 ?f25 ?f12 L ?f30 ?f16 C ?f32 ?f18 ?f31 ?f17 ?f29 ?f16 Z N";
text_areas = L"?f36 ?f38 ?f37 ?f39";
glue_points = L"?f35 ?f12 ?f21 ?f6 ?f34 ?f16 ?f33 ?f6";
view_box = L"0 0 21600 21600";
add(L"f0", L"if(0-$0 ,0,if(20000-$0 ,$0 ,20000))");
add(L"f1", L"if(-10000-$1 ,-10000,if(10000-$1 ,$1 ,10000))");
add(L"f2", L"logheight*?f0 /100000");
add(L"f3", L"?f2 *10/3");
add(L"f4", L"?f2 +0-?f3 ");
add(L"f5", L"?f2 +?f3 -0");
add(L"f6", L"logheight+0-?f2 ");
add(L"f7", L"?f6 +0-?f3 ");
add(L"f8", L"?f6 +?f3 -0");
add(L"f9", L"logwidth*?f1 /100000");
add(L"f10", L"logwidth*?f1 /50000");
add(L"f11", L"abs(?f9 )");
add(L"f12", L"if(?f10 ,0,?f10 )");
add(L"f13", L"0+0-?f12 ");
add(L"f14", L"if(?f10 ,?f10 ,0)");
add(L"f15", L"logwidth+0-?f14 ");
add(L"f16", L"(?f12 +?f15 )/3");
add(L"f17", L"?f13 +?f16 -0");
add(L"f18", L"(?f17 +?f15 )/2");
add(L"f19", L"0+?f14 -0");
add(L"f20", L"logwidth+?f12 -0");
add(L"f21", L"?f19 +?f16 -0");
add(L"f22", L"(?f21 +?f20 )/2");
add(L"f23", L"logwidth+0-?f11");
add(L"f24", L"logwidth/2");
add(L"f25", L"?f24 +?f9 -0");
add(L"f26", L"?f24 +0-?f9 ");
add(L"f27", L"max(?f13 ,?f19 )");
add(L"f28", L"min(?f15 ,?f20 )");
add(L"f29", L"logheight*?f0 /50000");
add(L"f30", L"logheight+0-?f29 ");
add(L"f31", L"logheight");
add(L"f32", L"logheight/2");
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"$0");
add(L"f11", L"$1");
add(L"f12", L"?f4 * ?f10 / 100000");
add(L"f13", L"?f12 * 10 / 3");
add(L"f14", L"?f12 - ?f13");
add(L"f15", L"?f12 + ?f13");
add(L"f16", L"?f3 - ?f12");
add(L"f17", L"?f16 - ?f13");
add(L"f18", L"?f16 + ?f13");
add(L"f19", L"?f7 * ?f11 / 100000");
add(L"f20", L"?f7 * ?f11 / 50000");
add(L"f21", L"abs(?f19)");
add(L"f22", L"if(?f20, 0, ?f20)");
add(L"f23", L"?f0 - ?f22");
add(L"f24", L"if(?f20, ?f20, 0)");
add(L"f25", L"?f1 - ?f24");
add(L"f26", L"(?f22 + ?f25) / 3");
add(L"f27", L"?f23 + ?f26");
add(L"f28", L"(?f27 + ?f25) / 2");
add(L"f29", L"?f0 + ?f24");
add(L"f30", L"?f1 + ?f22");
add(L"f31", L"?f29 + ?f26");
add(L"f32", L"(?f31 + ?f30) / 2");
add(L"f33", L"?f1 - ?f21");
add(L"f34", L"?f9 + ?f19");
add(L"f35", L"?f9 - ?f19");
add(L"f36", L"max(?f23, ?f29)");
add(L"f37", L"min(?f25, ?f30)");
add(L"f38", L"?f4 * ?f10 / 50000");
add(L"f39", L"?f3 - ?f38");
/////////////////////////////////////////////////////////
_handle h1, h2;
h1.position = L"0 ?f2";
h1.y_maximum= L"20000";
h1.y_minimum= L"0";
handles.push_back(h1);
h2.position = L"?f25 ?f31";
h2.x_maximum= L"10000";
h2.x_minimum= L"-10000";
handles.push_back(h2);
}
};
class oox_shape_DoubleWave : public oox_shape
@ -338,7 +340,7 @@ class oox_shape_DoubleWave : public oox_shape
public:
oox_shape_DoubleWave()
{
odf_type_name =L"ooxml-DoubleWave";
odf_type_name =L"ooxml-doubleWave";
modifiers = L"6500 0";
enhanced_path = L"M ?f21 ?f10 C ?f25 ?f12 ?f27 ?f13 ?f28 ?f10 ?f29 ?f12 ?f30 ?f13 ?f23 ?f10 L ?f32 ?f14 C ?f37 ?f16 ?f36 ?f15 ?f35 ?f14 ?f34 ?f16 ?f33 ?f15 ?f31 ?f14 Z N";
@ -1316,20 +1318,27 @@ public:
{
odf_type_name =L"ooxml-bevel";
enhanced_path = L"M ?f2 ?f2 L ?f3 ?f2 ?f3 ?f4 ?f2 ?f4 Z S N M 0 0 L ?f5 0 ?f3 ?f2 ?f2 ?f2 Z K S N M 0 ?f8 L ?f2 ?f4 ?f3 ?f4 ?f5 ?f8 Z I S N M 0 0 L ?f2 ?f2 ?f2 ?f4 0 ?f8 Z J S N M ?f5 0 L ?f5 ?f8 ?f3 ?f4 ?f3 ?f2 Z H S N M 0 0 L ?f5 0 ?f5 ?f8 0 ?f8 Z M ?f2 ?f2 L ?f3 ?f2 ?f3 ?f4 ?f2 ?f4 Z M 0 0 L ?f2 ?f2 M 0 ?f8 L ?f2 ?f4 M ?f5 0 L ?f3 ?f2 M ?f5 ?f8 L ?f3 ?f4 F N";
enhanced_path = L"S M ?f12 ?f12 L ?f13 ?f12 ?f13 ?f14 ?f12 ?f14 Z N S M ?f0 ?f2 L ?f1 ?f2 ?f13 ?f12 ?f12 ?f12 Z N S M ?f0 ?f3 L ?f12 ?f14 ?f13 ?f14 ?f1 ?f3 Z N S M ?f0 ?f2 L ?f12 ?f12 ?f12 ?f14 ?f0 ?f3 Z N S M ?f1 ?f2 L ?f1 ?f3 ?f13 ?f14 ?f13 ?f12 Z N F M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z M ?f12 ?f12 L ?f13 ?f12 ?f13 ?f14 ?f12 ?f14 Z M ?f0 ?f2 L ?f12 ?f12 M ?f0 ?f3 L ?f12 ?f14 M ?f1 ?f2 L ?f13 ?f12 M ?f1 ?f3 L ?f13 ?f14 N";
text_areas = L"?f2 ?f2 ?f3 ?f4";
view_box = L"0 0 0 0";
view_box = L"0 0 21600 21600";
modifiers = L"12500";
glue_points = L"?f13 ?f6 ?f9 ?f14 ?f12 ?f6 ?f9 ?f12";
add(L"f0", L"if(0-$0 ,0,if(50000-$0 ,$0 ,50000))");
add(L"f1", L"min(logwidth,logheight)");
add(L"f2", L"?f1 *?f0 /100000");
add(L"f3", L"logwidth+0-?f2 ");
add(L"f4", L"logheight+0-?f2 ");
add(L"f5", L"logwidth");
add(L"f6", L"logheight/2");
add(L"f7", L"logwidth/2");
add(L"f8", L"logheight");
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"min(?f7, ?f4)");
add(L"f11", L"$0");
add(L"f12", L"?f10 * ?f11 / 100000");
add(L"f13", L"?f1 - ?f12");
add(L"f14", L"?f3 - ?f12");
/////////////////////////////////////////////////////////
_handle h;
@ -1541,56 +1550,6 @@ public:
handles.push_back(h);
}
};
class oox_shape_bracketPair : public oox_shape
{
public:
oox_shape_bracketPair()
{
odf_type_name =L"ooxml-bracketPair";
//enhanced_path = L"M 0 ?f2 L ?f3 0 L ?f11 ?f4 L ?f2 ?f10 Z S N M ?f2 ?f10 L 0 ?f2 M ?f3 0 L ?f11 ?f4 F N";
enhanced_path = L"M 0 ?f2 G ?f2 ?f2 ?f12 ?f13 L ?f3 0 G ?f2 ?f2 ?f14 ?f15 L ?f11 ?f4 G ?f2 ?f2 ?f16 ?f17 L ?f2 ?f10 G ?f2 ?f2 ?f18 ?f19 Z S N M ?f2 ?f10 G ?f2 ?f2 ?f20 ?f21 L 0 ?f2 G ?f2 ?f2 ?f22 ?f23 M ?f3 0 G ?f2 ?f2 ?f24 ?f25 L ?f11 ?f4 G ?f2 ?f2 ?f26 ?f27 F N";
text_areas = L"?f5 ?f5 ?f6 ?f7";
view_box = L"0 0 0 0";
modifiers = L"23051";
add(L"f0", L"if(0-$0 ,0,if(50000-$0 ,$0 ,50000))");
add(L"f1", L"min(logwidth,logheight)");
add(L"f2", L"?f1 *?f0 /100000");
add(L"f3", L"logwidth+0-?f2 ");
add(L"f4", L"logheight+0-?f2 ");
add(L"f5", L"?f2 *29289/100000");
add(L"f6", L"logwidth+0-?f5 ");
add(L"f7", L"logheight+0-?f5 ");
add(L"f8", L"logwidth/2");
add(L"f9", L"logheight/2");
add(L"f10", L"logheight");
add(L"f11", L"logwidth");
add(L"f12", L"(10800000)/60000.0");
add(L"f13", L"(5400000)/60000.0");
add(L"f14", L"(16200000)/60000.0");
add(L"f15", L"(5400000)/60000.0");
add(L"f16", L"(0)/60000.0");
add(L"f17", L"(5400000)/60000.0");
add(L"f18", L"(5400000)/60000.0");
add(L"f19", L"(5400000)/60000.0");
add(L"f20", L"(5400000)/60000.0");
add(L"f21", L"(5400000)/60000.0");
add(L"f22", L"(10800000)/60000.0");
add(L"f23", L"(5400000)/60000.0");
add(L"f24", L"(16200000)/60000.0");
add(L"f25", L"(5400000)/60000.0");
add(L"f26", L"(0)/60000.0");
add(L"f27", L"(5400000)/60000.0");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"0 ?f2";
h1.y_minimum = L"0";
h1.y_maximum = L"50000";
handles.push_back(h1);
}
};
class oox_shape_Frame : public oox_shape
{
public:
@ -1623,4 +1582,491 @@ public:
}
};
class oox_shape_Pentagon : public oox_shape
{
public:
oox_shape_Pentagon()
{
odf_type_name =L"ooxml-pentagon";
enhanced_path = L"M ?f34 ?f38 L ?f11 ?f4 ?f37 ?f38 ?f36 ?f39 ?f35 ?f39 Z N";
text_areas = L"?f35 ?f40 ?f36 ?f39";
view_box = L"0 0 21600 21600";
glue_points = L"?f34 ?f38 ?f35 ?f39 ?f36 ?f39 ?f37 ?f38";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"?f9 / 2");
add(L"f11", L"?f2 + ?f10");
add(L"f12", L"5419351 / 1725033");
add(L"f13", L"?f10 * ?f41 / 100000");
add(L"f14", L"?f7 * ?f42 / 100000");
add(L"f15", L"?f8 * ?f42 / 100000");
add(L"f16", L"1080000 + ?f1");
add(L"f17", L"?f16 * ?f12 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"sin(?f18)");
add(L"f20", L"0 - ?f19");
add(L"f21", L"?f20 * ?f13");
add(L"f22", L"18360000 + ?f1");
add(L"f23", L"?f22 * ?f12 / ?f0");
add(L"f24", L"0 - ?f23");
add(L"f25", L"sin(?f24)");
add(L"f26", L"0 - ?f25");
add(L"f27", L"?f26 * ?f13");
add(L"f28", L"cos(?f18)");
add(L"f29", L"0 - ?f28");
add(L"f30", L"?f29 * ?f14");
add(L"f31", L"cos(?f24)");
add(L"f32", L"0 - ?f31");
add(L"f33", L"?f32 * ?f14");
add(L"f34", L"?f11 - ?f21");
add(L"f35", L"?f11 - ?f27");
add(L"f36", L"?f11 + ?f27");
add(L"f37", L"?f11 + ?f21");
add(L"f38", L"?f15 - ?f30");
add(L"f39", L"?f15 - ?f33");
add(L"f40", L"?f38 * ?f27 / ?f21");
add(L"f41", L"105146");
add(L"f42", L"110557");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Octagon : public oox_shape
{
public:
oox_shape_Octagon()
{
odf_type_name =L"ooxml-octagon";
modifiers = L"29289";
enhanced_path = L"M ?f0 ?f8 L ?f8 ?f2 ?f9 ?f2 ?f1 ?f8 ?f1 ?f10 ?f9 ?f3 ?f8 ?f3 ?f0 ?f10 Z N";
text_areas = L"?f11 ?f11 ?f12 ?f13";
view_box = L"0 0 21600 21600";
glue_points = L"?f1 ?f8 ?f1 ?f10 ?f9 ?f3 ?f8 ?f3 ?f0 ?f10 ?f0 ?f8 ?f8 ?f2 ?f9 ?f2";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"$0");
add(L"f8", L"?f6 * ?f7 / 100000");
add(L"f9", L"?f1 - ?f8");
add(L"f10", L"?f3 - ?f8");
add(L"f11", L"?f8 / 2");
add(L"f12", L"?f1 - ?f11");
add(L"f13", L"?f3 - ?f11");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Hexagon : public oox_shape
{
public:
oox_shape_Hexagon()
{
odf_type_name =L"ooxml-hexagon";
modifiers = L"28921 115470";
enhanced_path = L"M ?f2 ?f8 L ?f15 ?f23 ?f16 ?f23 ?f3 ?f8 ?f16 ?f24 ?f15 ?f24 Z N";
text_areas = L"?f33 ?f34 ?f35 ?f36";
view_box = L"0 0 21600 21600";
glue_points = L"?f16 ?f24 ?f15 ?f24 ?f15 ?f23 ?f16 ?f23";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"min(?f9, ?f6)");
add(L"f11", L"5419351 / 1725033");
add(L"f12", L"50000 * ?f9 / ?f10");
add(L"f13", L"$0");
add(L"f14", L"?f7 * ?f37 / 100000");
add(L"f15", L"?f10 * ?f13 / 100000");
add(L"f16", L"?f3 - ?f15");
add(L"f17", L"3600000 + ?f1");
add(L"f18", L"?f17 * ?f11 / ?f0");
add(L"f19", L"0 - ?f18");
add(L"f20", L"cos(?f19)");
add(L"f21", L"0 - ?f20");
add(L"f22", L"?f21 * ?f14");
add(L"f23", L"?f8 - ?f22");
add(L"f24", L"?f8 + ?f22");
add(L"f25", L"?f12 * -1 / 2");
add(L"f26", L"?f13 + ?f25");
add(L"f27", L"if(?f26, 4, 2)");
add(L"f28", L"if(?f26, 3, 2)");
add(L"f29", L"if(?f26, ?f25, 0)");
add(L"f30", L"(?f13 + ?f29) / ?f25");
add(L"f31", L"?f30 * ?f28 / -1");
add(L"f32", L"?f27 + ?f31");
add(L"f33", L"?f9 * ?f32 / 24");
add(L"f34", L"?f6 * ?f32 / 24");
add(L"f35", L"?f3 - ?f33");
add(L"f36", L"?f5 - ?f34");
add(L"f37", L"115470");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Heptagon : public oox_shape
{
public:
oox_shape_Heptagon()
{
odf_type_name =L"ooxml-heptagon";
enhanced_path = L"M ?f19 ?f26 L ?f20 ?f25 ?f9 ?f2 ?f23 ?f25 ?f24 ?f26 ?f22 ?f27 ?f21 ?f27 Z N";
text_areas = L"?f20 ?f25 ?f23 ?f28";
view_box = L"0 0 21600 21600";
glue_points = L"?f23 ?f25 ?f24 ?f26 ?f22 ?f27 ?f21 ?f27 ?f19 ?f26 ?f20 ?f25";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"?f8 * ?f29 / 100000");
add(L"f11", L"?f5 * ?f30 / 100000");
add(L"f12", L"?f6 * ?f30 / 100000");
add(L"f13", L"?f10 * 97493 / 100000");
add(L"f14", L"?f10 * 78183 / 100000");
add(L"f15", L"?f10 * 43388 / 100000");
add(L"f16", L"?f11 * 62349 / 100000");
add(L"f17", L"?f11 * 22252 / 100000");
add(L"f18", L"?f11 * 90097 / 100000");
add(L"f19", L"?f9 - ?f13");
add(L"f20", L"?f9 - ?f14");
add(L"f21", L"?f9 - ?f15");
add(L"f22", L"?f9 + ?f15");
add(L"f23", L"?f9 + ?f14");
add(L"f24", L"?f9 + ?f13");
add(L"f25", L"?f12 - ?f16");
add(L"f26", L"?f12 + ?f17");
add(L"f27", L"?f12 + ?f18");
add(L"f28", L"?f3 - ?f25");
add(L"f29", L"102572");
add(L"f30", L"105210");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Decagon : public oox_shape
{
public:
oox_shape_Decagon()
{
odf_type_name =L"ooxml-decagon";
enhanced_path = L"M ?f2 ?f8 L ?f26 ?f37 ?f27 ?f36 ?f28 ?f36 ?f29 ?f37 ?f3 ?f8 ?f29 ?f38 ?f28 ?f39 ?f27 ?f39 ?f26 ?f38 Z N";
text_areas = L"?f6 ?f14 ?f9 ?f15";
view_box = L"0 0 21600 21600";
glue_points = L"?f29 ?f37 ?f29 ?f38 ?f28 ?f39 ?f27 ?f39 ?f26 ?f38 ?f26 ?f37 ?f27 ?f36 ?f28 ?f36";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"?f9 / 2");
add(L"f11", L"?f2 + ?f10");
add(L"f12", L"5419351 / 1725033");
add(L"f13", L"?f7 * ?f40 / 100000");
add(L"f14", L"2160000 + ?f1");
add(L"f15", L"?f14 * ?f12 / ?f0");
add(L"f16", L"0 - ?f15");
add(L"f17", L"sin(?f16)");
add(L"f18", L"0 - ?f17");
add(L"f19", L"?f18 * ?f10");
add(L"f20", L"4320000 + ?f1");
add(L"f21", L"?f20 * ?f12 / ?f0");
add(L"f22", L"0 - ?f21");
add(L"f23", L"sin(?f22)");
add(L"f24", L"0 - ?f23");
add(L"f25", L"?f24 * ?f10");
add(L"f26", L"?f11 - ?f19");
add(L"f27", L"?f11 - ?f25");
add(L"f28", L"?f11 + ?f25");
add(L"f29", L"?f11 + ?f19");
add(L"f30", L"cos(?f22)");
add(L"f31", L"0 - ?f30");
add(L"f32", L"?f31 * ?f13");
add(L"f33", L"cos(?f16)");
add(L"f34", L"0 - ?f33");
add(L"f35", L"?f34 * ?f13");
add(L"f36", L"?f8 - ?f32");
add(L"f37", L"?f8 - ?f35");
add(L"f38", L"?f8 + ?f35");
add(L"f39", L"?f8 + ?f32");
add(L"f40", L"105146");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Dodecagon : public oox_shape
{
public:
oox_shape_Dodecagon()
{
odf_type_name =L"ooxml-dodecagon";
enhanced_path = L"M ?f0 ?f11 L ?f6 ?f10 ?f7 ?f2 ?f8 ?f2 ?f9 ?f10 ?f1 ?f11 ?f1 ?f12 ?f9 ?f13 ?f8 ?f3 ?f7 ?f3 ?f6 ?f13 ?f0 ?f12 Z N";
text_areas = L"?f6 ?f10 ?f9 ?f13";
view_box = L"0 0 21600 21600";
glue_points = L"?f9 ?f10 ?f1 ?f11 ?f1 ?f12 ?f9 ?f13 ?f8 ?f3 ?f7 ?f3 ?f6 ?f13 ?f0 ?f12 ?f0 ?f11 ?f6 ?f10 ?f7 ?f2 ?f8 ?f2";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 * 2894 / 21600");
add(L"f7", L"?f5 * 7906 / 21600");
add(L"f8", L"?f5 * 13694 / 21600");
add(L"f9", L"?f5 * 18706 / 21600");
add(L"f10", L"?f4 * 2894 / 21600");
add(L"f11", L"?f4 * 7906 / 21600");
add(L"f12", L"?f4 * 13694 / 21600");
add(L"f13", L"?f4 * 18706 / 21600");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Cube : public oox_shape
{
public:
oox_shape_Cube()
{
odf_type_name =L"ooxml-cube";
modifiers = L"25000";
enhanced_path = L"S M ?f0 ?f8 L ?f12 ?f8 ?f12 ?f3 ?f0 ?f3 Z N S M ?f12 ?f8 L ?f1 ?f2 ?f1 ?f9 ?f12 ?f3 Z N S M ?f0 ?f8 L ?f8 ?f2 ?f1 ?f2 ?f12 ?f8 Z N F M ?f0 ?f8 L ?f8 ?f2 ?f1 ?f2 ?f1 ?f9 ?f12 ?f3 ?f0 ?f3 Z M ?f0 ?f8 L ?f12 ?f8 ?f1 ?f2 M ?f12 ?f8 L ?f12 ?f3 N";
text_areas = L"?f0 ?f8 ?f12 ?f3";
view_box = L"0 0 21600 21600";
glue_points = L"?f14 ?f2 ?f13 ?f8 ?f0 ?f11 ?f13 ?f3 ?f12 ?f11 ?f1 ?f10";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"$0");
add(L"f8", L"?f6 * ?f7 / 100000");
add(L"f9", L"?f3 - ?f8");
add(L"f10", L"?f9 / 2");
add(L"f11", L"(?f8 + ?f3) / 2");
add(L"f12", L"?f1 - ?f8");
add(L"f13", L"?f12 / 2");
add(L"f14", L"(?f8 + ?f1) / 2");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Can : public oox_shape
{
public:
oox_shape_Can()
{
odf_type_name =L"ooxml-can";
modifiers = L"25000";
enhanced_path = L"S M ?f2 ?f13 A ?f55 ?f56 ?f57 ?f58 ?f2 ?f13 ?f52 ?f54 W ?f59 ?f60 ?f61 ?f62 ?f2 ?f13 ?f52 ?f54 L ?f3 ?f15 A ?f102 ?f103 ?f104 ?f105 ?f3 ?f15 ?f99 ?f101 W ?f106 ?f107 ?f108 ?f109 ?f3 ?f15 ?f99 ?f101 Z N S M ?f2 ?f13 A ?f130 ?f131 ?f132 ?f133 ?f2 ?f13 ?f127 ?f129 W ?f134 ?f135 ?f136 ?f137 ?f2 ?f13 ?f127 ?f129 Z N F M ?f3 ?f13 A ?f157 ?f158 ?f159 ?f160 ?f3 ?f13 ?f154 ?f156 W ?f161 ?f162 ?f163 ?f164 ?f3 ?f13 ?f154 ?f156 L ?f3 ?f15 A ?f102 ?f103 ?f104 ?f105 ?f3 ?f15 ?f99 ?f101 W ?f106 ?f107 ?f108 ?f109 ?f3 ?f15 ?f99 ?f101 L ?f2 ?f13 N";
text_areas = L"?f0 ?f8 ?f12 ?f3";
view_box = L"0 0 21600 21600";
glue_points = L"?f9 ?f14";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f2 + ?f8");
add(L"f10", L"min(?f7, ?f6)");
add(L"f11", L"5419351 / 1725033");
add(L"f12", L"$0");
add(L"f13", L"?f10 * ?f12 / 200000");
add(L"f14", L"?f13 + ?f13");
add(L"f15", L"?f5 - ?f13");
add(L"f16", L"21550000 - -10800000");
add(L"f17", L"if(?f16, -10800000, 21550000)");
add(L"f18", L"-21550000 - ?f17");
add(L"f19", L"if(?f18, -21550000, ?f17)");
add(L"f20", L"?f0 + ?f19");
add(L"f21", L"?f0 + ?f1");
add(L"f22", L"?f21 * ?f11 / ?f0");
add(L"f23", L"0 - ?f22");
add(L"f24", L"cos(?f23)");
add(L"f25", L"0 - ?f24");
add(L"f26", L"?f25 * ?f8");
add(L"f27", L"sin(?f23)");
add(L"f28", L"0 - ?f27");
add(L"f29", L"?f28 * ?f13");
add(L"f30", L"sqrt(?f26 * ?f26 + ?f29 * ?f29 + 0 * 0)");
add(L"f31", L"?f8 * ?f13 / ?f30");
add(L"f32", L"?f28 * ?f31");
add(L"f33", L"?f2 - ?f32");
add(L"f34", L"?f25 * ?f31");
add(L"f35", L"?f13 - ?f34");
add(L"f36", L"?f33 - ?f8");
add(L"f37", L"?f35 - ?f13");
add(L"f38", L"?f33 + ?f8");
add(L"f39", L"?f35 + ?f13");
add(L"f40", L"?f20 + ?f1");
add(L"f41", L"?f40 * ?f11 / ?f0");
add(L"f42", L"0 - ?f41");
add(L"f43", L"cos(?f42)");
add(L"f44", L"0 - ?f43");
add(L"f45", L"?f44 * ?f8");
add(L"f46", L"sin(?f42)");
add(L"f47", L"0 - ?f46");
add(L"f48", L"?f47 * ?f13");
add(L"f49", L"sqrt(?f45 * ?f45 + ?f48 * ?f48 + 0 * 0)");
add(L"f50", L"?f8 * ?f13 / ?f49");
add(L"f51", L"?f47 * ?f50");
add(L"f52", L"?f33 + ?f51");
add(L"f53", L"?f44 * ?f50");
add(L"f54", L"?f35 + ?f53");
add(L"f55", L"if(?f19, ?f2, ?f36)");
add(L"f56", L"if(?f19, ?f13, ?f37)");
add(L"f57", L"if(?f19, ?f2, ?f38)");
add(L"f58", L"if(?f19, ?f13, ?f39)");
add(L"f59", L"if(?f19, ?f36, ?f52)");
add(L"f60", L"if(?f19, ?f37, ?f54)");
add(L"f61", L"if(?f19, ?f38, ?f52)");
add(L"f62", L"if(?f19, ?f39, ?f54)");
add(L"f63", L"21550000 - ?f0");
add(L"f64", L"if(?f63, ?f0, 21550000)");
add(L"f65", L"-21550000 - ?f64");
add(L"f66", L"if(?f65, -21550000, ?f64)");
add(L"f67", L"0 + ?f66");
add(L"f68", L"0 + ?f1");
add(L"f69", L"?f68 * ?f11 / ?f0");
add(L"f70", L"0 - ?f69");
add(L"f71", L"cos(?f70)");
add(L"f72", L"0 - ?f71");
add(L"f73", L"?f72 * ?f8");
add(L"f74", L"sin(?f70)");
add(L"f75", L"0 - ?f74");
add(L"f76", L"?f75 * ?f13");
add(L"f77", L"sqrt(?f73 * ?f73 + ?f76 * ?f76 + 0 * 0)");
add(L"f78", L"?f8 * ?f13 / ?f77");
add(L"f79", L"?f75 * ?f78");
add(L"f80", L"?f3 - ?f79");
add(L"f81", L"?f72 * ?f78");
add(L"f82", L"?f15 - ?f81");
add(L"f83", L"?f80 - ?f8");
add(L"f84", L"?f82 - ?f13");
add(L"f85", L"?f80 + ?f8");
add(L"f86", L"?f82 + ?f13");
add(L"f87", L"?f67 + ?f1");
add(L"f88", L"?f87 * ?f11 / ?f0");
add(L"f89", L"0 - ?f88");
add(L"f90", L"cos(?f89)");
add(L"f91", L"0 - ?f90");
add(L"f92", L"?f91 * ?f8");
add(L"f93", L"sin(?f89)");
add(L"f94", L"0 - ?f93");
add(L"f95", L"?f94 * ?f13");
add(L"f96", L"sqrt(?f92 * ?f92 + ?f95 * ?f95 + 0 * 0)");
add(L"f97", L"?f8 * ?f13 / ?f96");
add(L"f98", L"?f94 * ?f97");
add(L"f99", L"?f80 + ?f98");
add(L"f100", L"?f91 * ?f97");
add(L"f101", L"?f82 + ?f100");
add(L"f102", L"if(?f66, ?f3, ?f83)");
add(L"f103", L"if(?f66, ?f15, ?f84)");
add(L"f104", L"if(?f66, ?f3, ?f85)");
add(L"f105", L"if(?f66, ?f15, ?f86)");
add(L"f106", L"if(?f66, ?f83, ?f99)");
add(L"f107", L"if(?f66, ?f84, ?f101)");
add(L"f108", L"if(?f66, ?f85, ?f99)");
add(L"f109", L"if(?f66, ?f86, ?f101)");
add(L"f110", L"21550000 - 21600000");
add(L"f111", L"if(?f110, 21600000, 21550000)");
add(L"f112", L"-21550000 - ?f111");
add(L"f113", L"if(?f112, -21550000, ?f111)");
add(L"f114", L"?f0 + ?f113");
add(L"f115", L"?f114 + ?f1");
add(L"f116", L"?f115 * ?f11 / ?f0");
add(L"f117", L"0 - ?f116");
add(L"f118", L"cos(?f117)");
add(L"f119", L"0 - ?f118");
add(L"f120", L"?f119 * ?f8");
add(L"f121", L"sin(?f117)");
add(L"f122", L"0 - ?f121");
add(L"f123", L"?f122 * ?f13");
add(L"f124", L"sqrt(?f120 * ?f120 + ?f123 * ?f123 + 0 * 0)");
add(L"f125", L"?f8 * ?f13 / ?f124");
add(L"f126", L"?f122 * ?f125");
add(L"f127", L"?f33 + ?f126");
add(L"f128", L"?f119 * ?f125");
add(L"f129", L"?f35 + ?f128");
add(L"f130", L"if(?f113, ?f2, ?f36)");
add(L"f131", L"if(?f113, ?f13, ?f37)");
add(L"f132", L"if(?f113, ?f2, ?f38)");
add(L"f133", L"if(?f113, ?f13, ?f39)");
add(L"f134", L"if(?f113, ?f36, ?f127)");
add(L"f135", L"if(?f113, ?f37, ?f129)");
add(L"f136", L"if(?f113, ?f38, ?f127)");
add(L"f137", L"if(?f113, ?f39, ?f129)");
add(L"f138", L"0 + ?f113");
add(L"f139", L"?f13 - ?f81");
add(L"f140", L"?f139 - ?f13");
add(L"f141", L"?f139 + ?f13");
add(L"f142", L"?f138 + ?f1");
add(L"f143", L"?f142 * ?f11 / ?f0");
add(L"f144", L"0 - ?f143");
add(L"f145", L"cos(?f144)");
add(L"f146", L"0 - ?f145");
add(L"f147", L"?f146 * ?f8");
add(L"f148", L"sin(?f144)");
add(L"f149", L"0 - ?f148");
add(L"f150", L"?f149 * ?f13");
add(L"f151", L"sqrt(?f147 * ?f147 + ?f150 * ?f150 + 0 * 0)");
add(L"f152", L"?f8 * ?f13 / ?f151");
add(L"f153", L"?f149 * ?f152");
add(L"f154", L"?f80 + ?f153");
add(L"f155", L"?f146 * ?f152");
add(L"f156", L"?f139 + ?f155");
add(L"f157", L"if(?f113, ?f3, ?f83)");
add(L"f158", L"if(?f113, ?f13, ?f140)");
add(L"f159", L"if(?f113, ?f3, ?f85)");
add(L"f160", L"if(?f113, ?f13, ?f141)");
add(L"f161", L"if(?f113, ?f83, ?f154)");
add(L"f162", L"if(?f113, ?f140, ?f156)");
add(L"f163", L"if(?f113, ?f85, ?f154)");
add(L"f164", L"if(?f113, ?f141, ?f156)");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -30,6 +30,11 @@
*
*/
//+ shapetypeLeftRightRibbon
//+ shapetypeEllipseRibbon
//+ shapetypEllipseRibbon2
//+ shapetypEllipseRibbon
//+ shapetypRibbon
//+ shapetypRibbon2
namespace cpdoccore
{
class oox_shape_LeftRightRibbon : public oox_shape
@ -108,4 +113,935 @@ public:
handles.push_back(h3);
}
};
class oox_shape_EllipseRibbon : public oox_shape
{
public:
oox_shape_EllipseRibbon()
{
odf_type_name =L"ooxml-ellipseRibbon";
enhanced_path = L"S M ?f0 ?f2 Q ?f23 ?f24 ?f14 ?f22 L ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 Q ?f25 ?f24 ?f1 ?f2 L ?f17 ?f37 ?f1 ?f35 Q ?f43 ?f42 ?f16 ?f38 L ?f16 ?f39 Q ?f8 ?f44 ?f13 ?f39 L ?f13 ?f38 Q ?f40 ?f42 ?f0 ?f35 L ?f7 ?f37 Z N S M ?f14 ?f45 L ?f14 ?f22 ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 ?f15 ?f45 Q ?f8 ?f46 ?f14 ?f45 Z N F M ?f0 ?f2 Q ?f23 ?f24 ?f14 ?f22 L ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 Q ?f25 ?f24 ?f1 ?f2 L ?f17 ?f37 ?f1 ?f35 Q ?f43 ?f42 ?f16 ?f38 L ?f16 ?f39 Q ?f8 ?f44 ?f13 ?f39 L ?f13 ?f38 Q ?f40 ?f42 ?f0 ?f35 L ?f7 ?f37 Z M ?f13 ?f38 L ?f13 ?f31 M ?f16 ?f31 L ?f16 ?f38 M ?f14 ?f22 L ?f14 ?f45 M ?f15 ?f45 L ?f15 ?f22 N";
text_areas = L"?f13 ?f26 ?f16 ?f39";
view_box = L"0 0 21600 21600";
modifiers = L"25000 50000 12500";
glue_points = L"?f8 ?f26 ?f7 ?f37 ?f17 ?f37";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 2");
add(L"f7", L"?f5 / 8");
add(L"f8", L"?f0 + ?f6");
add(L"f9", L"$0");
add(L"f10", L"$1");
add(L"f11", L"$2");
add(L"f12", L"?f5 * ?f10 / 200000");
add(L"f13", L"?f8 - ?f12");
add(L"f14", L"?f13 + ?f7");
add(L"f15", L"?f1 - ?f14");
add(L"f16", L"?f1 - ?f13");
add(L"f17", L"?f1 - ?f7");
add(L"f18", L"?f4 * ?f11 / 100000");
add(L"f19", L"4 * ?f18 / ?f5");
add(L"f20", L"?f14 * ?f14 / ?f5");
add(L"f21", L"?f14 - ?f20");
add(L"f22", L"?f19 * ?f21");
add(L"f23", L"?f14 / 2");
add(L"f24", L"?f19 * ?f23");
add(L"f25", L"?f1 - ?f23");
add(L"f26", L"?f4 * ?f9 / 100000");
add(L"f27", L"?f26 - ?f18");
add(L"f28", L"?f13 * ?f13 / ?f5");
add(L"f29", L"?f13 - ?f28");
add(L"f30", L"?f19 * ?f29");
add(L"f31", L"?f30 + ?f27");
add(L"f32", L"?f18 + ?f27 - ?f31");
add(L"f33", L"?f32 + ?f18");
add(L"f34", L"?f33 + ?f27");
add(L"f35", L"?f3 - ?f26");
add(L"f36", L"?f18 * 14 / 16");
add(L"f37", L"(?f36 + ?f35) / 2");
add(L"f38", L"?f30 + ?f35");
add(L"f39", L"?f31 + ?f35");
add(L"f40", L"?f13 / 2");
add(L"f41", L"?f19 * ?f40");
add(L"f42", L"?f41 + ?f35");
add(L"f43", L"?f1 - ?f40");
add(L"f44", L"?f34 + ?f35");
add(L"f45", L"?f22 + ?f27");
add(L"f46", L"?f26 + ?f26 - ?f45");
/////////////////////////////////////////////////////////
}
};
class oox_shape_EllipseRibbon2 : public oox_shape
{
public:
oox_shape_EllipseRibbon2()
{
odf_type_name =L"ooxml-ellipseRibbon2";
enhanced_path = L"S M ?f0 ?f3 Q ?f24 ?f26 ?f14 ?f23 L ?f13 ?f34 Q ?f8 ?f38 ?f16 ?f34 L ?f15 ?f23 Q ?f27 ?f26 ?f1 ?f3 L ?f17 ?f42 ?f1 ?f28 Q ?f51 ?f50 ?f16 ?f44 L ?f16 ?f46 Q ?f8 ?f53 ?f13 ?f46 L ?f13 ?f44 Q ?f47 ?f50 ?f0 ?f28 L ?f7 ?f42 Z N S M ?f14 ?f55 L ?f14 ?f23 ?f13 ?f34 Q ?f8 ?f38 ?f16 ?f34 L ?f15 ?f23 ?f15 ?f55 Q ?f8 ?f57 ?f14 ?f55 Z N F M ?f0 ?f3 L ?f7 ?f42 ?f0 ?f28 Q ?f47 ?f50 ?f13 ?f44 L ?f13 ?f46 Q ?f8 ?f53 ?f16 ?f46 L ?f16 ?f44 Q ?f51 ?f50 ?f1 ?f28 L ?f17 ?f42 ?f1 ?f3 Q ?f27 ?f26 ?f15 ?f23 L ?f16 ?f34 Q ?f8 ?f38 ?f13 ?f34 L ?f14 ?f23 Q ?f24 ?f26 ?f0 ?f3 Z M ?f13 ?f34 L ?f13 ?f44 M ?f16 ?f44 L ?f16 ?f34 M ?f14 ?f55 L ?f14 ?f23 M ?f15 ?f23 L ?f15 ?f55 N";
text_areas = L"?f13 ?f46 ?f16 ?f39";
view_box = L"0 0 21600 21600";
modifiers = L"25000 50000 12500";
glue_points = L"?f7 ?f42 ?f8 ?f39 ?f17 ?f42";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 2");
add(L"f7", L"?f5 / 8");
add(L"f8", L"?f0 + ?f6");
add(L"f9", L"$0");
add(L"f10", L"$1");
add(L"f11", L"$2");
add(L"f12", L"?f5 * ?f10 / 200000");
add(L"f13", L"?f8 - ?f12");
add(L"f14", L"?f13 + ?f7");
add(L"f15", L"?f1 - ?f14");
add(L"f16", L"?f1 - ?f13");
add(L"f17", L"?f1 - ?f7");
add(L"f18", L"?f4 * ?f11 / 100000");
add(L"f19", L"4 * ?f18 / ?f5");
add(L"f20", L"?f14 * ?f14 / ?f5");
add(L"f21", L"?f14 - ?f20");
add(L"f22", L"?f19 * ?f21");
add(L"f23", L"?f3 - ?f22");
add(L"f24", L"?f14 / 2");
add(L"f25", L"?f19 * ?f24");
add(L"f26", L"?f3 - ?f25");
add(L"f27", L"?f1 - ?f24");
add(L"f28", L"?f4 * ?f9 / 100000");
add(L"f29", L"?f28 - ?f18");
add(L"f30", L"?f13 * ?f13 / ?f5");
add(L"f31", L"?f13 - ?f30");
add(L"f32", L"?f19 * ?f31");
add(L"f33", L"?f32 + ?f29");
add(L"f34", L"?f3 - ?f33");
add(L"f35", L"?f18 + ?f29 - ?f33");
add(L"f36", L"?f35 + ?f18");
add(L"f37", L"?f36 + ?f29");
add(L"f38", L"?f3 - ?f37");
add(L"f39", L"?f3 - ?f28");
add(L"f40", L"?f18 * 14 / 16");
add(L"f41", L"(?f40 + ?f39) / 2");
add(L"f42", L"?f3 - ?f41");
add(L"f43", L"?f32 + ?f39");
add(L"f44", L"?f3 - ?f43");
add(L"f45", L"?f33 + ?f39");
add(L"f46", L"?f3 - ?f45");
add(L"f47", L"?f13 / 2");
add(L"f48", L"?f19 * ?f47");
add(L"f49", L"?f48 + ?f39");
add(L"f50", L"?f3 - ?f49");
add(L"f51", L"?f1 - ?f47");
add(L"f52", L"?f37 + ?f39");
add(L"f53", L"?f3 - ?f52");
add(L"f54", L"?f22 + ?f29");
add(L"f55", L"?f3 - ?f54");
add(L"f56", L"?f28 + ?f28 - ?f54");
add(L"f57", L"?f3 - ?f56");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Ribbon : public oox_shape
{
public:
oox_shape_Ribbon()
{
odf_type_name =L"ooxml-ribbon";
enhanced_path = L"S M ?f3 ?f5 L ?f24 ?f5 A ?f72 ?f73 ?f74 ?f75 ?f24 ?f5 ?f69 ?f71 W ?f76 ?f77 ?f78 ?f79 ?f24 ?f5 ?f69 ?f71 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f21 ?f27 A ?f149 ?f150 ?f151 ?f152 ?f21 ?f27 ?f146 ?f148 W ?f153 ?f154 ?f155 ?f156 ?f21 ?f27 ?f146 ?f148 L ?f25 ?f26 A ?f179 ?f180 ?f181 ?f182 ?f25 ?f26 ?f176 ?f178 W ?f183 ?f184 ?f185 ?f186 ?f25 ?f26 ?f176 ?f178 L ?f4 ?f5 ?f16 ?f29 ?f4 ?f28 ?f19 ?f28 ?f19 ?f31 A ?f226 ?f227 ?f228 ?f229 ?f19 ?f31 ?f223 ?f225 W ?f230 ?f231 ?f232 ?f233 ?f19 ?f31 ?f223 ?f225 L ?f20 ?f6 A ?f256 ?f257 ?f258 ?f259 ?f20 ?f6 ?f253 ?f255 W ?f260 ?f261 ?f262 ?f263 ?f20 ?f6 ?f253 ?f255 L ?f18 ?f28 ?f3 ?f28 ?f10 ?f29 Z N S M ?f22 ?f30 A ?f272 ?f273 ?f274 ?f275 ?f22 ?f30 ?f270 ?f271 W ?f276 ?f277 ?f278 ?f279 ?f22 ?f30 ?f270 ?f271 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f22 ?f27 Z M ?f23 ?f30 A ?f319 ?f320 ?f321 ?f322 ?f23 ?f30 ?f316 ?f318 W ?f323 ?f324 ?f325 ?f326 ?f23 ?f30 ?f316 ?f318 L ?f21 ?f26 A ?f332 ?f333 ?f334 ?f335 ?f21 ?f26 ?f330 ?f331 W ?f336 ?f337 ?f338 ?f339 ?f21 ?f26 ?f330 ?f331 L ?f23 ?f27 Z N F M ?f3 ?f5 L ?f24 ?f5 A ?f72 ?f73 ?f74 ?f75 ?f24 ?f5 ?f69 ?f71 W ?f76 ?f77 ?f78 ?f79 ?f24 ?f5 ?f69 ?f71 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f21 ?f27 A ?f149 ?f150 ?f151 ?f152 ?f21 ?f27 ?f146 ?f148 W ?f153 ?f154 ?f155 ?f156 ?f21 ?f27 ?f146 ?f148 L ?f25 ?f26 A ?f179 ?f180 ?f181 ?f182 ?f25 ?f26 ?f176 ?f178 W ?f183 ?f184 ?f185 ?f186 ?f25 ?f26 ?f176 ?f178 L ?f4 ?f5 ?f16 ?f29 ?f4 ?f28 ?f19 ?f28 ?f19 ?f31 A ?f226 ?f227 ?f228 ?f229 ?f19 ?f31 ?f223 ?f225 W ?f230 ?f231 ?f232 ?f233 ?f19 ?f31 ?f223 ?f225 L ?f20 ?f6 A ?f256 ?f257 ?f258 ?f259 ?f20 ?f6 ?f253 ?f255 W ?f260 ?f261 ?f262 ?f263 ?f20 ?f6 ?f253 ?f255 L ?f18 ?f28 ?f3 ?f28 ?f10 ?f29 Z M ?f22 ?f30 L ?f22 ?f27 M ?f23 ?f27 L ?f23 ?f30 M ?f18 ?f28 L ?f18 ?f32 M ?f19 ?f32 L ?f19 ?f28 N";
text_areas = L"?f18 ?f27 ?f19 ?f6";
view_box = L"0 0 21600 21600";
modifiers = L"16667 50000";
glue_points = L"?f12 ?f27 ?f10 ?f29 ?f16 ?f29";
add(L"f0", L"16200000");
add(L"f1", L"10800000");
add(L"f2", L"5400000");
add(L"f3", L"left");
add(L"f4", L"right");
add(L"f5", L"top");
add(L"f6", L"bottom");
add(L"f7", L"?f6 - ?f5");
add(L"f8", L"?f4 - ?f3");
add(L"f9", L"?f8 / 2");
add(L"f10", L"?f8 / 8");
add(L"f11", L"?f8 / 32");
add(L"f12", L"?f3 + ?f9");
add(L"f13", L"5419351 / 1725033");
add(L"f14", L"$0");
add(L"f15", L"$1");
add(L"f16", L"?f4 - ?f10");
add(L"f17", L"?f8 * ?f15 / 200000");
add(L"f18", L"?f12 - ?f17");
add(L"f19", L"?f12 + ?f17");
add(L"f20", L"?f18 + ?f11");
add(L"f21", L"?f19 - ?f11");
add(L"f22", L"?f18 + ?f10");
add(L"f23", L"?f19 - ?f10");
add(L"f24", L"?f22 - ?f11");
add(L"f25", L"?f23 + ?f11");
add(L"f26", L"?f7 * ?f14 / 200000");
add(L"f27", L"?f7 * ?f14 / 100000");
add(L"f28", L"?f6 - ?f27");
add(L"f29", L"?f28 / 2");
add(L"f30", L"?f7 * ?f14 / 400000");
add(L"f31", L"?f6 - ?f30");
add(L"f32", L"?f27 - ?f30");
add(L"f33", L"21550000 - ?f1");
add(L"f34", L"if(?f33, ?f1, 21550000)");
add(L"f35", L"-21550000 - ?f34");
add(L"f36", L"if(?f35, -21550000, ?f34)");
add(L"f37", L"?f0 + ?f36");
add(L"f38", L"?f0 + ?f2");
add(L"f39", L"?f38 * ?f13 / ?f1");
add(L"f40", L"0 - ?f39");
add(L"f41", L"cos(?f40)");
add(L"f42", L"0 - ?f41");
add(L"f43", L"?f42 * ?f11");
add(L"f44", L"sin(?f40)");
add(L"f45", L"0 - ?f44");
add(L"f46", L"?f45 * ?f30");
add(L"f47", L"sqrt(?f43 * ?f43 + ?f46 * ?f46 + 0 * 0)");
add(L"f48", L"?f11 * ?f30 / ?f47");
add(L"f49", L"?f45 * ?f48");
add(L"f50", L"?f24 - ?f49");
add(L"f51", L"?f42 * ?f48");
add(L"f52", L"?f5 - ?f51");
add(L"f53", L"?f50 - ?f11");
add(L"f54", L"?f52 - ?f30");
add(L"f55", L"?f50 + ?f11");
add(L"f56", L"?f52 + ?f30");
add(L"f57", L"?f37 + ?f2");
add(L"f58", L"?f57 * ?f13 / ?f1");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * ?f11");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * ?f30");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"?f11 * ?f30 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"?f50 + ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"?f52 + ?f70");
add(L"f72", L"if(?f36, ?f24, ?f53)");
add(L"f73", L"if(?f36, ?f5, ?f54)");
add(L"f74", L"if(?f36, ?f24, ?f55)");
add(L"f75", L"if(?f36, ?f5, ?f56)");
add(L"f76", L"if(?f36, ?f53, ?f69)");
add(L"f77", L"if(?f36, ?f54, ?f71)");
add(L"f78", L"if(?f36, ?f55, ?f69)");
add(L"f79", L"if(?f36, ?f56, ?f71)");
add(L"f80", L"21550000 - -10800000");
add(L"f81", L"if(?f80, -10800000, 21550000)");
add(L"f82", L"-21550000 - ?f81");
add(L"f83", L"if(?f82, -21550000, ?f81)");
add(L"f84", L"?f0 + ?f83");
add(L"f85", L"?f20 - ?f49");
add(L"f86", L"?f26 - ?f51");
add(L"f87", L"?f85 - ?f11");
add(L"f88", L"?f86 - ?f30");
add(L"f89", L"?f85 + ?f11");
add(L"f90", L"?f86 + ?f30");
add(L"f91", L"?f84 + ?f2");
add(L"f92", L"?f91 * ?f13 / ?f1");
add(L"f93", L"0 - ?f92");
add(L"f94", L"cos(?f93)");
add(L"f95", L"0 - ?f94");
add(L"f96", L"?f95 * ?f11");
add(L"f97", L"sin(?f93)");
add(L"f98", L"0 - ?f97");
add(L"f99", L"?f98 * ?f30");
add(L"f100", L"sqrt(?f96 * ?f96 + ?f99 * ?f99 + 0 * 0)");
add(L"f101", L"?f11 * ?f30 / ?f100");
add(L"f102", L"?f98 * ?f101");
add(L"f103", L"?f85 + ?f102");
add(L"f104", L"?f95 * ?f101");
add(L"f105", L"?f86 + ?f104");
add(L"f106", L"if(?f83, ?f20, ?f87)");
add(L"f107", L"if(?f83, ?f26, ?f88)");
add(L"f108", L"if(?f83, ?f20, ?f89)");
add(L"f109", L"if(?f83, ?f26, ?f90)");
add(L"f110", L"if(?f83, ?f87, ?f103)");
add(L"f111", L"if(?f83, ?f88, ?f105)");
add(L"f112", L"if(?f83, ?f89, ?f103)");
add(L"f113", L"if(?f83, ?f90, ?f105)");
add(L"f114", L"?f2 + ?f83");
add(L"f115", L"?f2 + ?f2");
add(L"f116", L"?f115 * ?f13 / ?f1");
add(L"f117", L"0 - ?f116");
add(L"f118", L"cos(?f117)");
add(L"f119", L"0 - ?f118");
add(L"f120", L"?f119 * ?f11");
add(L"f121", L"sin(?f117)");
add(L"f122", L"0 - ?f121");
add(L"f123", L"?f122 * ?f30");
add(L"f124", L"sqrt(?f120 * ?f120 + ?f123 * ?f123 + 0 * 0)");
add(L"f125", L"?f11 * ?f30 / ?f124");
add(L"f126", L"?f122 * ?f125");
add(L"f127", L"?f21 - ?f126");
add(L"f128", L"?f119 * ?f125");
add(L"f129", L"?f27 - ?f128");
add(L"f130", L"?f127 - ?f11");
add(L"f131", L"?f129 - ?f30");
add(L"f132", L"?f127 + ?f11");
add(L"f133", L"?f129 + ?f30");
add(L"f134", L"?f114 + ?f2");
add(L"f135", L"?f134 * ?f13 / ?f1");
add(L"f136", L"0 - ?f135");
add(L"f137", L"cos(?f136)");
add(L"f138", L"0 - ?f137");
add(L"f139", L"?f138 * ?f11");
add(L"f140", L"sin(?f136)");
add(L"f141", L"0 - ?f140");
add(L"f142", L"?f141 * ?f30");
add(L"f143", L"sqrt(?f139 * ?f139 + ?f142 * ?f142 + 0 * 0)");
add(L"f144", L"?f11 * ?f30 / ?f143");
add(L"f145", L"?f141 * ?f144");
add(L"f146", L"?f127 + ?f145");
add(L"f147", L"?f138 * ?f144");
add(L"f148", L"?f129 + ?f147");
add(L"f149", L"if(?f83, ?f21, ?f130)");
add(L"f150", L"if(?f83, ?f27, ?f131)");
add(L"f151", L"if(?f83, ?f21, ?f132)");
add(L"f152", L"if(?f83, ?f27, ?f133)");
add(L"f153", L"if(?f83, ?f130, ?f146)");
add(L"f154", L"if(?f83, ?f131, ?f148)");
add(L"f155", L"if(?f83, ?f132, ?f146)");
add(L"f156", L"if(?f83, ?f133, ?f148)");
add(L"f157", L"?f2 + ?f36");
add(L"f158", L"?f25 - ?f126");
add(L"f159", L"?f26 - ?f128");
add(L"f160", L"?f158 - ?f11");
add(L"f161", L"?f159 - ?f30");
add(L"f162", L"?f158 + ?f11");
add(L"f163", L"?f159 + ?f30");
add(L"f164", L"?f157 + ?f2");
add(L"f165", L"?f164 * ?f13 / ?f1");
add(L"f166", L"0 - ?f165");
add(L"f167", L"cos(?f166)");
add(L"f168", L"0 - ?f167");
add(L"f169", L"?f168 * ?f11");
add(L"f170", L"sin(?f166)");
add(L"f171", L"0 - ?f170");
add(L"f172", L"?f171 * ?f30");
add(L"f173", L"sqrt(?f169 * ?f169 + ?f172 * ?f172 + 0 * 0)");
add(L"f174", L"?f11 * ?f30 / ?f173");
add(L"f175", L"?f171 * ?f174");
add(L"f176", L"?f158 + ?f175");
add(L"f177", L"?f168 * ?f174");
add(L"f178", L"?f159 + ?f177");
add(L"f179", L"if(?f36, ?f25, ?f160)");
add(L"f180", L"if(?f36, ?f26, ?f161)");
add(L"f181", L"if(?f36, ?f25, ?f162)");
add(L"f182", L"if(?f36, ?f26, ?f163)");
add(L"f183", L"if(?f36, ?f160, ?f176)");
add(L"f184", L"if(?f36, ?f161, ?f178)");
add(L"f185", L"if(?f36, ?f162, ?f176)");
add(L"f186", L"if(?f36, ?f163, ?f178)");
add(L"f187", L"21550000 - ?f2");
add(L"f188", L"if(?f187, ?f2, 21550000)");
add(L"f189", L"-21550000 - ?f188");
add(L"f190", L"if(?f189, -21550000, ?f188)");
add(L"f191", L"0 + ?f190");
add(L"f192", L"0 + ?f2");
add(L"f193", L"?f192 * ?f13 / ?f1");
add(L"f194", L"0 - ?f193");
add(L"f195", L"cos(?f194)");
add(L"f196", L"0 - ?f195");
add(L"f197", L"?f196 * ?f11");
add(L"f198", L"sin(?f194)");
add(L"f199", L"0 - ?f198");
add(L"f200", L"?f199 * ?f30");
add(L"f201", L"sqrt(?f197 * ?f197 + ?f200 * ?f200 + 0 * 0)");
add(L"f202", L"?f11 * ?f30 / ?f201");
add(L"f203", L"?f199 * ?f202");
add(L"f204", L"?f19 - ?f203");
add(L"f205", L"?f196 * ?f202");
add(L"f206", L"?f31 - ?f205");
add(L"f207", L"?f204 - ?f11");
add(L"f208", L"?f206 - ?f30");
add(L"f209", L"?f204 + ?f11");
add(L"f210", L"?f206 + ?f30");
add(L"f211", L"?f191 + ?f2");
add(L"f212", L"?f211 * ?f13 / ?f1");
add(L"f213", L"0 - ?f212");
add(L"f214", L"cos(?f213)");
add(L"f215", L"0 - ?f214");
add(L"f216", L"?f215 * ?f11");
add(L"f217", L"sin(?f213)");
add(L"f218", L"0 - ?f217");
add(L"f219", L"?f218 * ?f30");
add(L"f220", L"sqrt(?f216 * ?f216 + ?f219 * ?f219 + 0 * 0)");
add(L"f221", L"?f11 * ?f30 / ?f220");
add(L"f222", L"?f218 * ?f221");
add(L"f223", L"?f204 + ?f222");
add(L"f224", L"?f215 * ?f221");
add(L"f225", L"?f206 + ?f224");
add(L"f226", L"if(?f190, ?f19, ?f207)");
add(L"f227", L"if(?f190, ?f31, ?f208)");
add(L"f228", L"if(?f190, ?f19, ?f209)");
add(L"f229", L"if(?f190, ?f31, ?f210)");
add(L"f230", L"if(?f190, ?f207, ?f223)");
add(L"f231", L"if(?f190, ?f208, ?f225)");
add(L"f232", L"if(?f190, ?f209, ?f223)");
add(L"f233", L"if(?f190, ?f210, ?f225)");
add(L"f234", L"?f2 + ?f190");
add(L"f235", L"?f20 - ?f126");
add(L"f236", L"?f6 - ?f128");
add(L"f237", L"?f235 - ?f11");
add(L"f238", L"?f236 - ?f30");
add(L"f239", L"?f235 + ?f11");
add(L"f240", L"?f236 + ?f30");
add(L"f241", L"?f234 + ?f2");
add(L"f242", L"?f241 * ?f13 / ?f1");
add(L"f243", L"0 - ?f242");
add(L"f244", L"cos(?f243)");
add(L"f245", L"0 - ?f244");
add(L"f246", L"?f245 * ?f11");
add(L"f247", L"sin(?f243)");
add(L"f248", L"0 - ?f247");
add(L"f249", L"?f248 * ?f30");
add(L"f250", L"sqrt(?f246 * ?f246 + ?f249 * ?f249 + 0 * 0)");
add(L"f251", L"?f11 * ?f30 / ?f250");
add(L"f252", L"?f248 * ?f251");
add(L"f253", L"?f235 + ?f252");
add(L"f254", L"?f245 * ?f251");
add(L"f255", L"?f236 + ?f254");
add(L"f256", L"if(?f190, ?f20, ?f237)");
add(L"f257", L"if(?f190, ?f6, ?f238)");
add(L"f258", L"if(?f190, ?f20, ?f239)");
add(L"f259", L"if(?f190, ?f6, ?f240)");
add(L"f260", L"if(?f190, ?f237, ?f253)");
add(L"f261", L"if(?f190, ?f238, ?f255)");
add(L"f262", L"if(?f190, ?f239, ?f253)");
add(L"f263", L"if(?f190, ?f240, ?f255)");
add(L"f264", L"?f22 - ?f203");
add(L"f265", L"?f30 - ?f205");
add(L"f266", L"?f264 - ?f11");
add(L"f267", L"?f265 - ?f30");
add(L"f268", L"?f264 + ?f11");
add(L"f269", L"?f265 + ?f30");
add(L"f270", L"?f264 + ?f222");
add(L"f271", L"?f265 + ?f224");
add(L"f272", L"if(?f190, ?f22, ?f266)");
add(L"f273", L"if(?f190, ?f30, ?f267)");
add(L"f274", L"if(?f190, ?f22, ?f268)");
add(L"f275", L"if(?f190, ?f30, ?f269)");
add(L"f276", L"if(?f190, ?f266, ?f270)");
add(L"f277", L"if(?f190, ?f267, ?f271)");
add(L"f278", L"if(?f190, ?f268, ?f270)");
add(L"f279", L"if(?f190, ?f269, ?f271)");
add(L"f280", L"21550000 - -5400000");
add(L"f281", L"if(?f280, -5400000, 21550000)");
add(L"f282", L"-21550000 - ?f281");
add(L"f283", L"if(?f282, -21550000, ?f281)");
add(L"f284", L"?f1 + ?f283");
add(L"f285", L"?f1 + ?f2");
add(L"f286", L"?f285 * ?f13 / ?f1");
add(L"f287", L"0 - ?f286");
add(L"f288", L"cos(?f287)");
add(L"f289", L"0 - ?f288");
add(L"f290", L"?f289 * ?f11");
add(L"f291", L"sin(?f287)");
add(L"f292", L"0 - ?f291");
add(L"f293", L"?f292 * ?f30");
add(L"f294", L"sqrt(?f290 * ?f290 + ?f293 * ?f293 + 0 * 0)");
add(L"f295", L"?f11 * ?f30 / ?f294");
add(L"f296", L"?f292 * ?f295");
add(L"f297", L"?f23 - ?f296");
add(L"f298", L"?f289 * ?f295");
add(L"f299", L"?f30 - ?f298");
add(L"f300", L"?f297 - ?f11");
add(L"f301", L"?f299 - ?f30");
add(L"f302", L"?f297 + ?f11");
add(L"f303", L"?f299 + ?f30");
add(L"f304", L"?f284 + ?f2");
add(L"f305", L"?f304 * ?f13 / ?f1");
add(L"f306", L"0 - ?f305");
add(L"f307", L"cos(?f306)");
add(L"f308", L"0 - ?f307");
add(L"f309", L"?f308 * ?f11");
add(L"f310", L"sin(?f306)");
add(L"f311", L"0 - ?f310");
add(L"f312", L"?f311 * ?f30");
add(L"f313", L"sqrt(?f309 * ?f309 + ?f312 * ?f312 + 0 * 0)");
add(L"f314", L"?f11 * ?f30 / ?f313");
add(L"f315", L"?f311 * ?f314");
add(L"f316", L"?f297 + ?f315");
add(L"f317", L"?f308 * ?f314");
add(L"f318", L"?f299 + ?f317");
add(L"f319", L"if(?f283, ?f23, ?f300)");
add(L"f320", L"if(?f283, ?f30, ?f301)");
add(L"f321", L"if(?f283, ?f23, ?f302)");
add(L"f322", L"if(?f283, ?f30, ?f303)");
add(L"f323", L"if(?f283, ?f300, ?f316)");
add(L"f324", L"if(?f283, ?f301, ?f318)");
add(L"f325", L"if(?f283, ?f302, ?f316)");
add(L"f326", L"if(?f283, ?f303, ?f318)");
add(L"f327", L"?f21 - ?f49");
add(L"f328", L"?f327 - ?f11");
add(L"f329", L"?f327 + ?f11");
add(L"f330", L"?f327 + ?f68");
add(L"f331", L"?f86 + ?f70");
add(L"f332", L"if(?f36, ?f21, ?f328)");
add(L"f333", L"if(?f36, ?f26, ?f88)");
add(L"f334", L"if(?f36, ?f21, ?f329)");
add(L"f335", L"if(?f36, ?f26, ?f90)");
add(L"f336", L"if(?f36, ?f328, ?f330)");
add(L"f337", L"if(?f36, ?f88, ?f331)");
add(L"f338", L"if(?f36, ?f329, ?f330)");
add(L"f339", L"if(?f36, ?f90, ?f331)");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Ribbon2 : public oox_shape
{
public:
oox_shape_Ribbon2()
{
odf_type_name =L"ooxml-ribbon2";
enhanced_path = L"S M ?f3 ?f6 L ?f24 ?f6 A ?f74 ?f75 ?f76 ?f77 ?f24 ?f6 ?f71 ?f73 W ?f78 ?f79 ?f80 ?f81 ?f24 ?f6 ?f71 ?f73 L ?f20 ?f27 A ?f108 ?f109 ?f110 ?f111 ?f20 ?f27 ?f105 ?f107 W ?f112 ?f113 ?f114 ?f115 ?f20 ?f27 ?f105 ?f107 L ?f21 ?f29 A ?f151 ?f152 ?f153 ?f154 ?f21 ?f29 ?f148 ?f150 W ?f155 ?f156 ?f157 ?f158 ?f21 ?f29 ?f148 ?f150 L ?f25 ?f27 A ?f181 ?f182 ?f183 ?f184 ?f25 ?f27 ?f178 ?f180 W ?f185 ?f186 ?f187 ?f188 ?f25 ?f27 ?f178 ?f180 L ?f4 ?f6 ?f16 ?f31 ?f4 ?f30 ?f19 ?f30 ?f19 ?f32 A ?f228 ?f229 ?f230 ?f231 ?f19 ?f32 ?f225 ?f227 W ?f232 ?f233 ?f234 ?f235 ?f19 ?f32 ?f225 ?f227 L ?f20 ?f5 A ?f258 ?f259 ?f260 ?f261 ?f20 ?f5 ?f255 ?f257 W ?f262 ?f263 ?f264 ?f265 ?f20 ?f5 ?f255 ?f257 L ?f18 ?f30 ?f3 ?f30 ?f10 ?f31 Z N S M ?f22 ?f33 A ?f274 ?f275 ?f276 ?f277 ?f22 ?f33 ?f272 ?f273 W ?f278 ?f279 ?f280 ?f281 ?f22 ?f33 ?f272 ?f273 L ?f20 ?f27 A ?f108 ?f109 ?f110 ?f111 ?f20 ?f27 ?f105 ?f107 W ?f112 ?f113 ?f114 ?f115 ?f20 ?f27 ?f105 ?f107 L ?f22 ?f29 Z M ?f23 ?f33 A ?f321 ?f322 ?f323 ?f324 ?f23 ?f33 ?f318 ?f320 W ?f325 ?f326 ?f327 ?f328 ?f23 ?f33 ?f318 ?f320 L ?f21 ?f27 A ?f334 ?f335 ?f336 ?f337 ?f21 ?f27 ?f332 ?f333 W ?f338 ?f339 ?f340 ?f341 ?f21 ?f27 ?f332 ?f333 L ?f23 ?f29 Z N F M ?f3 ?f6 L ?f10 ?f31 ?f3 ?f30 ?f18 ?f30 ?f18 ?f32 A ?f350 ?f351 ?f352 ?f353 ?f18 ?f32 ?f348 ?f349 W ?f354 ?f355 ?f356 ?f357 ?f18 ?f32 ?f348 ?f349 L ?f21 ?f5 A ?f374 ?f375 ?f376 ?f377 ?f21 ?f5 ?f371 ?f373 W ?f378 ?f379 ?f380 ?f381 ?f21 ?f5 ?f371 ?f373 L ?f19 ?f30 ?f19 ?f30 ?f4 ?f30 ?f16 ?f31 ?f4 ?f6 ?f25 ?f6 A ?f387 ?f388 ?f389 ?f390 ?f25 ?f6 ?f385 ?f386 W ?f391 ?f392 ?f393 ?f394 ?f25 ?f6 ?f385 ?f386 L ?f21 ?f27 A ?f334 ?f335 ?f336 ?f337 ?f21 ?f27 ?f332 ?f333 W ?f338 ?f339 ?f340 ?f341 ?f21 ?f27 ?f332 ?f333 L ?f20 ?f29 A ?f397 ?f398 ?f399 ?f400 ?f20 ?f29 ?f395 ?f396 W ?f401 ?f402 ?f403 ?f404 ?f20 ?f29 ?f395 ?f396 L ?f24 ?f27 A ?f410 ?f411 ?f412 ?f413 ?f24 ?f27 ?f408 ?f409 W ?f414 ?f415 ?f416 ?f417 ?f24 ?f27 ?f408 ?f409 Z M ?f22 ?f29 L ?f22 ?f33 M ?f23 ?f33 L ?f23 ?f29 M ?f18 ?f34 L ?f18 ?f30 M ?f19 ?f30 L ?f19 ?f34 N";
text_areas = L"?f18 ?f5 ?f19 ?f29";
view_box = L"0 0 21600 21600";
modifiers = L"16667 50000";
glue_points = L"?f10 ?f31 ?f12 ?f29 ?f16 ?f31";
add(L"f0", L"16200000");
add(L"f1", L"10800000");
add(L"f2", L"5400000");
add(L"f3", L"left");
add(L"f4", L"right");
add(L"f5", L"top");
add(L"f6", L"bottom");
add(L"f7", L"?f6 - ?f5");
add(L"f8", L"?f4 - ?f3");
add(L"f9", L"?f8 / 2");
add(L"f10", L"?f8 / 8");
add(L"f11", L"?f8 / 32");
add(L"f12", L"?f3 + ?f9");
add(L"f13", L"5419351 / 1725033");
add(L"f14", L"$0");
add(L"f15", L"$1");
add(L"f16", L"?f4 - ?f10");
add(L"f17", L"?f8 * ?f15 / 200000");
add(L"f18", L"?f12 - ?f17");
add(L"f19", L"?f12 + ?f17");
add(L"f20", L"?f18 + ?f11");
add(L"f21", L"?f19 - ?f11");
add(L"f22", L"?f18 + ?f10");
add(L"f23", L"?f19 - ?f10");
add(L"f24", L"?f22 - ?f11");
add(L"f25", L"?f23 + ?f11");
add(L"f26", L"?f7 * ?f14 / 200000");
add(L"f27", L"?f6 - ?f26");
add(L"f28", L"?f7 * ?f14 / 100000");
add(L"f29", L"?f6 - ?f28");
add(L"f30", L"?f5 + ?f28");
add(L"f31", L"(?f30 + ?f6) / 2");
add(L"f32", L"?f7 * ?f14 / 400000");
add(L"f33", L"?f6 - ?f32");
add(L"f34", L"?f27 - ?f32");
add(L"f35", L"21550000 - -10800000");
add(L"f36", L"if(?f35, -10800000, 21550000)");
add(L"f37", L"-21550000 - ?f36");
add(L"f38", L"if(?f37, -21550000, ?f36)");
add(L"f39", L"?f2 + ?f38");
add(L"f40", L"?f2 + ?f2");
add(L"f41", L"?f40 * ?f13 / ?f1");
add(L"f42", L"0 - ?f41");
add(L"f43", L"cos(?f42)");
add(L"f44", L"0 - ?f43");
add(L"f45", L"?f44 * ?f11");
add(L"f46", L"sin(?f42)");
add(L"f47", L"0 - ?f46");
add(L"f48", L"?f47 * ?f32");
add(L"f49", L"sqrt(?f45 * ?f45 + ?f48 * ?f48 + 0 * 0)");
add(L"f50", L"?f11 * ?f32 / ?f49");
add(L"f51", L"?f47 * ?f50");
add(L"f52", L"?f24 - ?f51");
add(L"f53", L"?f44 * ?f50");
add(L"f54", L"?f6 - ?f53");
add(L"f55", L"?f52 - ?f11");
add(L"f56", L"?f54 - ?f32");
add(L"f57", L"?f52 + ?f11");
add(L"f58", L"?f54 + ?f32");
add(L"f59", L"?f39 + ?f2");
add(L"f60", L"?f59 * ?f13 / ?f1");
add(L"f61", L"0 - ?f60");
add(L"f62", L"cos(?f61)");
add(L"f63", L"0 - ?f62");
add(L"f64", L"?f63 * ?f11");
add(L"f65", L"sin(?f61)");
add(L"f66", L"0 - ?f65");
add(L"f67", L"?f66 * ?f32");
add(L"f68", L"sqrt(?f64 * ?f64 + ?f67 * ?f67 + 0 * 0)");
add(L"f69", L"?f11 * ?f32 / ?f68");
add(L"f70", L"?f66 * ?f69");
add(L"f71", L"?f52 + ?f70");
add(L"f72", L"?f63 * ?f69");
add(L"f73", L"?f54 + ?f72");
add(L"f74", L"if(?f38, ?f24, ?f55)");
add(L"f75", L"if(?f38, ?f6, ?f56)");
add(L"f76", L"if(?f38, ?f24, ?f57)");
add(L"f77", L"if(?f38, ?f6, ?f58)");
add(L"f78", L"if(?f38, ?f55, ?f71)");
add(L"f79", L"if(?f38, ?f56, ?f73)");
add(L"f80", L"if(?f38, ?f57, ?f71)");
add(L"f81", L"if(?f38, ?f58, ?f73)");
add(L"f82", L"21550000 - ?f1");
add(L"f83", L"if(?f82, ?f1, 21550000)");
add(L"f84", L"-21550000 - ?f83");
add(L"f85", L"if(?f84, -21550000, ?f83)");
add(L"f86", L"?f2 + ?f85");
add(L"f87", L"?f20 - ?f51");
add(L"f88", L"?f27 - ?f53");
add(L"f89", L"?f87 - ?f11");
add(L"f90", L"?f88 - ?f32");
add(L"f91", L"?f87 + ?f11");
add(L"f92", L"?f88 + ?f32");
add(L"f93", L"?f86 + ?f2");
add(L"f94", L"?f93 * ?f13 / ?f1");
add(L"f95", L"0 - ?f94");
add(L"f96", L"cos(?f95)");
add(L"f97", L"0 - ?f96");
add(L"f98", L"?f97 * ?f11");
add(L"f99", L"sin(?f95)");
add(L"f100", L"0 - ?f99");
add(L"f101", L"?f100 * ?f32");
add(L"f102", L"sqrt(?f98 * ?f98 + ?f101 * ?f101 + 0 * 0)");
add(L"f103", L"?f11 * ?f32 / ?f102");
add(L"f104", L"?f100 * ?f103");
add(L"f105", L"?f87 + ?f104");
add(L"f106", L"?f97 * ?f103");
add(L"f107", L"?f88 + ?f106");
add(L"f108", L"if(?f85, ?f20, ?f89)");
add(L"f109", L"if(?f85, ?f27, ?f90)");
add(L"f110", L"if(?f85, ?f20, ?f91)");
add(L"f111", L"if(?f85, ?f27, ?f92)");
add(L"f112", L"if(?f85, ?f89, ?f105)");
add(L"f113", L"if(?f85, ?f90, ?f107)");
add(L"f114", L"if(?f85, ?f91, ?f105)");
add(L"f115", L"if(?f85, ?f92, ?f107)");
add(L"f116", L"?f0 + ?f85");
add(L"f117", L"?f0 + ?f2");
add(L"f118", L"?f117 * ?f13 / ?f1");
add(L"f119", L"0 - ?f118");
add(L"f120", L"cos(?f119)");
add(L"f121", L"0 - ?f120");
add(L"f122", L"?f121 * ?f11");
add(L"f123", L"sin(?f119)");
add(L"f124", L"0 - ?f123");
add(L"f125", L"?f124 * ?f32");
add(L"f126", L"sqrt(?f122 * ?f122 + ?f125 * ?f125 + 0 * 0)");
add(L"f127", L"?f11 * ?f32 / ?f126");
add(L"f128", L"?f124 * ?f127");
add(L"f129", L"?f21 - ?f128");
add(L"f130", L"?f121 * ?f127");
add(L"f131", L"?f29 - ?f130");
add(L"f132", L"?f129 - ?f11");
add(L"f133", L"?f131 - ?f32");
add(L"f134", L"?f129 + ?f11");
add(L"f135", L"?f131 + ?f32");
add(L"f136", L"?f116 + ?f2");
add(L"f137", L"?f136 * ?f13 / ?f1");
add(L"f138", L"0 - ?f137");
add(L"f139", L"cos(?f138)");
add(L"f140", L"0 - ?f139");
add(L"f141", L"?f140 * ?f11");
add(L"f142", L"sin(?f138)");
add(L"f143", L"0 - ?f142");
add(L"f144", L"?f143 * ?f32");
add(L"f145", L"sqrt(?f141 * ?f141 + ?f144 * ?f144 + 0 * 0)");
add(L"f146", L"?f11 * ?f32 / ?f145");
add(L"f147", L"?f143 * ?f146");
add(L"f148", L"?f129 + ?f147");
add(L"f149", L"?f140 * ?f146");
add(L"f150", L"?f131 + ?f149");
add(L"f151", L"if(?f85, ?f21, ?f132)");
add(L"f152", L"if(?f85, ?f29, ?f133)");
add(L"f153", L"if(?f85, ?f21, ?f134)");
add(L"f154", L"if(?f85, ?f29, ?f135)");
add(L"f155", L"if(?f85, ?f132, ?f148)");
add(L"f156", L"if(?f85, ?f133, ?f150)");
add(L"f157", L"if(?f85, ?f134, ?f148)");
add(L"f158", L"if(?f85, ?f135, ?f150)");
add(L"f159", L"?f0 + ?f38");
add(L"f160", L"?f25 - ?f128");
add(L"f161", L"?f27 - ?f130");
add(L"f162", L"?f160 - ?f11");
add(L"f163", L"?f161 - ?f32");
add(L"f164", L"?f160 + ?f11");
add(L"f165", L"?f161 + ?f32");
add(L"f166", L"?f159 + ?f2");
add(L"f167", L"?f166 * ?f13 / ?f1");
add(L"f168", L"0 - ?f167");
add(L"f169", L"cos(?f168)");
add(L"f170", L"0 - ?f169");
add(L"f171", L"?f170 * ?f11");
add(L"f172", L"sin(?f168)");
add(L"f173", L"0 - ?f172");
add(L"f174", L"?f173 * ?f32");
add(L"f175", L"sqrt(?f171 * ?f171 + ?f174 * ?f174 + 0 * 0)");
add(L"f176", L"?f11 * ?f32 / ?f175");
add(L"f177", L"?f173 * ?f176");
add(L"f178", L"?f160 + ?f177");
add(L"f179", L"?f170 * ?f176");
add(L"f180", L"?f161 + ?f179");
add(L"f181", L"if(?f38, ?f25, ?f162)");
add(L"f182", L"if(?f38, ?f27, ?f163)");
add(L"f183", L"if(?f38, ?f25, ?f164)");
add(L"f184", L"if(?f38, ?f27, ?f165)");
add(L"f185", L"if(?f38, ?f162, ?f178)");
add(L"f186", L"if(?f38, ?f163, ?f180)");
add(L"f187", L"if(?f38, ?f164, ?f178)");
add(L"f188", L"if(?f38, ?f165, ?f180)");
add(L"f189", L"21550000 - -5400000");
add(L"f190", L"if(?f189, -5400000, 21550000)");
add(L"f191", L"-21550000 - ?f190");
add(L"f192", L"if(?f191, -21550000, ?f190)");
add(L"f193", L"0 + ?f192");
add(L"f194", L"0 + ?f2");
add(L"f195", L"?f194 * ?f13 / ?f1");
add(L"f196", L"0 - ?f195");
add(L"f197", L"cos(?f196)");
add(L"f198", L"0 - ?f197");
add(L"f199", L"?f198 * ?f11");
add(L"f200", L"sin(?f196)");
add(L"f201", L"0 - ?f200");
add(L"f202", L"?f201 * ?f32");
add(L"f203", L"sqrt(?f199 * ?f199 + ?f202 * ?f202 + 0 * 0)");
add(L"f204", L"?f11 * ?f32 / ?f203");
add(L"f205", L"?f201 * ?f204");
add(L"f206", L"?f19 - ?f205");
add(L"f207", L"?f198 * ?f204");
add(L"f208", L"?f32 - ?f207");
add(L"f209", L"?f206 - ?f11");
add(L"f210", L"?f208 - ?f32");
add(L"f211", L"?f206 + ?f11");
add(L"f212", L"?f208 + ?f32");
add(L"f213", L"?f193 + ?f2");
add(L"f214", L"?f213 * ?f13 / ?f1");
add(L"f215", L"0 - ?f214");
add(L"f216", L"cos(?f215)");
add(L"f217", L"0 - ?f216");
add(L"f218", L"?f217 * ?f11");
add(L"f219", L"sin(?f215)");
add(L"f220", L"0 - ?f219");
add(L"f221", L"?f220 * ?f32");
add(L"f222", L"sqrt(?f218 * ?f218 + ?f221 * ?f221 + 0 * 0)");
add(L"f223", L"?f11 * ?f32 / ?f222");
add(L"f224", L"?f220 * ?f223");
add(L"f225", L"?f206 + ?f224");
add(L"f226", L"?f217 * ?f223");
add(L"f227", L"?f208 + ?f226");
add(L"f228", L"if(?f192, ?f19, ?f209)");
add(L"f229", L"if(?f192, ?f32, ?f210)");
add(L"f230", L"if(?f192, ?f19, ?f211)");
add(L"f231", L"if(?f192, ?f32, ?f212)");
add(L"f232", L"if(?f192, ?f209, ?f225)");
add(L"f233", L"if(?f192, ?f210, ?f227)");
add(L"f234", L"if(?f192, ?f211, ?f225)");
add(L"f235", L"if(?f192, ?f212, ?f227)");
add(L"f236", L"?f0 + ?f192");
add(L"f237", L"?f20 - ?f128");
add(L"f238", L"?f5 - ?f130");
add(L"f239", L"?f237 - ?f11");
add(L"f240", L"?f238 - ?f32");
add(L"f241", L"?f237 + ?f11");
add(L"f242", L"?f238 + ?f32");
add(L"f243", L"?f236 + ?f2");
add(L"f244", L"?f243 * ?f13 / ?f1");
add(L"f245", L"0 - ?f244");
add(L"f246", L"cos(?f245)");
add(L"f247", L"0 - ?f246");
add(L"f248", L"?f247 * ?f11");
add(L"f249", L"sin(?f245)");
add(L"f250", L"0 - ?f249");
add(L"f251", L"?f250 * ?f32");
add(L"f252", L"sqrt(?f248 * ?f248 + ?f251 * ?f251 + 0 * 0)");
add(L"f253", L"?f11 * ?f32 / ?f252");
add(L"f254", L"?f250 * ?f253");
add(L"f255", L"?f237 + ?f254");
add(L"f256", L"?f247 * ?f253");
add(L"f257", L"?f238 + ?f256");
add(L"f258", L"if(?f192, ?f20, ?f239)");
add(L"f259", L"if(?f192, ?f5, ?f240)");
add(L"f260", L"if(?f192, ?f20, ?f241)");
add(L"f261", L"if(?f192, ?f5, ?f242)");
add(L"f262", L"if(?f192, ?f239, ?f255)");
add(L"f263", L"if(?f192, ?f240, ?f257)");
add(L"f264", L"if(?f192, ?f241, ?f255)");
add(L"f265", L"if(?f192, ?f242, ?f257)");
add(L"f266", L"?f22 - ?f205");
add(L"f267", L"?f33 - ?f207");
add(L"f268", L"?f266 - ?f11");
add(L"f269", L"?f267 - ?f32");
add(L"f270", L"?f266 + ?f11");
add(L"f271", L"?f267 + ?f32");
add(L"f272", L"?f266 + ?f224");
add(L"f273", L"?f267 + ?f226");
add(L"f274", L"if(?f192, ?f22, ?f268)");
add(L"f275", L"if(?f192, ?f33, ?f269)");
add(L"f276", L"if(?f192, ?f22, ?f270)");
add(L"f277", L"if(?f192, ?f33, ?f271)");
add(L"f278", L"if(?f192, ?f268, ?f272)");
add(L"f279", L"if(?f192, ?f269, ?f273)");
add(L"f280", L"if(?f192, ?f270, ?f272)");
add(L"f281", L"if(?f192, ?f271, ?f273)");
add(L"f282", L"21550000 - ?f2");
add(L"f283", L"if(?f282, ?f2, 21550000)");
add(L"f284", L"-21550000 - ?f283");
add(L"f285", L"if(?f284, -21550000, ?f283)");
add(L"f286", L"?f1 + ?f285");
add(L"f287", L"?f1 + ?f2");
add(L"f288", L"?f287 * ?f13 / ?f1");
add(L"f289", L"0 - ?f288");
add(L"f290", L"cos(?f289)");
add(L"f291", L"0 - ?f290");
add(L"f292", L"?f291 * ?f11");
add(L"f293", L"sin(?f289)");
add(L"f294", L"0 - ?f293");
add(L"f295", L"?f294 * ?f32");
add(L"f296", L"sqrt(?f292 * ?f292 + ?f295 * ?f295 + 0 * 0)");
add(L"f297", L"?f11 * ?f32 / ?f296");
add(L"f298", L"?f294 * ?f297");
add(L"f299", L"?f23 - ?f298");
add(L"f300", L"?f291 * ?f297");
add(L"f301", L"?f33 - ?f300");
add(L"f302", L"?f299 - ?f11");
add(L"f303", L"?f301 - ?f32");
add(L"f304", L"?f299 + ?f11");
add(L"f305", L"?f301 + ?f32");
add(L"f306", L"?f286 + ?f2");
add(L"f307", L"?f306 * ?f13 / ?f1");
add(L"f308", L"0 - ?f307");
add(L"f309", L"cos(?f308)");
add(L"f310", L"0 - ?f309");
add(L"f311", L"?f310 * ?f11");
add(L"f312", L"sin(?f308)");
add(L"f313", L"0 - ?f312");
add(L"f314", L"?f313 * ?f32");
add(L"f315", L"sqrt(?f311 * ?f311 + ?f314 * ?f314 + 0 * 0)");
add(L"f316", L"?f11 * ?f32 / ?f315");
add(L"f317", L"?f313 * ?f316");
add(L"f318", L"?f299 + ?f317");
add(L"f319", L"?f310 * ?f316");
add(L"f320", L"?f301 + ?f319");
add(L"f321", L"if(?f285, ?f23, ?f302)");
add(L"f322", L"if(?f285, ?f33, ?f303)");
add(L"f323", L"if(?f285, ?f23, ?f304)");
add(L"f324", L"if(?f285, ?f33, ?f305)");
add(L"f325", L"if(?f285, ?f302, ?f318)");
add(L"f326", L"if(?f285, ?f303, ?f320)");
add(L"f327", L"if(?f285, ?f304, ?f318)");
add(L"f328", L"if(?f285, ?f305, ?f320)");
add(L"f329", L"?f21 - ?f51");
add(L"f330", L"?f329 - ?f11");
add(L"f331", L"?f329 + ?f11");
add(L"f332", L"?f329 + ?f70");
add(L"f333", L"?f88 + ?f72");
add(L"f334", L"if(?f38, ?f21, ?f330)");
add(L"f335", L"if(?f38, ?f27, ?f90)");
add(L"f336", L"if(?f38, ?f21, ?f331)");
add(L"f337", L"if(?f38, ?f27, ?f92)");
add(L"f338", L"if(?f38, ?f330, ?f332)");
add(L"f339", L"if(?f38, ?f90, ?f333)");
add(L"f340", L"if(?f38, ?f331, ?f332)");
add(L"f341", L"if(?f38, ?f92, ?f333)");
add(L"f342", L"?f18 - ?f298");
add(L"f343", L"?f32 - ?f300");
add(L"f344", L"?f342 - ?f11");
add(L"f345", L"?f343 - ?f32");
add(L"f346", L"?f342 + ?f11");
add(L"f347", L"?f343 + ?f32");
add(L"f348", L"?f342 + ?f317");
add(L"f349", L"?f343 + ?f319");
add(L"f350", L"if(?f285, ?f18, ?f344)");
add(L"f351", L"if(?f285, ?f32, ?f345)");
add(L"f352", L"if(?f285, ?f18, ?f346)");
add(L"f353", L"if(?f285, ?f32, ?f347)");
add(L"f354", L"if(?f285, ?f344, ?f348)");
add(L"f355", L"if(?f285, ?f345, ?f349)");
add(L"f356", L"if(?f285, ?f346, ?f348)");
add(L"f357", L"if(?f285, ?f347, ?f349)");
add(L"f358", L"?f0 + ?f285");
add(L"f359", L"?f358 + ?f2");
add(L"f360", L"?f359 * ?f13 / ?f1");
add(L"f361", L"0 - ?f360");
add(L"f362", L"cos(?f361)");
add(L"f363", L"0 - ?f362");
add(L"f364", L"?f363 * ?f11");
add(L"f365", L"sin(?f361)");
add(L"f366", L"0 - ?f365");
add(L"f367", L"?f366 * ?f32");
add(L"f368", L"sqrt(?f364 * ?f364 + ?f367 * ?f367 + 0 * 0)");
add(L"f369", L"?f11 * ?f32 / ?f368");
add(L"f370", L"?f366 * ?f369");
add(L"f371", L"?f129 + ?f370");
add(L"f372", L"?f363 * ?f369");
add(L"f373", L"?f238 + ?f372");
add(L"f374", L"if(?f285, ?f21, ?f132)");
add(L"f375", L"if(?f285, ?f5, ?f240)");
add(L"f376", L"if(?f285, ?f21, ?f134)");
add(L"f377", L"if(?f285, ?f5, ?f242)");
add(L"f378", L"if(?f285, ?f132, ?f371)");
add(L"f379", L"if(?f285, ?f240, ?f373)");
add(L"f380", L"if(?f285, ?f134, ?f371)");
add(L"f381", L"if(?f285, ?f242, ?f373)");
add(L"f382", L"?f25 - ?f51");
add(L"f383", L"?f382 - ?f11");
add(L"f384", L"?f382 + ?f11");
add(L"f385", L"?f382 + ?f104");
add(L"f386", L"?f54 + ?f106");
add(L"f387", L"if(?f85, ?f25, ?f383)");
add(L"f388", L"if(?f85, ?f6, ?f56)");
add(L"f389", L"if(?f85, ?f25, ?f384)");
add(L"f390", L"if(?f85, ?f6, ?f58)");
add(L"f391", L"if(?f85, ?f383, ?f385)");
add(L"f392", L"if(?f85, ?f56, ?f386)");
add(L"f393", L"if(?f85, ?f384, ?f385)");
add(L"f394", L"if(?f85, ?f58, ?f386)");
add(L"f395", L"?f237 + ?f177");
add(L"f396", L"?f131 + ?f179");
add(L"f397", L"if(?f38, ?f20, ?f239)");
add(L"f398", L"if(?f38, ?f29, ?f133)");
add(L"f399", L"if(?f38, ?f20, ?f241)");
add(L"f400", L"if(?f38, ?f29, ?f135)");
add(L"f401", L"if(?f38, ?f239, ?f395)");
add(L"f402", L"if(?f38, ?f133, ?f396)");
add(L"f403", L"if(?f38, ?f241, ?f395)");
add(L"f404", L"if(?f38, ?f135, ?f396)");
add(L"f405", L"?f24 - ?f128");
add(L"f406", L"?f405 - ?f11");
add(L"f407", L"?f405 + ?f11");
add(L"f408", L"?f405 + ?f147");
add(L"f409", L"?f161 + ?f149");
add(L"f410", L"if(?f85, ?f24, ?f406)");
add(L"f411", L"if(?f85, ?f27, ?f163)");
add(L"f412", L"if(?f85, ?f24, ?f407)");
add(L"f413", L"if(?f85, ?f27, ?f165)");
add(L"f414", L"if(?f85, ?f406, ?f408)");
add(L"f415", L"if(?f85, ?f163, ?f409)");
add(L"f416", L"if(?f85, ?f407, ?f408)");
add(L"f417", L"if(?f85, ?f165, ?f409)");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -404,13 +404,17 @@ int draw_enhanced_geometry::parsing(_CP_OPT(std::wstring) val)
/// draw-enhanced_geometry_attlist
void draw_enhanced_geometry_attlist::serialize(CP_ATTR_NODE)
{
if (draw_modifiers_ && draw_modifiers_->empty())
{
draw_modifiers_ = boost::none;
}
CP_XML_ATTR_OPT(L"draw:type", draw_type_);
CP_XML_ATTR_OPT(L"drawooo:sub-view-size", draw_sub_view_size_);
CP_XML_ATTR_OPT(L"draw:text-areas", draw_text_areas_);
CP_XML_ATTR_OPT(L"draw:text-rotate-angle", draw_text_rotate_angle_);
CP_XML_ATTR_OPT(L"draw:modifiers", draw_modifiers_);
CP_XML_ATTR_OPT(L"drawooo:enhanced-path", draw_enhanced_path_);
//CP_XML_ATTR_OPT(L"draw:enhanced-path", draw_enhanced_path_);
//CP_XML_ATTR_OPT(L"drawooo:enhanced-path", draw_enhanced_path_);
CP_XML_ATTR_OPT(L"draw:enhanced-path", draw_enhanced_path_);
CP_XML_ATTR_OPT(L"draw:glue-points", draw_glue_points_);
CP_XML_ATTR_OPT(L"draw:mirror-vertical", draw_mirror_vertical_);
CP_XML_ATTR_OPT(L"draw:mirror-horizontal", draw_mirror_horizontal_);

View File

@ -708,8 +708,14 @@ office_element_ptr odf_drawing_context::Impl::create_draw_element(int type)
create_element(L"draw", L"polygon", element, odf_context_);
break;
case 9:
case 10:
{
create_element(L"draw", L"connector", element, odf_context_);
break;
draw_connector* connector = dynamic_cast<draw_connector*>(element.get());
if (type == 10) connector->draw_connector_attlist_.draw_type_ = L"curve";
else connector->draw_connector_attlist_.draw_type_ = L"standard";
}break;
case 5000:
create_element(L"draw", L"g", element, odf_context_);
break;
@ -1160,6 +1166,11 @@ bool odf_drawing_context::isLineShape()
case 49: //SimpleTypes::shapetypeCurvedConnector4:
case 50: //SimpleTypes::shapetypeCurvedConnector5:
case 31: //SimpleTypes::shapetypeBracketPair
case 30: //SimpleTypes::shapetypeBracePair
case 148: //SimpleTypes::shapetypeRightBracket
case 111: //SimpleTypes::shapetypeLeftBracket
case 147: //SimpleTypes::shapetypeRightBrace
case 110: //SimpleTypes::shapetypeLeftBrace
case 18: //SimpleTypes::shapetypeArc
return true;
case 1000:
@ -1267,10 +1278,14 @@ void odf_drawing_context::end_line_properties()
////////////////////////////////////////////////////////////////////
void odf_drawing_context::set_name(const std::wstring & name)
{
if (name.empty()) return;
impl_->current_drawing_state_.name_ = name;
}
void odf_drawing_context::set_description (const std::wstring & description)
{
if (description.empty()) return;
impl_->current_drawing_state_.description_ = description;
}
void odf_drawing_context::set_hidden (bool bVal)

View File

@ -83,12 +83,17 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeStar12: return boost::make_shared<oox_shape_star12>();
case SimpleTypes::shapetypeStar16: return boost::make_shared<oox_shape_star16>();
case SimpleTypes::shapetypeStar32: return boost::make_shared<oox_shape_star32>();
case SimpleTypes::shapetypeSun: return boost::make_shared<oox_shape_sun>();
case SimpleTypes::shapetypeMoon: return boost::make_shared<oox_shape_moon>();
case SimpleTypes::shapetypeLightningBolt: return boost::make_shared<oox_shape_lightningBolt>();
case SimpleTypes::shapetypeHeart: return boost::make_shared<oox_shape_heart>();
case SimpleTypes::shapetypeCircularArrow: return boost::make_shared<oox_shape_CircularArrow>();
case SimpleTypes::shapetypeCurvedLeftArrow: return boost::make_shared<oox_shape_CurvedLeftArrow>();
case SimpleTypes::shapetypeCurvedRightArrow: return boost::make_shared<oox_shape_CurvedRightArrow>();
case SimpleTypes::shapetypeCurvedDownArrow: return boost::make_shared<oox_shape_CurvedDownArrow>();
case SimpleTypes::shapetypeCurvedUpArrow: return boost::make_shared<oox_shape_CurvedUpArrow>();
case SimpleTypes::shapetypeLeftCircularArrow: return boost::make_shared<oox_shape_LeftCircularArrow>();
case SimpleTypes::shapetypeSwooshArrow: return boost::make_shared<oox_shape_SwooshArrow>();
case SimpleTypes::shapetypeLeftArrow: return boost::make_shared<oox_shape_LeftArrow>();
@ -99,6 +104,7 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeDownArrow: return boost::make_shared<oox_shape_DownArrow>();
case SimpleTypes::shapetypeUpArrow: return boost::make_shared<oox_shape_UpArrow>();
case SimpleTypes::shapetypeNotchedRightArrow: return boost::make_shared<oox_shape_NotchedRightArrow>();
case SimpleTypes::shapetypeQuadArrowCallout: return boost::make_shared<oox_shape_QuadArrowCallout>();
case SimpleTypes::shapetypeFunnel: return boost::make_shared<oox_shape_Funnel>();
case SimpleTypes::shapetypeGear6: return boost::make_shared<oox_shape_Gear6>();
@ -124,7 +130,8 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeDonut: return boost::make_shared<oox_shape_Donut>();
case SimpleTypes::shapetypeLeftRightRibbon: return boost::make_shared<oox_shape_LeftRightRibbon>();
case SimpleTypes::shapetypeWave: return boost::make_shared<oox_shape_Wave>();
case SimpleTypes::shapetypeBracketPair: return boost::make_shared<oox_shape_bracketPair>();
case SimpleTypes::shapetypeFoldedCorner: return boost::make_shared<oox_shape_FoldedCorner>();
case SimpleTypes::shapetypeCan: return boost::make_shared<oox_shape_Can>();
case SimpleTypes::shapetypeFlowChartExtract: return boost::make_shared<oox_shape_FlowChartExtract>();
@ -138,6 +145,46 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeStraightConnector1: return boost::make_shared<oox_shape_StraightConnector1>();
case SimpleTypes::shapetypeFrame: return boost::make_shared<oox_shape_Frame>();
case SimpleTypes::shapetypePentagon: return boost::make_shared<oox_shape_Pentagon>();
case SimpleTypes::shapetypeOctagon: return boost::make_shared<oox_shape_Octagon>();
case SimpleTypes::shapetypeHexagon: return boost::make_shared<oox_shape_Hexagon>();
case SimpleTypes::shapetypeHeptagon: return boost::make_shared<oox_shape_Heptagon>();
case SimpleTypes::shapetypeDecagon: return boost::make_shared<oox_shape_Decagon>();
case SimpleTypes::shapetypeDodecagon: return boost::make_shared<oox_shape_Dodecagon>();
case SimpleTypes::shapetypeCube: return boost::make_shared<oox_shape_Cube>();
case SimpleTypes::shapetypeCallout1: return boost::make_shared<oox_shape_Callout1>();
case SimpleTypes::shapetypeCallout2: return boost::make_shared<oox_shape_Callout2>();
// case SimpleTypes::shapetypeCallout3: return boost::make_shared<oox_shape_Callout3>();
case SimpleTypes::shapetypeAccentCallout1: return boost::make_shared<oox_shape_AccentCallout1>();
case SimpleTypes::shapetypeAccentCallout2: return boost::make_shared<oox_shape_AccentCallout2>();
case SimpleTypes::shapetypeAccentCallout3: return boost::make_shared<oox_shape_AccentCallout3>();
case SimpleTypes::shapetypeBorderCallout1: return boost::make_shared<oox_shape_BorderCallout1>();
case SimpleTypes::shapetypeBorderCallout2: return boost::make_shared<oox_shape_BorderCallout2>();
case SimpleTypes::shapetypeBorderCallout3: return boost::make_shared<oox_shape_BorderCallout3>();
case SimpleTypes::shapetypeAccentBorderCallout1: return boost::make_shared<oox_shape_AccentBorderCallout1>();
case SimpleTypes::shapetypeAccentBorderCallout2: return boost::make_shared<oox_shape_AccentBorderCallout2>();
case SimpleTypes::shapetypeAccentBorderCallout3: return boost::make_shared<oox_shape_AccentBorderCallout3>();
case SimpleTypes::shapetypeCloudCallout: return boost::make_shared<oox_shape_CloudCallout>();
case SimpleTypes::shapetypeWedgeRectCallout: return boost::make_shared<oox_shape_WedgeRectCallout>();
case SimpleTypes::shapetypeWedgeRoundRectCallout: return boost::make_shared<oox_shape_WedgeRoundRectCallout>();
case SimpleTypes::shapetypeWedgeEllipseCallout: return boost::make_shared<oox_shape_WedgeEllipseCallout>();
case SimpleTypes::shapetypeRibbon: return boost::make_shared<oox_shape_Ribbon>();
case SimpleTypes::shapetypeRibbon2: return boost::make_shared<oox_shape_Ribbon2>();
case SimpleTypes::shapetypeEllipseRibbon: return boost::make_shared<oox_shape_EllipseRibbon>();
case SimpleTypes::shapetypeEllipseRibbon2: return boost::make_shared<oox_shape_EllipseRibbon2>();
case SimpleTypes::shapetypeRightBrace: return boost::make_shared<oox_shape_RightBrace>();
case SimpleTypes::shapetypeLeftBrace: return boost::make_shared<oox_shape_LeftBrace>();
case SimpleTypes::shapetypeRightBracket: return boost::make_shared<oox_shape_RightBracket>();
case SimpleTypes::shapetypeLeftBracket: return boost::make_shared<oox_shape_LeftBracket>();
case SimpleTypes::shapetypeBracePair: return boost::make_shared<oox_shape_BracePair>();
case SimpleTypes::shapetypeBracketPair: return boost::make_shared<oox_shape_BracketPair>();
//case (2001 + SimpleTypes::textshapetypeTextArchDown):
//case (2001 + SimpleTypes::textshapetypeTextArchDownPour):
//case (2001 + SimpleTypes::textshapetypeTextArchUp):

View File

@ -666,7 +666,14 @@ namespace PPTX
std::wstring strValue = strParams.substr(nPosOld, nPosition - nPosOld);
m_mapSettings.insert(std::pair<std::wstring, std::wstring>(strName, strValue));
if (m_mapSettings.find(strName) == m_mapSettings.end())
{
m_mapSettings.insert(std::make_pair(strName, strValue));
}
else
{
m_mapSettings[strName] += L"," + strValue;
}
}
}
@ -733,8 +740,14 @@ namespace PPTX
if (pData[nPosOld] == WCHAR('.'))
strValue = (L"0" + strValue);
//добавляем через [], а не insert, потому что ключи могут дублироваться(а в предыдущей реализации использовалось последнее значение)
m_mapSettings[strName] = strValue;
if (m_mapSettings.find(strName) == m_mapSettings.end())
{
m_mapSettings.insert(std::make_pair(strName, strValue));
}
else
{
m_mapSettings[strName] += L"," + strValue;
}
}
}
@ -2833,7 +2846,8 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
pSpPr->xfrm->flipH = true;
else if (pFind->second == L"y")
pSpPr->xfrm->flipV = true;
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x"))
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x")
|| (pFind->second == L"y,x") || (pFind->second == L"x,y"))
{
pSpPr->xfrm->flipH = true;
pSpPr->xfrm->flipV = true;
@ -2867,7 +2881,8 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
pSpPr->xfrm->flipH = true;
else if (pFind->second == L"y")
pSpPr->xfrm->flipV = true;
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x"))
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x")
|| (pFind->second == L"y,x") || (pFind->second == L"x,y"))
{
pSpPr->xfrm->flipH = true;
pSpPr->xfrm->flipV = true;
@ -3031,7 +3046,8 @@ void CDrawingConverter::doc_LoadGroup(PPTX::Logic::SpTreeElem *result, XmlUtils:
pTree->grpSpPr.xfrm->flipH = true;
else if (pFind->second == L"y")
pTree->grpSpPr.xfrm->flipV = true;
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x"))
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x")
|| (pFind->second == L"y,x") || (pFind->second == L"x,y"))
{
pTree->grpSpPr.xfrm->flipH = true;
pTree->grpSpPr.xfrm->flipV = true;
@ -3071,7 +3087,8 @@ void CDrawingConverter::doc_LoadGroup(PPTX::Logic::SpTreeElem *result, XmlUtils:
pTree->grpSpPr.xfrm->flipH = true;
else if (pFind->second == L"y")
pTree->grpSpPr.xfrm->flipV = true;
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x"))
else if ((pFind->second == L"xy") || (pFind->second == L"yx") || (pFind->second == L"x y") || (pFind->second == L"y x")
|| (pFind->second == L"y,x") || (pFind->second == L"x,y"))
{
pTree->grpSpPr.xfrm->flipH = true;
pTree->grpSpPr.xfrm->flipV = true;
@ -4752,6 +4769,14 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
if(oPic.oleObject.IsInit())
{
bOle = oPic.oleObject->isValid();
if (oPic.oleObject->m_oDxaOrig.IsInit() == false)
{
oPic.oleObject->m_oDxaOrig = 0;
}
if (oPic.oleObject->m_oDyaOrig.IsInit() == false)
{
oPic.oleObject->m_oDyaOrig = 0;
}
}
}
bool bSignatureLine = false;

View File

@ -323,7 +323,8 @@ namespace PPTX
{
m_OleObjectFile = new OOX::OleObject(NULL, true, pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX);
std::wstring strOlePath = pReader->GetString(_embed_data_size);
BYTE type = pReader->GetUChar();
std::wstring strOlePath = pReader->GetString2();
m_OleObjectFile->set_filename(strOlePath, false); //temp !!! for ImageManager original file name
}
else if (embedded_type == 4)

View File

@ -70,7 +70,7 @@ HRESULT convert_single(std::wstring srcFileName)
std::wstring dstPath;
bool bMacros = true;
hr = ConvertXls2Xlsx(srcFileName, dstTempPath, L"2222", L"C:\\Windows\\Fonts", L"C:\\Windows\\Temp", NULL, bMacros);
hr = ConvertXls2Xlsx(srcFileName, dstTempPath, L"password", L"C:\\Windows\\Fonts", L"C:\\Windows\\Temp", NULL, bMacros);
if (bMacros)
{

View File

@ -37,7 +37,14 @@ mkdir "build"
fi
cef_binary=cef_binary
cef_arch=$cef_binary.7z
cef_url=http://d2ettrnqo7v976.cloudfront.net/cef/3163/$platform$arch/$cef_arch
cef_version="3163"
if [[ "$platform" == *"linux"* ]]
then
cef_version="3202"
fi
cef_url=http://d2ettrnqo7v976.cloudfront.net/cef/$cef_version/$platform$arch/$cef_arch
if [[ "$platform" == *"linux"* ]]
then

View File

@ -1,17 +0,0 @@
QMAKE_CXX.INCDIRS = \
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE" \
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt"
QMAKE_CXX.LIBDIRS = \
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.10240.0\\ucrt\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64"
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1900
QMAKE_CXX.QMAKE_MSC_FULL_VER = 190024210
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER

View File

@ -26,7 +26,10 @@ core_linux {
core_mac {
LIBS += -L$$CORE_V8_PATH_LIBS -lv8_base -lv8_libplatform -lv8_libbase -lv8_snapshot -lv8_libsampler
LIBS += -L$$CORE_V8_PATH_LIBS/third_party/icu -licui18n -licuuc
#LIBS += -L$$CORE_V8_PATH_LIBS/third_party/icu -licui18n -licuuc
LIBS += $$CORE_V8_PATH_LIBS/third_party/icu/libicui18n.a
LIBS += $$CORE_V8_PATH_LIBS/third_party/icu/libicuuc.a
QMAKE_CXXFLAGS += -Wall -Wno-inconsistent-missing-override
QMAKE_CFLAGS += -Wall -Wno-inconsistent-missing-override

View File

@ -262,7 +262,7 @@ std::wstring COfficeFileFormatChecker::getDocumentID (const std::wstring & _file
}
else
{
if ( false == isOpenOfficeFormatFile(fileName, sDocumentID))
if ( false == isOpenOfficeFormatFile(fileName, documentID))
{
NSFile::CFileBinary file;
if (!file.OpenFile(fileName))
@ -275,12 +275,13 @@ std::wstring COfficeFileFormatChecker::getDocumentID (const std::wstring & _file
file.ReadFile(buffer, MIN_SIZE_BUFFER, dwReadBytes);
file.CloseFile();
if (isPdfFormatFile(buffer, (int)dwReadBytes, sDocumentID) )
if (isPdfFormatFile(buffer, (int)dwReadBytes, documentID) )
{
nFileType = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF;
}
}
}
sDocumentID = documentID;
return documentID;
}

View File

@ -1,9 +1,31 @@
VERSION = $$cat(version.txt)
PRODUCT_VERSION = $$(PRODUCT_VERSION)
BUILD_NUMBER = $$(BUILD_NUMBER)
!isEmpty(PRODUCT_VERSION){
!isEmpty(BUILD_NUMBER){
VERSION = $${PRODUCT_VERSION}.$${BUILD_NUMBER}
}
}
DEFINES += INTVER=$$VERSION
QMAKE_TARGET_COMPANY = $$cat(copyright.txt)
QMAKE_TARGET_COPYRIGHT = $$cat(copyright.txt) (c) 2018
PUBLISHER_NAME = $$(PUBLISHER_NAME)
isEmpty(PUBLISHER_NAME){
PUBLISHER_NAME = $$cat(copyright.txt)
}
win32 {
CURRENT_YEAR = $$system("echo %Date:~6,4%")
}
!win32 {
CURRENT_YEAR = $$system(date +%Y)
}
QMAKE_TARGET_COMPANY = $$PUBLISHER_NAME
QMAKE_TARGET_COPYRIGHT = Copyright (C) $${PUBLISHER_NAME} $${CURRENT_YEAR}. All rights reserved
# CONFIGURATION
CONFIG(debug, debug|release) {

View File

@ -1 +1 @@
2.4.554.0
2.4.556.0

View File

@ -177,47 +177,49 @@ namespace MetaFile
{
return m_lType;
}
void CMetaFile::GetBounds(double* pdX, double* pdY, double* pdW, double* pdH)
{
if (c_lMetaWmf == m_lType)
{
const TRectD& oRect = m_oWmfFile.GetBounds();
*pdX = oRect.dLeft;
*pdY = oRect.dTop;
*pdW = oRect.dRight - oRect.dLeft;
*pdH = oRect.dBottom - oRect.dTop;
}
else if (c_lMetaEmf == m_lType)
{
TEmfRectL* pRect = m_oEmfFile.GetBounds();
*pdX = pRect->lLeft;
*pdY = pRect->lTop;
*pdW = pRect->lRight - pRect->lLeft;
*pdH = pRect->lBottom - pRect->lTop;
}
else if (c_lMetaSvm == m_lType)
{
TRect* pRect = m_oSvmFile.GetBounds();
*pdX = pRect->nLeft;
*pdY = pRect->nTop;
*pdW = pRect->nRight - pRect->nLeft;
*pdH = pRect->nBottom - pRect->nTop;
void CMetaFile::GetBounds(double* pdX, double* pdY, double* pdW, double* pdH)
{
if (c_lMetaWmf == m_lType)
{
const TRectD& oRect = m_oWmfFile.GetBounds();
*pdX = oRect.dLeft;
*pdY = oRect.dTop;
*pdW = oRect.dRight - oRect.dLeft;
*pdH = oRect.dBottom - oRect.dTop;
}
else if (c_lMetaEmf == m_lType)
{
TEmfRectL* pRect = m_oEmfFile.GetBounds();
*pdX = pRect->lLeft;
*pdY = pRect->lTop;
*pdW = pRect->lRight - pRect->lLeft;
*pdH = pRect->lBottom - pRect->lTop;
}
else if (c_lMetaSvm == m_lType)
{
TRect* pRect = m_oSvmFile.GetBounds();
*pdX = pRect->nLeft;
*pdY = pRect->nTop;
*pdW = pRect->nRight - pRect->nLeft;
*pdH = pRect->nBottom - pRect->nTop;
if (*pdW > 10000 || *pdH > 10000)
{
*pdW /= 10;
*pdH /= 10;
}
}
else
{
*pdX = 0;
*pdY = 0;
*pdW = 0;
*pdH = 0;
}
};
void CMetaFile::ConvertToRaster(const wchar_t* wsOutFilePath, unsigned int unFileType, int nWidth, int nHeight)
if (*pdW > 10000 || *pdH > 10000)
{
*pdW /= 10;
*pdH /= 10;
}
}
else
{
*pdX = 0;
*pdY = 0;
*pdW = 0;
*pdH = 0;
}
if (*pdW < 0) *pdW = -*pdW;
if (*pdH < 0) *pdH = -*pdH;
};
void CMetaFile::ConvertToRaster(const wchar_t* wsOutFilePath, unsigned int unFileType, int nWidth, int nHeight)
{
CFontManager *pFontManager = (CFontManager*)m_pAppFonts->GenerateFontManager();
CFontsCache* pFontCache = new CFontsCache();

View File

@ -398,9 +398,9 @@ int CHtmlFile::Convert(const std::vector<std::wstring>& arFiles, const std::wstr
const char* nenv[4];
nenv[0] = sLibraryDir.c_str();
nenv[1] = "LD_PRELOAD=./libcef.so";
nenv[2] = "DISPLAY=:0";
nenv[3] = NULL;
nenv[1] = "DISPLAY=:0";
nenv[2] = NULL;
nenv[3] = NULL;
execve(sProgramm.c_str(),
(char * const *)nargs,
@ -419,9 +419,8 @@ int CHtmlFile::Convert(const std::vector<std::wstring>& arFiles, const std::wstr
const char* nenv[4];
nenv[0] = sLibraryDir.c_str();
nenv[1] = "LD_PRELOAD=./libcef.so";
nenv[2] = NULL;//"DISPLAY=:99";
nenv[3] = NULL;
nenv[1] = NULL;//"DISPLAY=:99";
nenv[2] = NULL;
execve("/usr/bin/xvfb-run", (char * const *)nargs, (char * const *)nenv);
exit(EXIT_SUCCESS);

View File

@ -16,6 +16,11 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += HTMLFILE_USE_DYNAMIC_LIBRARY
DEFINES += UNICODECONVERTER_USE_DYNAMIC_LIBRARY
CORE_ROOT_DIR = $$PWD/../..
PWD_ROOT_DIR = $$PWD
include($$CORE_ROOT_DIR/Common/base.pri)
include($$CORE_ROOT_DIR/Common/3dParty/icu/icu.pri)
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/Debug
} else {
@ -25,41 +30,10 @@ CONFIG(debug, debug|release) {
CONFIG += c++11
TEMPLATE = app
############### destination path ###############
DESTINATION_SDK_PATH = $$PWD/../../build/lib
# WINDOWS
win32:contains(QMAKE_TARGET.arch, x86_64):{
CONFIG(debug, debug|release) {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_64/DEBUG
} else {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_64
}
}
win32:!contains(QMAKE_TARGET.arch, x86_64):{
CONFIG(debug, debug|release) {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_32/DEBUG
} else {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_32
}
}
linux-g++:contains(QMAKE_HOST.arch, x86_64):{
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/linux_64
}
linux-g++:!contains(QMAKE_HOST.arch, x86_64):{
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/linux_32
}
LIBS += -L$$DESTINATION_SDK_PATH -lHtmlFile
LIBS += -L$$DESTINATION_SDK_PATH -lUnicodeConverter
LIBS += -L$$DESTINATION_SDK_PATH -lgraphics
LIBS += -L$$CORE_BUILDS_LIBRARIES_PATH -lUnicodeConverter -lkernel -lgraphics -lHtmlFile
linux-g++ | linux-g++-64 | linux-g++-32 {
QMAKE_LFLAGS += -Wl,--rpath=./
LIBS += $$PWD/../../build/bin/icu/linux_64/libicuuc.so.55
LIBS += $$PWD/../../build/bin/icu/linux_64/libicudata.so.55
message(linux)
}
@ -67,9 +41,6 @@ win32 {
LIBS += -ladvapi32 \
-luser32 \
-lshell32
LIBS += -L$$PWD/../../build/bin/icu/win_64/ -licudt
LIBS += -L$$PWD/../../build/bin/icu/win_64/ -licuuc
}
SOURCES += main.cpp

View File

@ -3,6 +3,8 @@ PRODUCT_VERSION ?= 0.0.0
BUILD_NUMBER ?= 0
PACKAGE_NAME := $(PRODUCT_NAME)
PUBLISHER_NAME ?= Ascensio System SIA
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_M),x86_64)
ARCHITECTURE := 64
@ -288,7 +290,12 @@ $(PDFREADER): $(PDFREADER_DEP)
$(PDFWRITER): $(PDFWRITER_DEP)
%.build/Makefile: %.pro
mkdir -p $(dir $@) && cd $(dir $@) && qmake -r $<
mkdir -p $(dir $@) && \
cd $(dir $@) && \
PUBLISHER_NAME="$(PUBLISHER_NAME)" \
PRODUCT_VERSION=$(PRODUCT_VERSION) \
BUILD_NUMBER=$(BUILD_NUMBER) \
qmake -r $<
$(ARCHIVE) :
$(AR) $@ $(ARTIFACTS)

View File

@ -586,7 +586,7 @@ bool ECMADecryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(verifierInputKey.ptr, verifierInputKey.size);
rc4Decryption.SetKey(verifierInputKey.ptr, cryptData.keySize);
}
//--------------------------------------------
_buf decryptedVerifierHashInputBytes;
@ -596,7 +596,7 @@ bool ECMADecryptor::SetPassword(std::wstring _password)
//--------------------------------------------
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(verifierHashKey.ptr, verifierHashKey.size);
rc4Decryption.SetKey(verifierHashKey.ptr, cryptData.keySize);
}
_buf decryptedVerifierHashBytes;
DecryptCipher(verifierHashKey, pSalt, pEncVerValue, decryptedVerifierHashBytes, cryptData.cipherAlgorithm);
@ -609,7 +609,7 @@ bool ECMADecryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(verifierKey.ptr, verifierKey.size);
rc4Decryption.SetKey(verifierKey.ptr, cryptData.keySize);
}
//--------------------------------------------
_buf decryptedVerifierHashInputBytes;
@ -673,7 +673,7 @@ void ECMADecryptor::Decrypt(char* data , const size_t size, const unsigned long
_buf hashKey = GenerateHashKey(pSalt, pPassword, cryptData.hashSize, cryptData.keySize, cryptData.spinCount, cryptData.hashAlgorithm, block_index);
rc4Decryption.SetKey(hashKey.ptr, hashKey.size);
rc4Decryption.SetKey(hashKey.ptr, cryptData.keySize);
}
const long offset = nCurrPos % block_size;
@ -764,7 +764,7 @@ void ECMADecryptor::Decrypt(unsigned char* data_inp, int size, unsigned char*&
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(agileKey.ptr, agileKey.size);
rc4Decryption.SetKey(agileKey.ptr, cryptData.keySize);
}
_buf pDecryptedKey;
DecryptCipher( agileKey, pSalt, pKeyValue, pDecryptedKey, cryptData.cipherAlgorithm);
@ -775,7 +775,7 @@ void ECMADecryptor::Decrypt(unsigned char* data_inp, int size, unsigned char*&
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(pDecryptedKey.ptr, pDecryptedKey.size);
rc4Decryption.SetKey(pDecryptedKey.ptr, cryptData.keySize);
}
while (pos < size)
{
@ -801,7 +801,7 @@ void ECMADecryptor::Decrypt(unsigned char* data_inp, int size, unsigned char*&
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(hashKey.ptr, hashKey.size);
rc4Decryption.SetKey(hashKey.ptr, cryptData.keySize);
}
_buf pInp(data_inp, size, false);
@ -860,7 +860,7 @@ void ECMAEncryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(agileKey.ptr, agileKey.size);
rc4Encryption.SetKey(agileKey.ptr, cryptData.keySize);
}
_buf pKeyValue;
EncryptCipher( agileKey, pSalt, pDecryptedKey, pKeyValue, cryptData.cipherAlgorithm);
@ -871,7 +871,7 @@ void ECMAEncryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(verifierInputKey.ptr, verifierInputKey.size);
rc4Encryption.SetKey(verifierInputKey.ptr, cryptData.keySize);
}
_buf pEncVerInput;
EncryptCipher( verifierInputKey, pSalt, decryptedVerifierHashInputBytes, pEncVerInput, cryptData.cipherAlgorithm);
@ -882,7 +882,7 @@ void ECMAEncryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(verifierHashKey.ptr, verifierHashKey.size);
rc4Encryption.SetKey(verifierHashKey.ptr, cryptData.keySize);
}
else if (decryptedVerifierHashBytes.size % PADDING_SIZE != 0)
{
@ -903,7 +903,7 @@ void ECMAEncryptor::SetPassword(std::wstring _password)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(verifierKey.ptr, verifierKey.size);
rc4Encryption.SetKey(verifierKey.ptr, cryptData.keySize);
}
_buf decryptedVerInput(seed_verify.data(), seed_verify.size());
@ -955,7 +955,7 @@ void ECMAEncryptor::UpdateDataIntegrity(unsigned char* data, int size)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(agileKey.ptr, agileKey.size);
rc4Encryption.SetKey(agileKey.ptr, cryptData.keySize);
}
_buf secretKey;
@ -981,7 +981,7 @@ void ECMAEncryptor::UpdateDataIntegrity(unsigned char* data, int size)
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(secretKey.ptr, secretKey.size);
rc4Encryption.SetKey(secretKey.ptr, cryptData.keySize);
}
if (pSaltHmac.size % PADDING_SIZE != 0)
{
@ -1033,14 +1033,14 @@ int ECMAEncryptor::Encrypt(unsigned char* data_inp_ptr, int size, unsigned char*
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(agileKey.ptr, agileKey.size);
rc4Decryption.SetKey(agileKey.ptr, cryptData.keySize);
}
_buf pDecryptedKey;
DecryptCipher( agileKey, pSalt, pKeyValue, pDecryptedKey, cryptData.cipherAlgorithm);
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Encryption.SetKey(pDecryptedKey.ptr, agileKey.size);
rc4Encryption.SetKey(pDecryptedKey.ptr, cryptData.keySize);
}
//-------------------------------------------------------------------------------------------------
_buf iv(cryptData.blockSize, true);
@ -1094,8 +1094,8 @@ int ECMAEncryptor::Encrypt(unsigned char* data_inp_ptr, int size, unsigned char*
if (cryptData.cipherAlgorithm == CRYPT_METHOD::RC4)
{
rc4Decryption.SetKey(hashKey.ptr, hashKey.size);
rc4Encryption.SetKey(hashKey.ptr, hashKey.size);
rc4Decryption.SetKey(hashKey.ptr, cryptData.keySize);
rc4Encryption.SetKey(hashKey.ptr, cryptData.keySize);
}
_buf pInp(data_inp, size, false);

View File

@ -602,6 +602,8 @@ void TestDocument7()
pPage->EndText();
oPdf.SetDocumentID(L"23193r09jscladjalj");
//oPdf.SetPasswords(L"123", L"qwe");
oPdf.SaveToFile(L"D:/test/_pdf/Test7.pdf");
oPdf.Close();
}
@ -800,7 +802,7 @@ void ConvertFolder(std::wstring wsFolderPath)
int _tmain(int argc, _TCHAR* argv[])
{
TestDocument3();
TestDocument7();
return S_OK;

View File

@ -285,15 +285,15 @@ namespace PdfWriter
memcpy(impl->m_anEncryptionKey, key.data(), key.size());
//-------------------------------------------------------------------
unsigned long long extended_perms = 0xffffffff00000000LL | m_unPermission;
for (int i = 0; i < 8; ++i)
{
m_anPermEncrypt[i] = static_cast<unsigned char>(extended_perms & 0xff);
extended_perms >>= 8;
}
m_anPermEncrypt[8] = /*m_bEncryptMetadata ? 'T' : */'F';
m_anPermEncrypt[9] = 'a';
m_anPermEncrypt[10] = 'd';
unsigned long long extended_perms = 0xffffffff00000000LL | m_unPermission;
for (int i = 0; i < 8; ++i)
{
m_anPermEncrypt[i] = static_cast<unsigned char>(extended_perms & 0xff);
extended_perms >>= 8;
}
m_anPermEncrypt[8] = /*m_bEncryptMetadata ? 'T' : */'F';
m_anPermEncrypt[9] = 'a';
m_anPermEncrypt[10] = 'd';
m_anPermEncrypt[11] = 'b';
CryptoPP::SecByteBlock p(4);
@ -320,35 +320,58 @@ namespace PdfWriter
impl->Reset();
}
#define PADDING_SIZE 16
unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast)
{
unsigned int unLenOut = unLen;
if (unLenOut % PADDING_SIZE != 0 && bLast)
unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen)
{
unsigned int unLenOut = unLen;
memcpy(pDst, impl->streamInitialization, 16);
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + 16, unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
if (unLenOut % PADDING_SIZE != 0)
unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
if (unLenOut != unLen)
{
stfEncryption.Put2(pSrc, unLen, 0, true);
unsigned char empty[16] = {};
stfEncryption.Put2(empty, unLenOut - unLen, 1, true);
}
else
{
stfEncryption.Put2(pSrc, unLen, bLast ? 1 : 0, true);
}
stfEncryption.MessageEnd();
memcpy(pDst, impl->streamInitialization, 16);
return unLenOut + 16;
}
void CEncrypt::SetPermission(unsigned int unPermission)
{
m_unPermission = unPermission;
}
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + 16, unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
stfEncryption.Put2(pSrc, unLen, 0, true);
if (unLenOut != unLen)
{
unsigned char empty[16] = {};
stfEncryption.Put2(empty, unLenOut - unLen, 0, true);
}
stfEncryption.MessageEnd();
return unLenOut + 16;
}
//unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bFirst, bool bLast)
// {
// unsigned int unLenOut = unLen;
// if (unLenOut % PADDING_SIZE != 0 && bLast)
// unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
// if(bFirst)
// memcpy(pDst, impl->streamInitialization, 16);
// CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + (bFirst ? 16 : 0), unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
// stfEncryption.Put2(pSrc, unLen, 0, true);
//
//if (unLenOut != unLen && bLast)
// {
// unsigned char empty[16] = {};
// stfEncryption.Put2(empty, unLenOut - unLen, 0, true);
// }
// if (bLast)
// {
// stfEncryption.MessageEnd();
// }
// return unLenOut + (bFirst ? 16 : 0);
// }
void CEncrypt::SetPermission(unsigned int unPermission)
{
m_unPermission = unPermission;
}
}

View File

@ -51,7 +51,7 @@ namespace PdfWriter
void CreateEncryptionKey();
void InitKey(unsigned int unObjectId, unsigned short unGenNo);
void Reset();
unsigned int CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast);
unsigned int CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen);
void SetPermission(unsigned int unPermission);
void SetPasswords(const std::string &sUserPassword, const std::string &sOwnerPassword);
private:

View File

@ -108,7 +108,7 @@ namespace PdfWriter
if (eType <= InfoModaDate)
return;
Add(sName, new CStringObject(sValue));
Add(sName, new CStringObject(sValue, true));
}
const char* CInfoDict::GetInfo(EInfoType eType)
{
@ -216,4 +216,4 @@ namespace PdfWriter
{
return m_oDate;
}
}
}

View File

@ -137,10 +137,11 @@ namespace PdfWriter
//----------------------------------------------------------------------------------------
// CStringObject
//----------------------------------------------------------------------------------------
CStringObject::CStringObject(const char* sValue)
CStringObject::CStringObject(const char* sValue, bool isUTF16)
{
m_pValue = NULL;
m_unLen = 0;
m_bUTF16 = isUTF16;
Set(sValue);
}
CStringObject::~CStringObject()

View File

@ -232,7 +232,7 @@ namespace PdfWriter
class CStringObject : public CObjectBase
{
public:
CStringObject(const char* sValue);
CStringObject(const char* sValue, bool isUTF16 = false);
virtual ~CStringObject();
void Set(const char* sValue);
const BYTE* GetString() const
@ -246,11 +246,16 @@ namespace PdfWriter
EObjectType GetType() const
{
return object_type_STRING;
}
}
bool IsUTF16() const
{
return m_bUTF16;
}
private:
BYTE* m_pValue;
unsigned int m_unLen;
bool m_bUTF16;
};
class CBinaryObject : public CObjectBase
{

View File

@ -38,6 +38,7 @@
#include <sstream>
#include "../../OfficeUtils/src/OfficeUtils.h"
#include "../../UnicodeConverter/UnicodeConverter.h"
#define DEFLATE_BUF_SIZ ((int)(STREAM_BUF_SIZ * 1.1) + 13)
@ -281,7 +282,7 @@ namespace PdfWriter
Write((BYTE*)sTmpChar, StrLen(sTmpChar, -1));
}
void CStream::WriteEscapeText(const BYTE* sText, unsigned int unLen)
void CStream::WriteEscapeText(const BYTE* sText, unsigned int unLen, bool isUTF16)
{
if (!unLen || !sText)
return;
@ -294,6 +295,21 @@ namespace PdfWriter
unsigned long nRet = 0;
sBuf[nIndex++] = '(';
if (isUTF16)
{
std::string sUtf8((char*)sText, unLen);
std::wstring sUnicode = UTF8_TO_U(sUtf8);
NSUnicodeConverter::CUnicodeConverter oConverter;
std::string sUtf16BE = oConverter.fromUnicode(sUnicode, "UTF-16BE");
unLen = (unsigned int)sUtf16BE.length();
sTxt = (BYTE*)sUtf16BE.c_str();
sBuf[nIndex++] = 0xFE;
sBuf[nIndex++] = 0xFF;
}
for (int nCounter = 0; nCounter < unLen; nCounter++)
{
BYTE nChar = (BYTE)*sTxt++;
@ -324,158 +340,185 @@ namespace PdfWriter
sBuf[nIndex++] = ')';
Write((BYTE*)sBuf, nIndex);
}
}
void CStream::WriteBinary(const BYTE* pData, unsigned int unLen, CEncrypt* pEncrypt)
{
char sBuf[TEXT_DEFAULT_LEN];
{
char sBuf[TEXT_DEFAULT_LEN];
BYTE* pBuf = NULL;
bool bDelete = false;
unsigned int nIndex = 0;
BYTE* pBuf = NULL;
bool bDelete = false;
unsigned int nIndex = 0;
const BYTE* pBuffer = NULL;
if (pEncrypt)
{
pBuf = new BYTE[unLen + 16 + 16]; // iv + padding
bDelete = true;
unLen = pEncrypt->CryptBuf(pData, pBuf, unLen, true);
pBuffer = pBuf;
}
else
{
pBuffer = pData;
}
const BYTE* pBuffer = NULL;
if (pEncrypt)
{
pBuf = new BYTE[unLen + 16 + 16]; // iv + padding
bDelete = true;
unLen = pEncrypt->CryptBuf(pData, pBuf, unLen);
pBuffer = pBuf;
}
else
{
pBuffer = pData;
}
for (int nCounter = 0; nCounter < unLen; nCounter++, pBuffer++)
{
Write((const BYTE*)c_pHexStrings[*pBuffer], 2);
}
for (int nCounter = 0; nCounter < unLen; nCounter++, pBuffer++)
{
Write((const BYTE*)c_pHexStrings[*pBuffer], 2);
}
if (nIndex > 0)
{
Write((BYTE*)sBuf, nIndex);
}
if (nIndex > 0)
{
Write((BYTE*)sBuf, nIndex);
}
if (bDelete)
delete[] pBuf;
}
if (bDelete)
delete[] pBuf;
}
void CStream::WriteStreamWithDeflate(CStream* pStream, CEncrypt* pEncrypt)
{
unsigned long nRet = OK;
{
unsigned long nRet = OK;
CDeflate ZStream;
BYTE inbuf[STREAM_BUF_SIZ];
BYTE otbuf[DEFLATE_BUF_SIZ];
BYTE ebuf[DEFLATE_BUF_SIZ];
// initialize input stream
pStream->Seek(0, SeekSet);
BYTE *otbuf_all = NULL;
// initialize decompression stream.
// initialize input stream
pStream->Seek(0, SeekSet);
unsigned long size = pStream->Size();
if (pEncrypt)
{
unsigned long size_out = (unsigned long)(size * 1.1 + 13 + 64);
otbuf_all = new BYTE[size_out];
}
// initialize decompression stream.
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
ZStream.Init(DEFLATE_DEFAULT_COMPRESSION, -1);
ZStream.SetIn(inbuf, 0);
for (;;)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(inbuf, &unSize);
unsigned long size_crypt = 0;
unsigned int offset = 0;
while(true)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(inbuf, &unSize);
ZStream.SetIn(inbuf, unSize);
if (0 == unSize)
break;
if (0 == unSize)
break;
while (ZStream.GetAvailIn() > 0)
{
{
ZStream.Process(DEFLATE_NO_FLUSH);
if (ZStream.GetAvailOut() == 0)
{
if (pEncrypt)
{
pEncrypt->CryptBuf(otbuf, ebuf, DEFLATE_BUF_SIZ, false);
Write(ebuf, DEFLATE_BUF_SIZ);
}
else
Write(otbuf, DEFLATE_BUF_SIZ);
{
if (pEncrypt)
{
memcpy(otbuf_all + offset, otbuf, DEFLATE_BUF_SIZ);
offset += DEFLATE_BUF_SIZ;
}
else
Write(otbuf, DEFLATE_BUF_SIZ);
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
}
}
}
}
}
}
bool bEnd = false;
for (;;)
{
bool bEnd = false;
while(true)
{
nRet = ZStream.Process(DEFLATE_FINISH);
if (DEFLATE_OK != nRet && DEFLATE_STREAM_END != nRet)
{
{
ZStream.End();
return;
}
return;
}
if (DEFLATE_STREAM_END == nRet)
bEnd = true;
bEnd = true;
if (ZStream.GetAvailOut() < DEFLATE_BUF_SIZ)
{
{
unsigned int osize = DEFLATE_BUF_SIZ - ZStream.GetAvailOut();
if (pEncrypt)
{
osize = pEncrypt->CryptBuf(otbuf, ebuf, osize, true);
Write(ebuf, osize);
}
else
Write(otbuf, osize);
if (pEncrypt)
{
memcpy(otbuf_all + offset, otbuf, osize);
offset += osize;
}
else
Write(otbuf, osize);
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
}
}
if (bEnd)
break;
}
if (bEnd)
break;
}
if (pEncrypt)
{
BYTE *etbuf_all = new BYTE[offset + 32];
unsigned int osize = pEncrypt->CryptBuf(otbuf_all, etbuf_all, offset);
delete []otbuf_all;
Write(etbuf_all, osize);
delete []etbuf_all;
}
ZStream.End();
}
}
void CStream::WriteStream(CStream* pStream, unsigned int unFilter, CEncrypt *pEncrypt)
{
if (pStream->Size() <= 0)
return;
{
if (pStream->Size() <= 0)
return;
#ifndef FILTER_FLATE_DECODE_DISABLED
if (unFilter & STREAM_FILTER_FLATE_DECODE)
return WriteStreamWithDeflate(pStream, pEncrypt);
if (unFilter & STREAM_FILTER_FLATE_DECODE)
return WriteStreamWithDeflate(pStream, pEncrypt);
#endif
BYTE pBuf[STREAM_BUF_SIZ];
BYTE pEBuf[STREAM_BUF_SIZ];
pStream->Seek(0, SeekSet);
for (;;)
if (pEncrypt)
{
unsigned int size = pStream->Size();
BYTE *pBuf = new BYTE[size];
BYTE *pEBuf = new BYTE[size + 32];
pStream->Read(pBuf, &size);
size = pEncrypt->CryptBuf(pBuf, pEBuf, size);
Write(pEBuf, size);
delete []pBuf;
delete []pEBuf;
}
else
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(pBuf, &unSize);
BYTE pBuf[STREAM_BUF_SIZ];
if (0 == unSize)
break;
while(true)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(pBuf, &unSize);
if (pEncrypt)
{
unSize = pEncrypt->CryptBuf(pBuf, pEBuf, unSize, pStream->IsEof());
Write(pEBuf, unSize);
}
else
{
if (0 == unSize)
break;
Write(pBuf, unSize);
}
}
}
}
void CStream::Write(CNullObject* pNull)
{
}
{
}
void CStream::Write(CBoolObject* pBool)
{
if (pBool->Get())
@ -508,8 +551,8 @@ namespace PdfWriter
WriteChar('>');
}
else
{
WriteEscapeText(pString->GetString(), pString->GetLength());
{
WriteEscapeText(pString->GetString(), pString->GetLength(), pString->IsUTF16());
}
}
void CStream::Write(CBinaryObject* pBinary, CEncrypt* pEncrypt)

View File

@ -116,7 +116,7 @@ namespace PdfWriter
void WriteReal (float fValue);
void WriteReal (double dValue);
void WriteEscapeName(const char* sValue);
void WriteEscapeText(const BYTE* sText, unsigned int unLen);
void WriteEscapeText(const BYTE* sText, unsigned int unLen, bool isUTF16 = false);
void WriteBinary(const BYTE* pData, unsigned int unLen, CEncrypt* pEncrypt);
void WriteStream(CStream* pStream, unsigned int unFilter, CEncrypt* pEncrypt);