Compare commits

..

25 Commits

Author SHA1 Message Date
5700503efe fix build converter ios 2017-03-16 12:56:04 +03:00
d01b1e7d41 fix bug 33781 2017-03-15 13:28:49 +03:00
584cc6ab80 fix bug 34297 2017-03-11 18:47:30 +03:00
4b727edde8 . 2017-03-09 16:05:45 +03:00
9d10c4ddce Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop 2017-03-07 12:19:08 +03:00
d5026d014d . 2017-03-06 17:24:29 +03:00
ac0b7e4e22 fix bug 34019 2017-03-06 15:45:43 +03:00
623fe25415 fix 34229 2017-03-06 15:30:54 +03:00
c4c9d50aae fix bug 34222 2017-03-06 14:29:15 +03:00
5d8dda02ec pptx extended reading fix 2017-03-04 16:01:15 +03:00
bc3461147d fix pptx note slide default 2017-03-03 14:29:18 +03:00
80d4e6057b .. 2017-03-03 13:35:37 +03:00
2dc5c2916a .. 2017-03-03 13:28:16 +03:00
5f9631a3c5 .. 2017-03-02 13:14:27 +03:00
ef7df69036 linux build fix 2017-03-01 20:06:37 +03:00
b3961994d2 Pptx .. 2017-03-01 19:40:40 +03:00
927a847607 . 2017-03-01 18:14:33 +03:00
674cc6c1a2 fix doct->docx background page settings 2017-03-01 14:18:35 +03:00
5d77cf9473 add ../ path for dll path 2017-03-01 13:23:11 +03:00
512dad1d24 fix double write attribute in background 2017-02-28 20:02:54 +03:00
3d684934f1 fix ppt background
fix bug 34177
read attributes (from line props, shape props , effects, 3D) without namespace
2017-02-28 19:03:04 +03:00
dd6ac185fb fix - remove tmp pptx folder 2017-02-28 18:27:00 +03:00
9825b6e32e Error writing xlsx (wrong ConditionalFormatting place) 2017-02-27 20:27:31 +03:00
653008ebfc XlsxFormat (graphicFrame) 2017-02-27 18:26:50 +03:00
236e93aa9c add GlobalVariable 2017-02-27 16:46:17 +03:00
103 changed files with 896 additions and 1047 deletions

View File

@ -6526,7 +6526,9 @@ public:
}
int Read_Background(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
m_oFileWriter.m_oSettingWriter.AddSetting(L"<w:displayBackgroundShape/>");
int res = c_oSerConstants::ReadOk;
Background* pBackground = static_cast<Background*>(poResult);
if( c_oSerBackgroundType::Color == type )

View File

@ -166,8 +166,7 @@ std::wstring mediaitems::detectImageFileExtension(std::wstring &fileName)
std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, bool & isInternal, std::wstring & ref)
{
bool isMediaInternal = is_internal(href, odf_packet_);
bool isMediaInternal = true;
std::wstring sub_path = L"media/";
std::wstring inputFileName;
@ -175,10 +174,13 @@ std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, b
{
sub_path = L"charts/";
}
if ( type == typeMsObject || type == typeOleObject)
else if ( type == typeMsObject || type == typeOleObject)
{
sub_path = L"embeddings/";
}
else
isMediaInternal = is_internal(href, odf_packet_);
int number=0;
if ( type == typeChart) number = count_charts + 1;

View File

@ -110,7 +110,7 @@ namespace utils {
{
if (!a_.empty())
{
return boost::lexical_cast<int>(a_.length())-1;
return boost::lexical_cast<int>(a_) - 1;
}
else
return 0;

View File

@ -33,8 +33,10 @@
#include "../utils.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h"
@ -56,6 +58,106 @@ namespace Oox2Odf
{
return (1.0 * emu / (635 * 20.0));
}
void OoxConverter::convert(PPTX::Logic::GraphicFrame *oox_graphic_frame)
{
if (!oox_graphic_frame)return;
////////////////////////////////////////////////////////////////////////////////
odf_context()->drawing_context()->start_drawing();
convert(&oox_graphic_frame->nvGraphicFramePr);
if ( oox_graphic_frame->chartRec.IsInit())
{
convert(oox_graphic_frame->chartRec.GetPointer());
}
else if ( oox_graphic_frame->smartArt.IsInit())
{
OoxConverter::convert(oox_graphic_frame->smartArt.GetPointer());
}
else if ( oox_graphic_frame->pic.IsInit())
{
OoxConverter::convert(oox_graphic_frame->pic.GetPointer());
}
else if ( oox_graphic_frame->table.IsInit())
{
OoxConverter::convert(oox_graphic_frame->table.GetPointer());
}
else if ( oox_graphic_frame->element.IsInit())
{
OoxConverter::convert(oox_graphic_frame->element->GetElem().operator->());
}
odf_context()->drawing_context()->end_drawing();
}
void OoxConverter::convert(PPTX::Logic::NvGraphicFramePr *oox_framePr)
{
if (oox_framePr == NULL) return;
}
void OoxConverter::convert(PPTX::Logic::Table *oox_table)
{
if (oox_table == NULL) return;
}
void OoxConverter::convert(PPTX::Logic::SmartArt *oox_smart_art)
{
if (oox_smart_art == NULL) return;
if (oox_smart_art->id_data.IsInit() == false) return;
oox_smart_art->LoadDrawing();
if (oox_smart_art->m_diag.IsInit())
{
_CP_OPT(double) x, y, width, height, cx, cy;
odf_context()->drawing_context()->get_size (width, height);
odf_context()->drawing_context()->get_position (x, y);
oox_current_child_document = dynamic_cast<OOX::IFileContainer*>(oox_smart_art->m_oCommonRels.operator->());
odf_context()->drawing_context()->start_group();
odf_context()->drawing_context()->set_group_size (width, height, width, height);
odf_context()->drawing_context()->set_group_position (x, y, cx, cy);
convert(oox_smart_art->m_diag.GetPointer());
odf_context()->drawing_context()->end_group();
oox_current_child_document = NULL;
}
}
void OoxConverter::convert(PPTX::Logic::ChartRec *oox_chart)
{
if (!oox_chart) return;
if( !oox_chart->id_data.IsInit()) return;
_CP_OPT(double) width, height;
odf_context()->drawing_context()->get_size (width, height);
smart_ptr<OOX::File> oFile = find_file_by_id (oox_chart->id_data->get());
if (oFile.IsInit())
{
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
if (pChart)
{
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
odf_context()->drawing_context()->start_object(odf_context()->get_next_name_object());
{
odf_context()->start_chart();
odf_context()->chart_context()->set_chart_size(width, height);
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
OoxConverter::convert(&pChart->m_oChartSpace);
odf_context()->end_chart();
}
odf_context()->drawing_context()->end_object();
oox_current_child_document_spreadsheet = NULL;
}
}
}
void OoxConverter::convert(PPTX::Logic::SpTree *oox_shape_tree)
{
if (oox_shape_tree == NULL) return;

View File

@ -311,6 +311,7 @@ namespace PPTX
{
namespace Logic
{
class GraphicFrame;
class SpTree;
class Shape;
class SpPr;
@ -342,6 +343,10 @@ namespace PPTX
class Fld;
class Br;
class MathParaWrapper;
class NvGraphicFramePr;
class Table;
class ChartRec;
class SmartArt;
}
}
@ -427,11 +432,12 @@ public:
void convert(OOX::Drawing::CRun *oox_run);
void convert(OOX::Drawing::CRunProperty *oox_run_pr, cpdoccore::odf_writer::style_text_properties * text_properties);
void convert(OOX::Drawing::CLineSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
//.diagram & pptx................................................................................................................................
void convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
//drawingML & pptx................................................................................................................................
void convert(PPTX::Logic::GraphicFrame *oox_graphicFrame);
void convert(PPTX::Logic::SpTree *oox_shape_tree);
void convert(PPTX::Logic::Shape *oox_shape);
void convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle* oox_sp_style = NULL);
void convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
int convert(PPTX::Logic::PrstTxWarp *oox_text_preset);
void convert(PPTX::Logic::PrstGeom *oox_geom);
void convert(PPTX::Logic::CustGeom *oox_geom);
@ -457,6 +463,10 @@ public:
void convert(PPTX::Logic::Fld *oox_fld);
void convert(PPTX::Logic::Br *oox_br);
void convert(PPTX::Logic::MathParaWrapper *oox_math);
void convert(PPTX::Logic::NvGraphicFramePr *oox_framePr);
void convert(PPTX::Logic::ChartRec *oox_chart);
void convert(PPTX::Logic::SmartArt *oox_smart_art);
void convert(PPTX::Logic::Table *oox_table);
//.chart............................................................................................................................
void convert(OOX::Spreadsheet::CT_ChartSpace *oox_chart);
void convert(OOX::Spreadsheet::CT_Title *ct_title);

View File

@ -64,7 +64,7 @@ XlsxConverter::XlsxConverter(const std::wstring & path, const ProgressCallback*
pCallBack = CallBack;
xlsx_current_drawing = NULL;
xlsx_current_container = NULL;
if (UpdateProgress(400000))return;
}
@ -98,8 +98,8 @@ smart_ptr<OOX::File> XlsxConverter::find_file_by_id(std::wstring sId)
{
smart_ptr<OOX::File> oFile;
if (xlsx_current_drawing)
oFile = xlsx_current_drawing->Find(sId);
if (xlsx_current_container)
oFile = xlsx_current_container->Find(sId);
else if (oox_current_child_document)
oFile = oox_current_child_document->Find(sId);
else if (oox_current_child_document_spreadsheet)
@ -113,9 +113,9 @@ std::wstring XlsxConverter::find_link_by_id (std::wstring sId, int type)
if (type == 1)
{
if (ref.empty() && xlsx_current_drawing)
if (ref.empty() && xlsx_current_container)
{
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(sId);
smart_ptr<OOX::File> oFile = xlsx_current_container->Find(sId);
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Image == oFile->type())
{
OOX::Spreadsheet::Image* pImage = (OOX::Spreadsheet::Image*)oFile.operator->();
@ -1760,20 +1760,21 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCellAnchor *oox_anchor)
{
convert(oox_anchor->m_oConnShape.GetPointer());
}
else if (oox_anchor->m_oGraphicFrame.IsInit())//chart
{
convert(oox_anchor->m_oGraphicFrame.GetPointer());
}
else if (oox_anchor->m_oGroupShape.IsInit())//chart
else if (oox_anchor->m_oGroupShape.IsInit())
{
convert(oox_anchor->m_oGroupShape.GetPointer());
}
}
else if (oox_anchor->m_oGraphicFrame.IsInit())
{
OoxConverter::convert(oox_anchor->m_oGraphicFrame.GetPointer());
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CDrawing *oox_drawing)
{
if (!oox_drawing)return;
xlsx_current_drawing = oox_drawing;
xlsx_current_container = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(oox_drawing);
for (unsigned int dr = 0 ; dr < oox_drawing->m_arrItems.size(); dr++)
{
@ -1782,7 +1783,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CDrawing *oox_drawing)
ods_context->end_drawings();
}
xlsx_current_drawing = NULL;
xlsx_current_container = NULL;
}
@ -1840,11 +1841,6 @@ void XlsxConverter::convert(OOX::Spreadsheet::CGroupShape* oox_group_shape)
OOX::Spreadsheet::CPic* item = static_cast<OOX::Spreadsheet::CPic*>(oox_group_shape->m_arrItems[i]);
convert(item);
}break;
case OOX::Spreadsheet::et_xdr_GraphicFrame:
{
OOX::Spreadsheet::CGraphicFrame* item = static_cast<OOX::Spreadsheet::CGraphicFrame*>(oox_group_shape->m_arrItems[i]);
convert(item);
}break;
}
}
ods_context->drawing_context()->end_group();
@ -1913,64 +1909,6 @@ void XlsxConverter::convert(OOX::Spreadsheet::CShape* oox_shape)
}
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicFrame* oox_graphic_frame)
{
if (!oox_graphic_frame)return;
if (!oox_graphic_frame->m_oGraphic.IsInit()) return;
if (!oox_graphic_frame->m_oGraphic->m_oGraphicData.IsInit()) return;
////////////////////////////////////////////////////////////////////////////////
ods_context->drawing_context()->start_drawing();
if (oox_graphic_frame->m_oNvGraphicFramePr.IsInit())
{
OoxConverter::convert(oox_graphic_frame->m_oNvGraphicFramePr->m_oCNvPr.GetPointer());
}
if ( OOX::Drawing::graphictypeChart == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
{
convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oChart.GetPointer());
}
else if ( OOX::Drawing::graphictypeDiagram == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
{
OoxConverter::convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oDiagrammParts.GetPointer());
}
ods_context->drawing_context()->end_drawing();
}
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicChart *oox_chart)
{
if (!oox_chart) return;
if( !oox_chart->m_oRId.IsInit()) return;
_CP_OPT(double) width, height;
odf_context()->drawing_context()->get_size (width, height);
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(oox_chart->m_oRId->GetValue());
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Charts == oFile->type())
{
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
if (pChart)
{
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
odf_context()->drawing_context()->start_object(ods_context->get_next_name_object());
{
odf_context()->start_chart();
odf_context()->chart_context()->set_chart_size(width, height);
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
OoxConverter::convert(&pChart->m_oChartSpace);
odf_context()->end_chart();
}
odf_context()->drawing_context()->end_object();
oox_current_child_document_spreadsheet = NULL;
}
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
{
if (!oox_shape)return;

View File

@ -144,7 +144,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::WritingElement *oox_unknown);
private:
OOX::Spreadsheet::CXlsx *xlsx_document;
OOX::Spreadsheet::CDrawing *xlsx_current_drawing; //пока сюда .. потом покрасивше, для внешних ссылок
OOX::Spreadsheet::IFileContainer *xlsx_current_container;
odf_writer::ods_conversion_context *ods_context;
@ -199,9 +199,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CPic *oox_picture);
void convert(OOX::Spreadsheet::CShape *oox_shape);
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
void convert(OOX::Spreadsheet::CGraphicFrame *oox_graphic_frame);
void convert(OOX::Spreadsheet::CGroupShape *oox_group_shape);
void convert(OOX::Spreadsheet::CGraphicChart *oox_chart);
void convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_fmt);
void convert(OOX::Spreadsheet::CConditionalFormattingRule *oox_cond_rule);

View File

@ -668,27 +668,27 @@ void NSPresentationEditor::CPPTXWriter::WriteColorScheme(CStringWriter& oStringW
oStringWriter.WriteString(L"<a:dk1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[14].GetLONG_RGB(), L"%06X") + L"\"/></a:dk1>");
oStringWriter.WriteString(L"<a:lt1><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[13].GetLONG_RGB(), L"%06X") + L"\"/></a:lt1>");
oStringWriter.WriteString(L"<a:lt1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[13].GetLONG_RGB(), L"%06X") + L"\"/></a:lt1>");
oStringWriter.WriteString(L"<a:dk2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[16].GetLONG_RGB(), L"%06X") + L"\"/></a:dk2>");
oStringWriter.WriteString(L"<a:dk2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[16].GetLONG_RGB(), L"%06X") + L"\"/></a:dk2>");
oStringWriter.WriteString(L"<a:lt2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[15].GetLONG_RGB(), L"%06X") + L"\"/></a:lt2>");
oStringWriter.WriteString(L"<a:lt2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[15].GetLONG_RGB(), L"%06X") + L"\"/></a:lt2>");
oStringWriter.WriteString(L"<a:accent1><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[5].GetLONG_RGB(), L"%06X") + L"\"/></a:accent1>");
oStringWriter.WriteString(L"<a:accent1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[5].GetLONG_RGB(), L"%06X") + L"\"/></a:accent1>");
oStringWriter.WriteString(L"<a:accent2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[6].GetLONG_RGB(), L"%06X") + L"\"/></a:accent2>");
oStringWriter.WriteString(L"<a:accent2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[6].GetLONG_RGB(), L"%06X") + L"\"/></a:accent2>");
oStringWriter.WriteString(L"<a:accent3><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[7].GetLONG_RGB(), L"%06X") + L"\"/></a:accent3>");
oStringWriter.WriteString(L"<a:accent3><a:srgbClr val=\"" + XmlUtils::IntToString(colors[7].GetLONG_RGB(), L"%06X") + L"\"/></a:accent3>");
oStringWriter.WriteString(L"<a:accent4><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[8].GetLONG_RGB(), L"%06X") + L"\"/></a:accent4>");
oStringWriter.WriteString(L"<a:accent4><a:srgbClr val=\"" + XmlUtils::IntToString(colors[8].GetLONG_RGB(), L"%06X") + L"\"/></a:accent4>");
oStringWriter.WriteString(L"<a:accent5><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[9].GetLONG_RGB(), L"%06X") + L"\"/></a:accent5>");
oStringWriter.WriteString(L"<a:accent5><a:srgbClr val=\"" + XmlUtils::IntToString(colors[9].GetLONG_RGB(), L"%06X") + L"\"/></a:accent5>");
oStringWriter.WriteString(L"<a:accent6><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[10].GetLONG_RGB(), L"%06X") + L"\"/></a:accent6>");
oStringWriter.WriteString(L"<a:accent6><a:srgbClr val=\"" + XmlUtils::IntToString(colors[10].GetLONG_RGB(), L"%06X") + L"\"/></a:accent6>");
oStringWriter.WriteString(L"<a:hlink><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[11].GetLONG_RGB(), L"%06X") + L"\"/></a:hlink>");
oStringWriter.WriteString(L"<a:hlink><a:srgbClr val=\"" + XmlUtils::IntToString(colors[11].GetLONG_RGB(), L"%06X") + L"\"/></a:hlink>");
oStringWriter.WriteString(L"<a:folHlink><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[12].GetLONG_RGB(), L"%06X") + L"\"/></a:folHlink>");
oStringWriter.WriteString(L"<a:folHlink><a:srgbClr val=\"" + XmlUtils::IntToString(colors[12].GetLONG_RGB(), L"%06X") + L"\"/></a:folHlink>");
oStringWriter.WriteString(L"</a:clrScheme>");
if (extra)

View File

@ -2962,12 +2962,10 @@ void CDrawingConverter::doc_LoadGroup(PPTX::Logic::SpTreeElem *result, XmlUtils:
{
if (!result) return;
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree();
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree(L"wp");
if (bIsTop)
pTree->m_name = L"wpg:wgp";
else
pTree->m_name = L"wpg:grpSp";
if (bIsTop) pTree->m_lGroupIndex = 0;
else pTree->m_lGroupIndex = 1;
XmlUtils::CXmlNodes oNodes;
if (oNode.GetNodes(L"*", oNodes))
@ -4841,6 +4839,8 @@ HRESULT CDrawingConverter::SaveObjectEx(LONG lStart, LONG lLength, const std::ws
}
std::wstring CDrawingConverter::SaveObjectBackground(LONG lStart, LONG lLength)
{
if (lLength < 1) return L"";
m_pReader->Seek(lStart);
++m_nCurrentIndexObject;

View File

@ -1066,7 +1066,7 @@ namespace NSBinPptxRW
xfrm->chOffY = 0;
xfrm->chExtX = 0;
xfrm->chExtY = 0;
m_oDefaultNote.cSld.spTree.m_name = _T("p:spTree");
m_oDefaultNote.cSld.spTree.grpSpPr.xfrm = xfrm;
// shape comment !!! (TODO:)
@ -1090,6 +1090,11 @@ namespace NSBinPptxRW
pTxRun->SetText(_T("")); // enter simple comment here
pShape->txBody = pTxBody;
if (pShape->txBody.IsInit())
{
if (!pShape->txBody->bodyPr.IsInit())
pShape->txBody->bodyPr = new PPTX::Logic::BodyPr;
}
PPTX::Logic::RunElem elm;
pTxBody->Paragrs[0].RunElems.push_back(elm);

View File

@ -110,6 +110,8 @@ namespace PPTX
OOX::CPath FileContainer::CorrectPathRels(const OOX::CPath& path, OOX::Rels::CRelationShip* relation )
{
if (relation->IsExternal()) return relation->Target();
OOX::CPath filename = path / relation->Target();
if ( NSFile::CFileBinary::Exists(filename.GetPath()) == true ) return filename;

View File

@ -88,7 +88,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader, nullable_int & x, nullable_int & y, nullable_int & z )
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("x"), x)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("y"), y)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("z"), z)

View File

@ -59,7 +59,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w"), w)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("h"), h)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("prst"), prst)

View File

@ -75,9 +75,9 @@ namespace PPTX
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring strName = oReader.GetName();
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
if (strName == L"a:graphicFrameLocks")
if (strName == L"graphicFrameLocks")
{
ReadAttributesLocks(oReader);
}
@ -98,37 +98,37 @@ namespace PPTX
{
m_namespace = XmlUtils::GetNamespace(node.GetName());
XmlUtils::CXmlNode oNode;
if (node.GetNode(_T("a:graphicFrameLocks"), oNode))
XmlUtils::CXmlNode oNode = node.ReadNodeNoNS(L"graphicFrameLocks");
if (oNode.IsValid())
{
oNode.ReadAttributeBase(L"noChangeAspect", noChangeAspect);
oNode.ReadAttributeBase(L"noDrilldown", noDrilldown);
oNode.ReadAttributeBase(L"noGrp", noGrp);
oNode.ReadAttributeBase(L"noMove", noMove);
oNode.ReadAttributeBase(L"noResize", noResize);
oNode.ReadAttributeBase(L"noSelect", noSelect);
oNode.ReadAttributeBase(L"noChangeAspect", noChangeAspect);
oNode.ReadAttributeBase(L"noDrilldown", noDrilldown);
oNode.ReadAttributeBase(L"noGrp", noGrp);
oNode.ReadAttributeBase(L"noMove", noMove);
oNode.ReadAttributeBase(L"noResize", noResize);
oNode.ReadAttributeBase(L"noSelect", noSelect);
}
}
virtual std::wstring toXML() const
{
XmlUtils::CAttribute oAttr;
oAttr.Write(_T("noChangeAspect"), noChangeAspect);
oAttr.Write(_T("noDrilldown"), noDrilldown);
oAttr.Write(_T("noGrp"), noGrp);
oAttr.Write(_T("noMove"), noMove);
oAttr.Write(_T("noResize"), noResize);
oAttr.Write(_T("noSelect"), noSelect);
oAttr.Write(_T("noChangeAspect"), noChangeAspect);
oAttr.Write(_T("noDrilldown"), noDrilldown);
oAttr.Write(_T("noGrp"), noGrp);
oAttr.Write(_T("noMove"), noMove);
oAttr.Write(_T("noResize"), noResize);
oAttr.Write(_T("noSelect"), noSelect);
return XmlUtils::CreateNode(m_namespace + L":cNvGraphicFramePr>", XmlUtils::CreateNode(_T("a:graphicFrameLocks"), oAttr));
return XmlUtils::CreateNode(m_namespace + L":cNvGraphicFramePr", oAttr.m_strValue.empty() ? L"" : XmlUtils::CreateNode(L"a:graphicFrameLocks", oAttr));
}
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
namespace_ = L"xdr";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"wp";
pWriter->StartNode(namespace_ + L":cNvGraphicFramePr");

View File

@ -94,7 +94,7 @@ namespace PPTX
{
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
if (_T("a:picLocks") == strName)
if (_T("picLocks") == strName)
{
ReadAttributesLocks(oReader);
}

View File

@ -105,38 +105,39 @@ namespace PPTX
Normalize();
}
virtual std::wstring toXML() const
std::wstring toXML2(std::wstring node_name) const
{
XmlUtils::CAttribute oAttr;
oAttr.Write(_T("id"), id);
oAttr.Write(_T("name"), name);
oAttr.Write(_T("descr"), descr);
oAttr.Write(_T("hidden"), hidden);
oAttr.Write(_T("title"), title);
oAttr.Write(_T("id"), id);
oAttr.Write(_T("name"), XmlUtils::EncodeXmlString(name));
if (descr.IsInit()) oAttr.Write(_T("descr"), XmlUtils::EncodeXmlString(descr.get()));
oAttr.Write(_T("hidden"), hidden);
if (title.IsInit()) oAttr.Write(_T("title"), XmlUtils::EncodeXmlString(title.get()));
XmlUtils::CNodeValue oValue;
oValue.WriteNullable(hlinkClick);
oValue.WriteNullable(hlinkHover);
return XmlUtils::CreateNode(m_namespace + L":cNvPr", oAttr, oValue);
return XmlUtils::CreateNode(node_name.empty() ? (m_namespace + L":cNvPr") : node_name, oAttr, oValue);
}
virtual std::wstring toXML() const
{
return toXML2(L"");
}
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
namespace_= _T("pic");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
namespace_= _T("xdr");
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_= _T("pic");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_= _T("xdr");
toXmlWriter2(namespace_, pWriter);
}
void toXmlWriter2(const std::wstring& strNS, NSBinPptxRW::CXmlWriter* pWriter) const
{
//if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX && id == -1)
// return;
pWriter->StartNode(strNS + _T(":cNvPr"));
int _id = id;
@ -154,11 +155,11 @@ namespace PPTX
}
pWriter->StartAttributes();
pWriter->WriteAttribute (_T("id"), _id);
pWriter->WriteAttribute2(_T("name"), name);
pWriter->WriteAttribute2(_T("descr"), descr);
pWriter->WriteAttribute (_T("hidden"), hidden);
pWriter->WriteAttribute (_T("title"), title);
pWriter->WriteAttribute (_T("id"), _id);
pWriter->WriteAttribute (_T("name"), XmlUtils::EncodeXmlString(name));
if (descr.IsInit()) pWriter->WriteAttribute (_T("descr"), XmlUtils::EncodeXmlString(descr.get()));
pWriter->WriteAttribute (_T("hidden"), hidden);
if (title.IsInit()) pWriter->WriteAttribute (_T("title"), XmlUtils::EncodeXmlString(title.get()));
pWriter->EndAttributes();

View File

@ -46,7 +46,10 @@ namespace PPTX
{
public:
WritingElement_AdditionConstructors(CSld)
PPTX_LOGIC_BASE2(CSld)
CSld() : spTree(L"p")
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
@ -149,7 +152,6 @@ namespace PPTX
}
case 1:
{
spTree.m_name = _T("p:spTree");
spTree.fromPPTY(pReader);
break;
}
@ -164,7 +166,6 @@ namespace PPTX
pReader->Seek(_end_rec);
}
public:
nullable_string attrName;
nullable<Bg> bg;

View File

@ -74,7 +74,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("prst"), prst)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("fov"), fov)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoom"), zoom)

View File

@ -170,7 +170,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("val"), val)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -82,6 +82,9 @@ namespace PPTX
if (sName == L"a:avLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -97,6 +100,9 @@ namespace PPTX
}
else if (sName == L"a:gdLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -114,6 +120,9 @@ namespace PPTX
rect = oReader;
else if (sName == L"a:pathLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -129,6 +138,9 @@ namespace PPTX
}
else if (sName == L"a:ahLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -150,6 +162,9 @@ namespace PPTX
}
else if (sName == L"a:cxnLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{

View File

@ -144,7 +144,7 @@ namespace PPTX
public:
std::wstring GetODString()const
{
return _T("<cxn ang=\"") + ang + _T("\"><pos x=\"") + x + _T("\" y=\"") + y + _T("\" /></cxn>");
return _T("<cxn ang=\"") + ang + _T("\"><pos x=\"") + x + _T("\" y=\"") + y + _T("\"/></cxn>");
}
};
} // namespace Logic

View File

@ -57,7 +57,7 @@ namespace PPTX
virtual OOX::EElementType getType () const
{
return OOX::et_x_cxnSp;
return OOX::et_cxnSp;
}
virtual void fromXML(XmlUtils::CXmlNode& node);

View File

@ -46,7 +46,11 @@ namespace PPTX
class DefaultShapeDefinition : public WrapperWritingElement
{
public:
PPTX_LOGIC_BASE(DefaultShapeDefinition)
WritingElement_AdditionConstructors(DefaultShapeDefinition)
DefaultShapeDefinition()
{
}
DefaultShapeDefinition& operator=(const DefaultShapeDefinition& oSrc)
{
@ -61,11 +65,32 @@ namespace PPTX
return *this;
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
m_name = XmlUtils::GetNameNoNS(oReader.GetName());
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
if (_T("spPr") == strName)
spPr.fromXML(oReader);
else if (_T("bodyPr") == strName)
bodyPr = oReader;
else if (_T("lstStyle") == strName)
lstStyle.fromXML(oReader);
else if (_T("style") == strName)
style = oReader;
}
}
public:
virtual void fromXML(XmlUtils::CXmlNode& node)
{
m_name = XmlUtils::GetNameNoNS(node.GetName());
m_name = XmlUtils::GetNameNoNS(node.GetName());
XmlUtils::CXmlNodes oNodes;
if (node.GetNodes(_T("*"), oNodes))

View File

@ -67,7 +67,7 @@ namespace PPTX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_Start_No_NS ( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"name", name)
WritingElement_ReadAttributes_Read_else_if( oReader, L"type", type)
WritingElement_ReadAttributes_End ( oReader )

View File

@ -63,8 +63,6 @@ namespace PPTX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_End ( oReader )
}
virtual void fromXML(XmlUtils::CXmlNode& node);

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("thresh"), thresh)
WritingElement_ReadAttributes_End( oReader )

View File

@ -64,7 +64,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("amt"), amt)
WritingElement_ReadAttributes_End( oReader )

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -64,7 +64,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("a"), a)
WritingElement_ReadAttributes_End( oReader )

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("thresh"), thresh)
WritingElement_ReadAttributes_End( oReader )

View File

@ -79,7 +79,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("blend"), blend)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -66,7 +66,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("grow"), grow)
WritingElement_ReadAttributes_End( oReader )

View File

@ -81,7 +81,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("useA"), useA)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("ref"), ref)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -81,7 +81,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("blend"), blend)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -77,7 +77,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
WritingElement_ReadAttributes_End( oReader )

View File

@ -66,7 +66,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("hue"), hue)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("sat"), sat)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("lum"), lum)

View File

@ -80,7 +80,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("blurRad"), blurRad)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dir"), dir)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dist"), dist)

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("bright"), bright)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("contrast"), contrast)
WritingElement_ReadAttributes_End( oReader )

View File

@ -89,7 +89,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("blurRad"), blurRad)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dir"), dir)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dist"), dist)

View File

@ -84,7 +84,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("prst"), prst)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dir"), dir)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dist"), dist)

View File

@ -79,7 +79,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("blurRad"), blurRad)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("dir"), dir)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("fadeDir"), fadeDir)

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("tx"), tx)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("ty"), ty)
WritingElement_ReadAttributes_End( oReader )

View File

@ -64,7 +64,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("rad"), rad)
WritingElement_ReadAttributes_End( oReader )
}

View File

@ -65,7 +65,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("amt"), amt)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("hue"), hue)
WritingElement_ReadAttributes_End( oReader )

View File

@ -70,7 +70,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("kx"), kx)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("ky"), ky)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("sx"), sx)

View File

@ -35,16 +35,35 @@
#include "./../WrapperWritingElement.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/RId.h"
/*
<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId2">
<p14:trim st="93333.0816" end="96583.4816"/>
</p14:media>
</p:ext>
*/
//<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
//<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId2">
//<p14:trim st="93333.0816" end="96583.4816"/>
//</p14:media>
//</p:ext>
//<ext uri="{05C60535-1F16-4fd2-B633-F4F36F0B64E0}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main">
// <x14:sparklineGroups xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main">
// <x14:sparklineGroup displayEmptyCellsAs="gap">
// <x14:colorSeries theme="5" tint="-0.499984740745262"/>
// <x14:colorNegative theme="6"/>
// <x14:colorAxis rgb="FF000000"/>
// <x14:colorMarkers theme="5" tint="-0.499984740745262"/>
// <x14:colorFirst theme="5" tint="0.39997558519241921"/>
// <x14:colorLast theme="5" tint="0.39997558519241921"/>
// <x14:colorHigh theme="5"/>
// <x14:colorLow theme="5"/>
// <x14:sparklines>
// <x14:sparkline>
// <xm:f>Лист1!D10:D12</xm:f>
// <xm:sqref>H12</xm:sqref>
// </x14:sparkline>
// </x14:sparklines>
// </x14:sparklineGroup>
// </x14:sparklineGroups>
//</ext>
namespace PPTX
{
namespace Logic

View File

@ -84,25 +84,13 @@ namespace PPTX
{
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
if (_T("blip") == strName)
{
if (!blip.IsInit())
blip = oReader;
}
blip = oReader;
else if (_T("srcRect") == strName)
{
if (!srcRect.IsInit())
srcRect = oReader;
}
srcRect = oReader;
else if (_T("tile") == strName)
{
if (!tile.IsInit())
tile = oReader;
}
tile = oReader;
else if (_T("stretch") == strName)
{
if (!stretch.IsInit())
stretch = oReader;
}
stretch = oReader;
}
}
virtual OOX::EElementType getType () const
@ -111,7 +99,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_Start_No_NS ( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("dpi"), dpi)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("rotWithShape"), rotWithShape )
WritingElement_ReadAttributes_End ( oReader )

View File

@ -98,6 +98,9 @@ namespace PPTX
tileRect = oReader;
else if (_T("gsLst") == strName)
{
if ( oReader.IsEmptyNode() )
continue;
int nCurDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth1 ) )
{

View File

@ -67,8 +67,6 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_End ( oReader )
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
@ -123,8 +121,6 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_End ( oReader )
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{

View File

@ -86,7 +86,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_Start_No_NS ( oReader )
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("prst"), prst )
WritingElement_ReadAttributes_End ( oReader )
}

View File

@ -73,7 +73,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("algn"), algn )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("flip"), flip )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("sx"), sx )

View File

@ -46,7 +46,9 @@ namespace PPTX
{
public:
WritingElement_AdditionConstructors(Geometry)
PPTX_LOGIC_BASE2(Geometry)
Geometry()
{
}
virtual OOX::EElementType getType() const
{

View File

@ -43,8 +43,9 @@ namespace PPTX
{
namespace Logic
{
GraphicFrame::GraphicFrame()
GraphicFrame::GraphicFrame(std::wstring ns) : nvGraphicFramePr(ns)
{
m_namespace = ns;
}
GraphicFrame::~GraphicFrame()
@ -73,6 +74,8 @@ namespace PPTX
}
void GraphicFrame::fromXML(XmlUtils::CXmlLiteReader& oReader)
{
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
if ( oReader.IsEmptyNode() )
return;
@ -92,7 +95,7 @@ namespace PPTX
}
void GraphicFrame::fromXML2(XmlUtils::CXmlLiteReader& oReader)
{
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
std::wstring strNamespace = XmlUtils::GetNamespace(oReader.GetName());
if (L"xfrm" == strName && strNamespace != L"xdr")
@ -197,6 +200,8 @@ namespace PPTX
void GraphicFrame::fromXML(XmlUtils::CXmlNode& node)
{
m_namespace = XmlUtils::GetNamespace(node.GetName());
XmlUtils::CXmlNodes oNodes;
if (node.GetNodes(L"*", oNodes))
{
@ -289,38 +294,20 @@ namespace PPTX
FillParentPointersForChilds();
}
void GraphicFrame::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
void GraphicFrame::toXmlWriter2(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring strNS = L"";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX && pWriter->m_lGroupIndex >= 0)
{
pWriter->StartNode(L"wpg:graphicFrame");
strNS = L"wpg";
}
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX && pWriter->m_lGroupIndex >= 0)
{
pWriter->StartNode(L"xdr:graphicFrame");
strNS = L"xdr";
}
else
{
pWriter->StartNode(L"p:graphicFrame");
}
pWriter->EndAttributes();
nvGraphicFramePr.toXmlWriter(pWriter);
if (xfrm.IsInit())
if (xfrm.IsInit() && pWriter->m_lDocType != XMLWRITER_DOC_TYPE_DOCX)
{
if (strNS.empty())
xfrm->toXmlWriter(pWriter);
else
xfrm->toXmlWriter2(strNS, pWriter);
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX && pWriter->m_lGroupIndex >= 0) namespace_ = L"xdr";
xfrm->m_ns = namespace_;
xfrm->toXmlWriter(pWriter);
}
if (table.is_init())
if (table.is_init())
{
pWriter->WriteString (L"<a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/table\">");
table->toXmlWriter (pWriter);
@ -332,13 +319,21 @@ namespace PPTX
chartRec->toXmlWriter(pWriter);
pWriter->WriteString(L"</a:graphicData></a:graphic>");
}
}
void GraphicFrame::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX && pWriter->m_lGroupIndex >= 0) namespace_ = L"wpg";
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX && pWriter->m_lGroupIndex >= 0) namespace_ = L"xdr";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX && pWriter->m_lGroupIndex >= 0)
pWriter->EndNode(L"wpg:graphicFrame");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX && pWriter->m_lGroupIndex >= 0)
pWriter->EndNode(L"xdr:graphicFrame");
else
pWriter->EndNode(L"p:graphicFrame");
pWriter->StartNode(namespace_ + L":graphicFrame");
pWriter->EndAttributes();
toXmlWriter2(pWriter);
pWriter->EndNode(namespace_ + L":graphicFrame");
}
void GraphicFrame::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
@ -519,6 +514,9 @@ namespace PPTX
}
pReader->Seek(_end_rec);
if (!xfrm.IsInit())
xfrm = new Logic::Xfrm();
}
void GraphicFrame::GetRect(Aggplus::RECT& pRect)const
@ -535,30 +533,43 @@ namespace PPTX
parentAs<Logic::SpTree>().NormalizeRect(pRect);
}
std::wstring GraphicFrame::toXML2() const
{
std::wstring sXml;
sXml += nvGraphicFramePr.toXML();
if (xfrm.IsInit() && m_namespace != L"wp")
{
sXml += xfrm->toXML();
}
if (table.IsInit())
{
sXml += L"<a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/table\">";
sXml += table->toXML();
sXml += L"</a:graphicData></a:graphic>";
}
else if (chartRec.IsInit())
{
sXml += L"<a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\">";
sXml += chartRec->toXML();
sXml += L"</a:graphicData></a:graphic>";
}
return sXml;
}
std::wstring GraphicFrame::toXML() const
{
//XML::XNode node;
//if(dm.is_init())
//{
// return XML::XElement(ns.p + "graphicFrame",
// XML::Write(nvGraphicFramePr) +
// XML::Write(xfrm) +
// XML::XElement(ns.a + "graphic",
// XML::XElement(ns.a + "graphicData", //Возможно, здесь надо добавить ури
// XML::XElement(ns.dgm + "relIds",
// XML::XNamespace(ns.dgm) +
// XML::XNamespace(ns.r) +
// XML::XAttribute(ns.r + "dm", dm) +
// XML::XAttribute(ns.r + "lo", lo) +
// XML::XAttribute(ns.r + "qs", qs) +
// XML::XAttribute(ns.r + "cs", cs)
// )
// )
// )
// );
//}
//return node;
return L"";
std::wstring sXml;
sXml += L"<" + m_namespace + L":graphicFrame macro=\"\">";
sXml += toXML2();
sXml += L"</" + m_namespace + L":graphicFrame>";
sXml += L"<" + m_namespace + L":clientData/>";
return sXml;
}
void GraphicFrame::FillParentPointersForChilds()
@ -576,19 +587,6 @@ namespace PPTX
if (pic.is_init())
pic->SetParentPointer(this);
}
//OOX::CPath GraphicFrame::GetPathBySpid()const
//{
// OOX::CPath filename;
// if(parentFileIs<PPTX::Slide>())
// filename = parentFileAs<PPTX::Slide>().GetPathBySpid(spid.get_value_or(_T("")));
// else if(parentFileIs<PPTX::SlideLayout>())
// filename = parentFileAs<PPTX::SlideLayout>().GetPathBySpid(spid.get_value_or(_T("")));
// else if(parentFileIs<PPTX::SlideMaster>())
// filename = parentFileAs<PPTX::SlideMaster>().GetPathBySpid(spid.get_value_or(_T("")));
// return filename;
//}
std::wstring GraphicFrame::GetVmlXmlBySpid(std::wstring & rels)const
{
std::wstring xml;

View File

@ -49,12 +49,12 @@ namespace PPTX
class GraphicFrame : public WrapperWritingElement
{
public:
GraphicFrame();
GraphicFrame(std::wstring ns = L"p");
virtual ~GraphicFrame();
virtual OOX::EElementType getType () const
{
return OOX::et_a_graphicFrame;
return OOX::et_graphicFrame;
}
explicit GraphicFrame(XmlUtils::CXmlLiteReader& oReader);
const GraphicFrame& operator =(XmlUtils::CXmlLiteReader& oReader);
@ -70,13 +70,18 @@ namespace PPTX
void ReadAttributes3(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual void GetRect(Aggplus::RECT& pRect)const;
std::wstring toXML2() const;
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
void toXmlWriter2(NSBinPptxRW::CXmlWriter* pWriter) const;
virtual void GetRect(Aggplus::RECT& pRect)const;
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
std::wstring m_namespace;
NvGraphicFramePr nvGraphicFramePr;
nullable<Xfrm> xfrm;

View File

@ -50,8 +50,9 @@ namespace PPTX
public:
WritingElement_AdditionConstructors(GrpSpPr)
GrpSpPr()
GrpSpPr(std::wstring ns = L"p")
{
m_namespace = ns;
}
GrpSpPr& operator=(const GrpSpPr& oSrc)
{
@ -71,9 +72,48 @@ namespace PPTX
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"xfrm" == sName)
xfrm = oReader;
else if ( L"blipFill" == sName ||
L"gradFill" == sName ||
L"grpFill" == sName ||
L"noFill" == sName ||
L"pattFill" == sName ||
L"solidFill" == sName )
{
Fill.fromXML(oReader);
}
else if ( L"effectDag" == sName ||
L"effectLst" == sName ||
L"extLst" == sName )
{
EffectList.fromXML(oReader);
}
}
FillParentPointersForChilds();
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("bwMode"), bwMode )
WritingElement_ReadAttributes_End( oReader )
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
m_namespace = XmlUtils::GetNamespace(node.GetName());
node.ReadAttributeBase(L"bwMode", bwMode);
XmlUtils::CXmlNodes oNodes;
@ -117,17 +157,16 @@ namespace PPTX
oValue.Write(EffectList);
oValue.WriteNullable(scene3d);
return XmlUtils::CreateNode(_T("p:grpSpPr"), oAttr, oValue);
return XmlUtils::CreateNode(m_namespace + L":grpSpPr", oAttr, oValue);
}
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
pWriter->StartNode(_T("wpg:grpSpPr"));
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
pWriter->StartNode(_T("xdr:grpSpPr"));
else
pWriter->StartNode(_T("p:grpSpPr"));
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"wpg";
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
pWriter->StartNode(namespace_ + L":grpSpPr");
pWriter->StartAttributes();
pWriter->WriteAttribute(_T("bwMode"), bwMode);
@ -138,12 +177,7 @@ namespace PPTX
EffectList.toXmlWriter(pWriter);
pWriter->Write(scene3d);
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
pWriter->EndNode(_T("wpg:grpSpPr"));
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
pWriter->EndNode(_T("xdr:grpSpPr"));
else
pWriter->EndNode(_T("p:grpSpPr"));
pWriter->EndNode(namespace_ + L":grpSpPr");
}
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
@ -215,8 +249,9 @@ namespace PPTX
pReader->Seek(_end_rec);
}
std::wstring m_namespace;
public:
nullable<Xfrm> xfrm;
UniFill Fill;
EffectProperties EffectList;
@ -226,12 +261,11 @@ namespace PPTX
protected:
virtual void FillParentPointersForChilds()
{
if(xfrm.IsInit())
xfrm->SetParentPointer(this);
Fill.SetParentPointer(this);
EffectList.SetParentPointer(this);
if(scene3d.IsInit())
scene3d->SetParentPointer(this);
if(xfrm.IsInit()) xfrm->SetParentPointer(this);
if(scene3d.IsInit()) scene3d->SetParentPointer(this);
}
};
} // namespace Logic

View File

@ -75,7 +75,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("dir"), dir)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rig"), rig)
WritingElement_ReadAttributes_End( oReader )

View File

@ -56,7 +56,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_Start_No_NS ( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("ang"), ang)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("scaled"), scaled)
WritingElement_ReadAttributes_End ( oReader )

View File

@ -37,6 +37,8 @@
#include "./../Limit/PenAlign.h"
#include "./../Limit/LineCap.h"
#include "./../Limit/CompoundLine.h"
#include "EffectProperties.h"
#include "UniFill.h"
#include "PrstDash.h"
#include "LineEnd.h"
@ -50,7 +52,9 @@ namespace PPTX
{
public:
WritingElement_AdditionConstructors(Ln)
PPTX_LOGIC_BASE2(Ln)
Ln()
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
@ -95,8 +99,8 @@ namespace PPTX
prstDash = oReader;
//m_eDashType = OOX::Drawing::linedashtypePreset;
}
//else if ( _T("a:extLst") == sName )
// extLst = oReader;
else if ( _T("a:extLst") == sName )
Effects.fromXML(oReader);
}
FillParentPointersForChilds();
}
@ -342,15 +346,15 @@ namespace PPTX
public:
// OOX::Drawing::ELineDashType m_eDashType; // Тип штриха
EffectProperties Effects;
UniFill Fill;
nullable<PrstDash> prstDash;
//custDash (Custom Dash) ยง20.1.8.21
LineJoin Join;
nullable<LineEnd> headEnd;
nullable<LineEnd> tailEnd;
// nullable<ExtLst> extLst;
nullable_limit<Limit::PenAlign> algn;
nullable_limit<Limit::LineCap> cap;
nullable_limit<Limit::CompoundLine> cmpd;

View File

@ -48,7 +48,7 @@ namespace PPTX
public:
WritingElement_AdditionConstructors(NvGraphicFramePr)
NvGraphicFramePr(std::wstring ns = L"p")
NvGraphicFramePr(std::wstring ns = L"p") : cNvPr(ns), cNvGraphicFramePr(ns), nvPr(ns)
{
m_namespace = ns;
}
@ -70,9 +70,9 @@ namespace PPTX
{
m_namespace = XmlUtils::GetNamespace(node.GetName());
cNvPr = node.ReadNode(_T("p:cNvPr"));
cNvGraphicFramePr = node.ReadNode(_T("p:cNvGraphicFramePr"));
nvPr = node.ReadNode(_T("p:nvPr"));
cNvPr = node.ReadNodeNoNS(_T("cNvPr"));
cNvGraphicFramePr = node.ReadNodeNoNS(_T("cNvGraphicFramePr"));
nvPr = node.ReadNodeNoNS(_T("nvPr"));
FillParentPointersForChilds();
}
@ -178,6 +178,7 @@ namespace PPTX
pReader->Seek(_end_rec);
}
std::wstring m_namespace;
CNvPr cNvPr;

View File

@ -48,9 +48,9 @@ namespace PPTX
public:
WritingElement_AdditionConstructors(NvGrpSpPr)
NvGrpSpPr()
NvGrpSpPr(std::wstring ns = L"p")
{
m_namespace = L"p";
m_namespace = ns;
}
NvGrpSpPr& operator=(const NvGrpSpPr& oSrc)
@ -76,7 +76,9 @@ namespace PPTX
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"wpg";
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
pWriter->StartNode(namespace_ + L":nvGrpSpPr");
@ -132,7 +134,7 @@ namespace PPTX
pReader->Seek(_end_rec);
}
std::wstring m_namespace;
std::wstring m_namespace;
CNvPr cNvPr;
CNvGrpSpPr cNvGrpSpPr;

View File

@ -46,8 +46,9 @@ namespace PPTX
public:
WritingElement_AdditionConstructors(NvPr)
NvPr()
NvPr(std::wstring ns = L"p")
{
m_namespace = ns;
}
NvPr& operator=(const NvPr& oSrc)
{
@ -79,6 +80,9 @@ namespace PPTX
ph = oReader;
else if (strName == L"extLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -107,12 +111,12 @@ namespace PPTX
node.ReadAttributeBase(L"isPhoto", isPhoto);
node.ReadAttributeBase(L"userDrawn", userDrawn);
ph = node.ReadNode(_T("p:ph"));
ph = node.ReadNodeNoNS(_T("ph"));
media.GetMediaFrom(node);
XmlUtils::CXmlNode list;
if (node.GetNode(_T("p:extLst"), list))
{
XmlUtils::CXmlNode list = node.ReadNodeNoNS(_T("extLst"));
if (list.IsValid())
{
XmlUtils::CXmlNodes oNodes;
if (list.GetNodes(_T("*"), oNodes))
{
@ -144,13 +148,9 @@ namespace PPTX
}
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring namespace_;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
namespace_= _T("pic");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
namespace_= _T("xdr");
else
namespace_= _T("p");
std::wstring namespace_ = m_namespace;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_= _T("pic");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_= _T("xdr");
toXmlWriter2(namespace_, pWriter);
}

View File

@ -138,6 +138,9 @@ namespace PPTX
RunElems.push_back(RunElem(oReader));
else if (_T("AlternateContent") == strName)
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{

View File

@ -134,11 +134,11 @@ namespace PPTX
virtual std::wstring GetODString()const
{
std::wstring str = L"<a:pt x=\"" + x + L"\" y=\"" + y + L"\" />";
return _T("<lnTo>") + str + _T("</lnTo>");
std::wstring str = L"<pt x=\"" + x + L"\" y=\"" + y + L"\" />";
return _T("<lnTo>") + str + _T("</lnTo>");
}
};
} // namespace Logic
} // namespace PPTX
#endif // PPTX_LOGIC_LINETO_INCLUDE_H_
#endif // PPTX_LOGIC_LINETO_INCLUDE_H_

View File

@ -132,7 +132,7 @@ namespace PPTX
public:
virtual std::wstring GetODString()const
{
std::wstring str = L"<a:pt x=\"" + x + L"\" y=\"" + y + L"\" />";
std::wstring str = L"<pt x=\"" + x + L"\" y=\"" + y + L"\" />";
return _T("<moveTo>") + str + _T("</moveTo>");
}
};

View File

@ -161,8 +161,8 @@ namespace PPTX
virtual std::wstring GetODString()const
{
std::wstring str1 = L"<a:pt x=\"" + x[0] + L"\" y=\"" + y[0] + L"\" />";
std::wstring str2 = L"<a:pt x=\"" + x[1] + L"\" y=\"" + y[1] + L"\" />";
std::wstring str1 = L"<pt x=\"" + x[0] + L"\" y=\"" + y[0] + L"\" />";
std::wstring str2 = L"<pt x=\"" + x[1] + L"\" y=\"" + y[1] + L"\" />";
return _T("<quadBezTo>") + str1 + str2 + _T("</quadBezTo>");
}
@ -170,4 +170,4 @@ namespace PPTX
} // namespace Logic
} // namespace PPTX
#endif // PPTX_LOGIC_QUADBEZTO_INCLUDE_H_
#endif // PPTX_LOGIC_QUADBEZTO_INCLUDE_H_

View File

@ -220,7 +220,7 @@ namespace PPTX
virtual OOX::EElementType getType () const
{
return OOX::et_x_pic;
return OOX::et_pic;
}
explicit Pic(XmlUtils::CXmlNode& node);

View File

@ -75,6 +75,9 @@ namespace PPTX
if (sName == L"a:avLst")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{
@ -95,7 +98,7 @@ namespace PPTX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("r:prst"), prst)
WritingElement_ReadAttributes_ReadSingle( oReader, _T("prst"), prst)
WritingElement_ReadAttributes_End( oReader )
}
virtual void fromXML(XmlUtils::CXmlNode& node)

View File

@ -75,6 +75,9 @@ namespace PPTX
if (_T("a:avLst") == strName)
{
if ( oReader.IsEmptyNode() )
continue;
int nCurDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth1 ) )
{

View File

@ -56,7 +56,7 @@ namespace PPTX
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("t"), t )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("l"), l )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("r"), r )

View File

@ -58,7 +58,7 @@ namespace PPTX
{
nullable_int lat_, lon_, rev_;
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Start_No_NS( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lat"), lat_)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lon"), lon_)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rev"), rev_)

View File

@ -113,12 +113,14 @@ namespace PPTX
virtual bool is_init() const {return (Elem.IsInit());};
virtual std::wstring GetText() const{return Elem->GetText();}
smart_ptr<RunBase> GetElem()
{
return Elem;
}
template<class T> AVSINLINE const bool is() const { return Elem.is<T>(); }
template<class T> AVSINLINE T& as() { return Elem.as<T>(); }
template<class T> AVSINLINE const T& as() const { return Elem.as<T>(); }
//public:
private:
smart_ptr<RunBase> Elem;
protected:

View File

@ -177,7 +177,7 @@ namespace PPTX
{
std::wstring name_ = m_name;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) name_ = L"wps:wsp";
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) name_ = L"wps:wsp";
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) name_ = L"xdr:sp";
pWriter->StartNode(name_);
@ -210,10 +210,8 @@ namespace PPTX
if (style.is_init())
{
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
style->m_namespace = _T("wps");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
style->m_namespace = _T("xdr");
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) style->m_namespace = _T("wps");
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) style->m_namespace = _T("xdr");
pWriter->Write(style);
}

View File

@ -177,7 +177,15 @@ namespace PPTX
*oDrawingConverter.m_pBinaryWriter->m_pCommonRels = pOldRels;
oDrawingConverter.m_pBinaryWriter = pOldWriter;
}
std::wstring ChartRec::toXML() const
{
if (!id_data.is_init() || NULL == m_bData)
return L"";
std::wstring strData = L"<c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" \
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"" + id_data->ToString() + L"\"/>";
return strData;
}
void ChartRec::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
if (!id_data.is_init() || NULL == m_bData)

View File

@ -56,10 +56,19 @@ namespace PPTX
m_diag = oSrc.m_diag;
return *this;
}
virtual OOX::EElementType getType () const
{
return OOX::et_dgm_DiagrammParts;
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("r:dm"), id_data )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:cs"), id_color)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("r:dm"), id_data)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("r:lo"), id_layout)
WritingElement_ReadAttributes_Read_else_if( oReader, _T("r:qs"), id_style)
WritingElement_ReadAttributes_End ( oReader )
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
@ -70,6 +79,9 @@ namespace PPTX
virtual void fromXML(XmlUtils::CXmlNode& node)
{
node.ReadAttributeBase(L"r:dm", id_data);
node.ReadAttributeBase(L"r:cs", id_color);
node.ReadAttributeBase(L"r:lo", id_layout);
node.ReadAttributeBase(L"r:qs", id_style);
//FillParentPointersForChilds();
}
virtual std::wstring toXML() const
@ -98,6 +110,9 @@ namespace PPTX
}
nullable<OOX::RId> id_data;
nullable<OOX::RId> id_color;
nullable<OOX::RId> id_layout;
nullable<OOX::RId> id_style;
nullable<PPTX::Logic::SpTree> m_diag;
smart_ptr<PPTX::CCommonRels> m_oCommonRels;
@ -153,14 +168,10 @@ namespace PPTX
node.ReadAttributeBase(L"r:id", id_data);
FillParentPointersForChilds();
}
virtual std::wstring toXML() const
{
return _T("");
}
virtual std::wstring toXML() const;
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
nullable<OOX::RId> id_data;

View File

@ -51,8 +51,10 @@ namespace PPTX
public:
WritingElement_AdditionConstructors(SpTree)
SpTree()
SpTree(std::wstring ns = L"p") : nvGrpSpPr(ns), grpSpPr(ns)
{
m_namespace = ns;
m_lGroupIndex = 0;
}
SpTree& operator=(const SpTree& oSrc)
@ -66,7 +68,8 @@ namespace PPTX
for (size_t i=0; i < oSrc.SpTreeElems.size(); i++)
SpTreeElems.push_back(oSrc.SpTreeElems[i]);
m_name = oSrc.m_name;
m_namespace = oSrc.m_namespace;
m_lGroupIndex = oSrc.m_lGroupIndex;
return *this;
}
@ -76,7 +79,7 @@ namespace PPTX
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
m_name = oReader.GetName();
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
SpTreeElems.clear();
@ -104,7 +107,14 @@ namespace PPTX
{
SpTreeElem elem(oReader);
if (elem.is_init())
{
if (elem.getType() == OOX::et_p_ShapeTree)
{
smart_ptr<SpTree> e = elem.GetElem().smart_dynamic_cast<SpTree>();
e->m_lGroupIndex = m_lGroupIndex + 1;
}
SpTreeElems.push_back(elem);
}
}
}
@ -113,7 +123,7 @@ namespace PPTX
virtual void fromXML(XmlUtils::CXmlNode& node)
{
m_name = node.GetName();
m_namespace = XmlUtils::GetNamespace(node.GetName());
nvGrpSpPr = node.ReadNodeNoNS(_T("nvGrpSpPr"));
grpSpPr = node.ReadNodeNoNS(_T("grpSpPr"));
@ -143,7 +153,14 @@ namespace PPTX
{
SpTreeElem elem(oNode);
if (elem.is_init())
{
if (elem.getType() == OOX::et_p_ShapeTree)
{
smart_ptr<SpTree> e = elem.GetElem().smart_dynamic_cast<SpTree>();
e->m_lGroupIndex = m_lGroupIndex + 1;
}
SpTreeElems.push_back(elem);
}
}
}
}
@ -153,29 +170,45 @@ namespace PPTX
virtual std::wstring toXML() const
{
std::wstring name_;
if (m_namespace == L"wp")
{
if (m_lGroupIndex == 0) name_ = L"wpg:wgp";
else name_ = L"wpg:grpSp";
}
else if (m_namespace == L"xdr") name_ = L"xdr:grpSp";
else
{
if (m_lGroupIndex == 0) name_ = L"p:spTree";
else name_ = L"p:grpSp";
}
XmlUtils::CNodeValue oValue;
oValue.Write(nvGrpSpPr);
oValue.Write(grpSpPr);
oValue.WriteArray(SpTreeElems);
return XmlUtils::CreateNode(m_name, oValue);
return XmlUtils::CreateNode(name_, oValue);
}
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, bool in_group = false);
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
{
std::wstring name_;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
{
if (pWriter->m_lGroupIndex == 0)
pWriter->StartNode(_T("wpg:wgp"));
else
pWriter->StartNode(_T("wpg:grpSp"));
if (pWriter->m_lGroupIndex == 0) name_ = L"wpg:wgp";
else name_ = L"wpg:grpSp";
}
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
pWriter->StartNode(_T("xdr:grpSp"));
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) name_ = L"xdr:grpSp";
else
pWriter->StartNode(m_name);
{
if (pWriter->m_lGroupIndex == 0) name_ = L"p:spTree";
else name_ = L"p:grpSp";
}
pWriter->StartNode(name_);
pWriter->EndAttributes();
@ -196,18 +229,8 @@ namespace PPTX
SpTreeElems[i].toXmlWriter(pWriter);
pWriter->m_lGroupIndex--;
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
{
if (pWriter->m_lGroupIndex == 0)
pWriter->EndNode(_T("wpg:wgp"));
else
pWriter->EndNode(_T("wpg:grpSp"));
}
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
pWriter->EndNode(_T("xdr:grpSp"));
else
pWriter->EndNode(m_name);
pWriter->EndNode(name_);
}
void NormalizeRect(Aggplus::RECT& rect)const
@ -273,12 +296,16 @@ namespace PPTX
if(nElemLength > 0)
{
SpTreeElem elm;
SpTreeElems.push_back(elm);
SpTreeElems.back().fromPPTY(pReader);
elm.fromPPTY(pReader);
if (!SpTreeElems.back().is_init())
if (elm.is_init())
{
SpTreeElems.pop_back();
if (elm.getType() == OOX::et_p_ShapeTree)
{
smart_ptr<SpTree> e = elm.GetElem().smart_dynamic_cast<SpTree>();
e->m_lGroupIndex = m_lGroupIndex + 1;
}
SpTreeElems.push_back(elm);
}
}
}
@ -297,7 +324,8 @@ namespace PPTX
Logic::GrpSpPr grpSpPr;
std::vector<SpTreeElem> SpTreeElems;
std::wstring m_name;
std::wstring m_namespace;
int m_lGroupIndex;
protected:
virtual void FillParentPointersForChilds()
{

View File

@ -352,9 +352,14 @@ namespace PPTX
case SPTREE_TYPE_SPTREE:
{
Logic::SpTree* p = new Logic::SpTree();
p->m_name = _T("p:grpSp");
pReader->Seek(pReader->GetPos() - 5); // type back + len
p->fromPPTY(pReader);
if (getType() == OOX::et_p_ShapeTree)
{
smart_ptr<PPTX::Logic::SpTree> parent = GetElem().smart_dynamic_cast<PPTX::Logic::SpTree>();
p->m_lGroupIndex = parent->m_lGroupIndex + 1;
}
m_elem.reset(p);
break;
}

View File

@ -86,6 +86,9 @@ namespace PPTX
if (strName == L"tblGrid")
{
if ( oReader.IsEmptyNode() )
continue;
int nParentDepth1 = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
{

View File

@ -107,25 +107,36 @@ namespace PPTX
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
std::wstring strName = oReader.GetName();
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
if (_T("a:noAutofit") == strName)
type = FitNo;
else if (_T("a:spAutoFit") == strName)
type = FitSpAuto;
else if (_T("a:normAutofit") == strName)
{
std::wstring sName = oReader.GetName();
type = FitNormAuto;
ReadAttributes(oReader);
}
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
nullable_string sFontScale;
nullable_string sLnSpcRed;
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("fontScale"), sFontScale)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lnSpcReduction"), sLnSpcRed)
WritingElement_ReadAttributes_End( oReader )
Normalize(sFontScale, sLnSpcRed);
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
type = FitEmpty;
std::wstring strName = XmlUtils::GetNameNoNS(node.GetName());
std::wstring strName = node.GetName();
if (_T("a:noAutofit") == strName)
type = FitNo;
@ -141,33 +152,7 @@ namespace PPTX
node.ReadAttributeBase(L"fontScale", sFontScale);
node.ReadAttributeBase(L"lnSpcReduction", sLnSpcRed);
if (sFontScale.is_init())
{
int nFound = (int)sFontScale->rfind(wchar_t('%'));
if (nFound < 0)
fontScale = *sFontScale;
else
{
std::wstring sRet = sFontScale->substr(0, nFound);
double dRet = XmlUtils::GetDouble(sRet);
int val = (int)(dRet * 1000);
fontScale = val;
}
}
if (sLnSpcRed.is_init())
{
int nFound = (int)sLnSpcRed->rfind(wchar_t('%'));
if (nFound < 0)
lnSpcReduction = *sLnSpcRed;
else
{
std::wstring sRet = sLnSpcRed->substr(0, nFound);
double dRet = XmlUtils::GetDouble(sRet);
int val = (int)(dRet * 1000);
lnSpcReduction = val;
}
}
Normalize(sFontScale, sLnSpcRed);
}
}
virtual std::wstring toXML() const
@ -287,6 +272,37 @@ namespace PPTX
nullable_int lnSpcReduction;
protected:
virtual void FillParentPointersForChilds(){}
void Normalize(nullable_string & sFontScale, nullable_string & sLnSpcRed)
{
if (sFontScale.is_init())
{
int nFound = (int)sFontScale->rfind(wchar_t('%'));
if (nFound < 0)
fontScale = *sFontScale;
else
{
std::wstring sRet = sFontScale->substr(0, nFound);
double dRet = XmlUtils::GetDouble(sRet);
int val = (int)(dRet * 1000);
fontScale = val;
}
}
if (sLnSpcRed.is_init())
{
int nFound = (int)sLnSpcRed->rfind(wchar_t('%'));
if (nFound < 0)
lnSpcReduction = *sLnSpcRed;
else
{
std::wstring sRet = sLnSpcRed->substr(0, nFound);
double dRet = XmlUtils::GetDouble(sRet);
int val = (int)(dRet * 1000);
lnSpcReduction = val;
}
}
}
};
} // namespace Logic
} // namespace PPTX

View File

@ -97,7 +97,7 @@ namespace PPTX
if (spcPct.is_init())
{
oValue.m_strValue = L"<a:spcPct val=\"" + std::to_wstring(*spcPct) + L"\">";
oValue.m_strValue = L"<a:spcPct val=\"" + std::to_wstring(*spcPct) + L"\"/>";
}
else
{

View File

@ -47,9 +47,9 @@ namespace PPTX
class TxBody : public WrapperWritingElement
{
public:
TxBody()
TxBody(std::wstring name = L"p:txBody")
{
m_name = _T("p:txBody");
m_name = name;
}
virtual ~TxBody() {}
explicit TxBody(XmlUtils::CXmlNode& node)
@ -161,10 +161,6 @@ namespace PPTX
void toXmlWriterExcel(NSBinPptxRW::CXmlWriter* pWriter) const
{
/*
pWriter->StartNode(_T("c:rich"));
pWriter->EndAttributes();
*/
if (bodyPr.IsInit())
{
bodyPr->m_namespace = _T("a");
@ -194,12 +190,12 @@ namespace PPTX
return result;
}
void Merge(nullable<TxBody>& txBody)const
void Merge(nullable<TxBody>& txBody)
{
if(!txBody.is_init()) return;
if (!bodyPr.IsInit())
bodyPr = new Logic::BodyPr();
if(bodyPr.IsInit())
bodyPr->Merge(txBody->bodyPr);
bodyPr->Merge(txBody->bodyPr);
if(lstStyle.IsInit())
lstStyle->Merge(txBody->lstStyle);
@ -252,9 +248,11 @@ namespace PPTX
}
pReader->Seek(_end_rec);
}
public:
if (!bodyPr.IsInit())
bodyPr = new Logic::BodyPr();
}
nullable<BodyPr> bodyPr;
nullable<TextListStyle> lstStyle;
std::vector<Paragraph> Paragrs;
@ -275,18 +273,10 @@ namespace PPTX
}
public:
bool IsOneLineParagraphs() const
{
if (!bodyPr.is_init()) return false;
if (!bodyPr->wrap.is_init()) return false;
return (bodyPr->wrap->get() == _T("none"));
}
std::wstring GetDocxTxBoxContent(NSBinPptxRW::CBinaryFileWriter* pWriter, const nullable<PPTX::Logic::ShapeStyle>& shape_style);
};
} // namespace Logic
} // namespace PPTX
#endif // PPTX_LOGIC_TXBODY_INCLUDE_H
#endif // PPTX_LOGIC_TXBODY_INCLUDE_H

View File

@ -44,6 +44,7 @@ namespace PPTX
UniColor::UniColor()
{
Color.reset();
}

View File

@ -69,11 +69,11 @@ namespace PPTX
{
UniEffect::UniEffect()
{
Effect.reset();
}
UniEffect::~UniEffect()
{
//Effect.reset();
}
UniEffect::UniEffect(XmlUtils::CXmlNode& node)

View File

@ -49,7 +49,11 @@ namespace PPTX
{
public:
WritingElement_AdditionConstructors(UniFill)
PPTX_LOGIC_BASE2(UniFill)
UniFill()
{
m_type = notInit;
Fill.reset();
}
virtual OOX::EElementType getType() const
{

View File

@ -33,6 +33,7 @@
6967B1C11E27B4B800A129E2 /* RtfWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B1991E27B4B800A129E2 /* RtfWriter.cpp */; };
6967B1C21E27B4B800A129E2 /* OOXDocumentWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B19F1E27B4B800A129E2 /* OOXDocumentWriter.cpp */; };
6967B1C31E27B4B800A129E2 /* OOXWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B1A81E27B4B800A129E2 /* OOXWriter.cpp */; };
69ACB6D31E7A983400096E94 /* svg_parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69ACB6D11E7A983400096E94 /* svg_parser.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@ -167,6 +168,8 @@
6967B1C61E27B81B00A129E2 /* StringBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StringBuilder.h; path = ../../../../DesktopEditor/common/StringBuilder.h; sourceTree = "<group>"; };
6967B1C71E27B89400A129E2 /* PPTShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPTShape.h; path = ../../../../ASCOfficePPTXFile/Editor/Drawing/Shapes/BaseShape/PPTShape/PPTShape.h; sourceTree = "<group>"; };
6967B1C81E27B8F900A129E2 /* BaseShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BaseShape.h; path = ../../../../ASCOfficePPTXFile/Editor/Drawing/Shapes/BaseShape/BaseShape.h; sourceTree = "<group>"; };
69ACB6D11E7A983400096E94 /* svg_parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = svg_parser.cpp; path = ../../../../ASCOfficeOdfFile/src/odf/svg_parser.cpp; sourceTree = "<group>"; };
69ACB6D21E7A983400096E94 /* svg_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = svg_parser.h; path = ../../../../ASCOfficeOdfFile/src/odf/svg_parser.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -208,6 +211,7 @@
6967B13D1E27B4B800A129E2 /* Reader */ = {
isa = PBXGroup;
children = (
69ACB6D01E7A982B00096E94 /* odf */,
6967B13E1E27B4B800A129E2 /* OOXAbstractNumReader.h */,
6967B13F1E27B4B800A129E2 /* OOXAppReader.h */,
6967B1401E27B4B800A129E2 /* OOXBorderReader.h */,
@ -355,6 +359,15 @@
name = common;
sourceTree = "<group>";
};
69ACB6D01E7A982B00096E94 /* odf */ = {
isa = PBXGroup;
children = (
69ACB6D11E7A983400096E94 /* svg_parser.cpp */,
69ACB6D21E7A983400096E94 /* svg_parser.h */,
);
name = odf;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -419,6 +432,7 @@
6967B1B61E27B4B800A129E2 /* RtfField.cpp in Sources */,
6967B1BB1E27B4B800A129E2 /* RtfParagraph.cpp in Sources */,
6967B1AC1E27B4B800A129E2 /* OOXDrawingGraphicReader.cpp in Sources */,
69ACB6D31E7A983400096E94 /* svg_parser.cpp in Sources */,
6967B1AD1E27B4B800A129E2 /* OOXHeaderReader.cpp in Sources */,
6967B1B31E27B4B800A129E2 /* RtfBookmark.cpp in Sources */,
6967B1C11E27B4B800A129E2 /* RtfWriter.cpp in Sources */,
@ -547,6 +561,7 @@
PPT_DEF,
_IOS,
DONT_WRITE_EMBEDDED_FONTS,
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
@ -579,6 +594,7 @@
PPT_DEF,
_IOS,
DONT_WRITE_EMBEDDED_FONTS,
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
);
HEADER_SEARCH_PATHS = (
"$(inherited)",

View File

@ -216,7 +216,6 @@ HEADERS += docxformatlib.h \
../Source/XlsxFormat/Drawing/CellAnchor.h \
../Source/XlsxFormat/Drawing/Drawing.h \
../Source/XlsxFormat/Drawing/FromTo.h \
../Source/XlsxFormat/Drawing/GraphicFrame.h \
../Source/XlsxFormat/Drawing/Image.h \
../Source/XlsxFormat/Drawing/Pic.h \
../Source/XlsxFormat/Drawing/Pos.h \

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Version="8,00"
Name="DocxFormat"
ProjectGUID="{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
RootNamespace="DocxFormat"
@ -1602,10 +1602,6 @@
RelativePath="..\Source\XlsxFormat\Drawing\FromTo.h"
>
</File>
<File
RelativePath="..\Source\XlsxFormat\Drawing\GraphicFrame.h"
>
</File>
<File
RelativePath="..\Source\XlsxFormat\Drawing\Image.h"
>

View File

@ -662,9 +662,6 @@ namespace OOX
sResult += CVmlCommonElements::WriteAttributes();
ComplexTypes_WriteAttribute ( _T("o:bwmode=\""), m_oBwMode );
ComplexTypes_WriteAttribute ( _T("o:bwpure=\""), m_oBwPure );
ComplexTypes_WriteAttribute ( _T("o:bwnormal=\""), m_oBwNormal );
ComplexTypes_WriteAttribute ( _T("o:targetscreensize=\""), m_oTargetScreenSize );
sResult += _T(">");
@ -684,45 +681,15 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
// Читаем атрибуты
if ( oReader.GetAttributesCount() <= 0 )
return;
if ( !oReader.MoveToFirstAttribute() )
return;
std::wstring wsName = oReader.GetName();
while( !wsName.empty() )
{
wchar_t wsChar = wsName[0];
switch ( wsChar )
{
case 'o':
if ( _T("o:bwmode") == wsName ) m_oBwMode = oReader.GetText();
else if ( _T("o:bwnormal") == wsName ) m_oBwNormal = oReader.GetText();
else if ( _T("o:bwpure") == wsName ) m_oBwPure = oReader.GetText();
break;
case 't':
if ( _T("o:targetscreensize") == wsName ) m_oTargetScreenSize = oReader.GetText();
break;
}
if ( !oReader.MoveToNextAttribute() )
break;
wsName = oReader.GetName();
}
oReader.MoveToElement();
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("o:targetscreensize"), m_oTargetScreenSize)
WritingElement_ReadAttributes_End( oReader )
}
public:
// Attributes
nullable<SimpleTypes::CBWMode<>> m_oBwMode;
nullable<SimpleTypes::CBWMode<>> m_oBwNormal;
nullable<SimpleTypes::CBWMode<>> m_oBwPure;
nullable<SimpleTypes::CScreenSize<>> m_oTargetScreenSize;
nullable<SimpleTypes::CScreenSize<>> m_oTargetScreenSize;
};
//--------------------------------------------------------------------------------

View File

@ -348,8 +348,9 @@ namespace OOX
et_dsp_cNvPr,
et_dsp_txXfrm,
et_x_pic, // <...:pic>
et_x_cxnSp, // <...:cxnSp>
et_graphicFrame, // <...:graphicFrame>
et_pic, // <...:pic>
et_cxnSp, // <...:cxnSp>
et_p_cNvPicPr, // <p:cNvPicPr>
et_p_cNvPr, // <p:cNvPr>

View File

@ -6348,20 +6348,20 @@ namespace OOX{
{
PPTX::Logic::SpPr* pNewElem = new PPTX::Logic::SpPr;
pNewElem->fromXML(oReader);
m_Items.push_back(pNewElem);
ItemsChoiceType3* eElemtype = new ItemsChoiceType3;
*eElemtype = itemschoicetype3SPPR;
m_Items.push_back(pNewElem);
m_ItemsElementName0.push_back(eElemtype);
}
else if(_T("txPr") == sName)
{
std::wstring* pNewElem = new std::wstring;
std::wstring sVal = oReader.GetInnerXml();
*pNewElem = sVal;
PPTX::Logic::TxBody* pNewElem = new PPTX::Logic::TxBody;
pNewElem->fromXML(oReader);
m_Items.push_back(pNewElem);
ItemsChoiceType3* eElemtype = new ItemsChoiceType3;
*eElemtype = itemschoicetype3TXPR;
m_Items.push_back(pNewElem);
m_ItemsElementName0.push_back(eElemtype);
}
else if(_T("extLst") == sName)
@ -6578,10 +6578,11 @@ namespace OOX{
break;
case itemschoicetype3TXPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::TxBody* pTypeVal = static_cast<PPTX::Logic::TxBody*>(pVal);
if(NULL != pTypeVal)
{
writer.WriteString(_T("<c:txPr>") + *pTypeVal + _T("</c:txPr>"));
pTypeVal->m_name = L"c:txPr";
writer.WriteString(pTypeVal->toXML());
}
}
break;
@ -6670,7 +6671,7 @@ namespace OOX{
break;
case itemschoicetype3TXPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::TxBody* pTypeVal = static_cast<PPTX::Logic::TxBody*>(pVal);
RELEASEOBJECT(pTypeVal);
}
break;
@ -6809,31 +6810,32 @@ namespace OOX{
}
else if(_T("spPr") == sName)
{
std::wstring* pNewElem = new std::wstring;
std::wstring sVal = oReader.GetOuterXml();
*pNewElem = sVal;
PPTX::Logic::SpPr* pNewElem = new PPTX::Logic::SpPr;
pNewElem->fromXML(oReader);
m_Items.push_back(pNewElem);
ItemsChoiceType4* eElemtype = new ItemsChoiceType4;
*eElemtype = itemschoicetype4SPPR;
m_Items.push_back(pNewElem);
m_ItemsElementName0.push_back(eElemtype);
}
else if(_T("tx") == sName)
{
CT_Tx* pNewElem = new CT_Tx;
pNewElem->fromXML(oReader);
m_Items.push_back(pNewElem);
ItemsChoiceType4* eElemtype = new ItemsChoiceType4;
*eElemtype = itemschoicetype4TX;
m_Items.push_back(pNewElem);
*eElemtype = itemschoicetype4TX;
m_ItemsElementName0.push_back(eElemtype);
}
else if(_T("txPr") == sName)
{
std::wstring* pNewElem = new std::wstring;
std::wstring sVal = oReader.GetInnerXml();
*pNewElem = sVal;
PPTX::Logic::TxBody* pNewElem = new PPTX::Logic::TxBody;
pNewElem->fromXML(oReader);
m_Items.push_back(pNewElem);
ItemsChoiceType4* eElemtype = new ItemsChoiceType4;
*eElemtype = itemschoicetype4TXPR;
m_Items.push_back(pNewElem);
m_ItemsElementName0.push_back(eElemtype);
}
else if(_T("extLst") == sName)
@ -7024,10 +7026,10 @@ namespace OOX{
break;
case itemschoicetype4SPPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::SpPr* pTypeVal = static_cast<PPTX::Logic::SpPr*>(pVal);
if(NULL != pTypeVal)
{
writer.WriteString(*pTypeVal);
writer.WriteString(pTypeVal->toXML());
}
}
break;
@ -7046,10 +7048,11 @@ namespace OOX{
break;
case itemschoicetype4TXPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::TxBody* pTypeVal = static_cast<PPTX::Logic::TxBody*>(pVal);
if(NULL != pTypeVal)
{
writer.WriteString(_T("<c:txPr>") + *pTypeVal + _T("</c:txPr>"));
pTypeVal->m_name = L"c:txPr";
writer.WriteString(pTypeVal->toXML());
}
}
break;
@ -7126,7 +7129,7 @@ namespace OOX{
break;
case itemschoicetype4SPPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::SpPr* pTypeVal = static_cast<PPTX::Logic::SpPr*>(pVal);
RELEASEOBJECT(pTypeVal);
}
break;
@ -7138,7 +7141,7 @@ namespace OOX{
break;
case itemschoicetype4TXPR:
{
std::wstring* pTypeVal = static_cast<std::wstring*>(pVal);
PPTX::Logic::TxBody* pTypeVal = static_cast<PPTX::Logic::TxBody*>(pVal);
RELEASEOBJECT(pTypeVal);
}
break;

View File

@ -37,10 +37,13 @@
#include "FromTo.h"
#include "Pic.h"
#include "GraphicFrame.h"
#include "Pos.h"
#include "Shape.h"
#include "Shape.h"
#include "../../../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h"
namespace OOX
{
namespace Spreadsheet
@ -57,7 +60,7 @@ namespace OOX
}
public:
virtual std::wstring toXML() const
virtual std::wstring toXML() const
{
return _T("");
}
@ -105,7 +108,7 @@ namespace OOX
if(m_oXml.IsInit())
writer.WriteString(m_oXml.get());
if(m_oGraphicFrame.IsInit())
m_oGraphicFrame->toXML(writer);
writer.WriteString(m_oGraphicFrame->toXML());
writer.WriteString(sEnd);
if(m_oAlternateContent.IsInit() && m_oAlternateContent->ToBool())
@ -114,7 +117,7 @@ namespace OOX
}
}
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
@ -137,11 +140,10 @@ namespace OOX
else if ( _T("graphicFrame") == sName )
{
m_oGraphicFrame = oReader;
if ((m_oGraphicFrame.IsInit()) && (m_oGraphicFrame->m_oGraphic.IsInit()) &&
(m_oGraphicFrame->m_oGraphic->m_oGraphicData.IsInit()))
if ((m_oGraphicFrame.IsInit()) && (m_oGraphicFrame->spid.IsInit()))
{
//вытащим выше ссылку на объект (для удобства)
m_sSpId = m_oGraphicFrame->m_oGraphic->m_oGraphicData->m_sSpId;
m_sSpId = m_oGraphicFrame->spid.get();
}
}
//Так читать правильнее ... но для совместимости нужно хранить и все xml !!!!
@ -291,7 +293,7 @@ namespace OOX
nullable<OOX::Spreadsheet::CFromTo> m_oTo;
nullable<OOX::Spreadsheet::CPos> m_oPos;
nullable<OOX::Spreadsheet::CExt> m_oExt;
nullable<OOX::Spreadsheet::CGraphicFrame> m_oGraphicFrame;
nullable<PPTX::Logic::GraphicFrame> m_oGraphicFrame;
nullable<OOX::Spreadsheet::CPic> m_oPicture;
nullable<OOX::Spreadsheet::CGroupShape> m_oGroupShape;
nullable<OOX::Spreadsheet::CShape> m_oShape;

View File

@ -1,457 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#ifndef OOX_GRAPHICFRAME_FILE_INCLUDE_H_
#define OOX_GRAPHICFRAME_FILE_INCLUDE_H_
#include "../CommonInclude.h"
namespace OOX
{
namespace Spreadsheet
{
//--------------------------------------------------------------------------------
// 20.1.2.2.5 cNvGraphicFramePr (Non-Visual Graphic Frame Drawing Properties)
//--------------------------------------------------------------------------------
class CConnectionNonVisualGraphicFrameProps : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CConnectionNonVisualGraphicFrameProps)
CConnectionNonVisualGraphicFrameProps()
{
}
virtual ~CConnectionNonVisualGraphicFrameProps()
{
}
public:
virtual std::wstring toXML() const
{
return _T("<xdr:cNvGraphicFramePr/>");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(_T("<xdr:cNvGraphicFramePr/>"));
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( _T("picLocks") == sName )
m_oPicLocks = oReader;
else if ( _T("extLst") == sName )
m_oExtLst = oReader;
}
}
virtual EElementType getType () const
{
return et_ConnectionNonVisualGraphicFrameProps;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("preferRelativeResize"), m_oPreferRelativeResize )
WritingElement_ReadAttributes_End( oReader )
}
public:
// Attributes
SimpleTypes::COnOff<SimpleTypes::onoffTrue> m_oPreferRelativeResize;
// Childs
nullable<OOX::Drawing::COfficeArtExtensionList> m_oExtLst;
nullable<OOX::Drawing::CPictureLocking> m_oPicLocks;
};
//--------------------------------------------------------------------------------
// 20.1.2.2.26 nvGraphicFramePr (Non-Visual Properties for a Graphic Frame)
//--------------------------------------------------------------------------------
class CGraphicFrameNonVisual : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGraphicFrameNonVisual)
CGraphicFrameNonVisual()
{
}
virtual ~CGraphicFrameNonVisual()
{
}
public:
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(_T("<xdr:nvGraphicFramePr>"));
if (m_oCNvPr.IsInit())
{
std::wstring sCNvPr = m_oCNvPr->toXML();
writer.WriteString(sCNvPr.c_str());
}
else
writer.WriteString(_T("<xdr:cNvPr id=\"1\" name=\"diagram\"/>"));
if (m_oCNvGraphicFramePr.IsInit()) m_oCNvGraphicFramePr->toXML(writer);
writer.WriteString(_T("</xdr:nvGraphicFramePr>"));
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( _T("cNvGraphicFramePr") == sName )
m_oCNvGraphicFramePr = oReader;
else if ( _T("cNvPr") == sName )
m_oCNvPr = oReader;
}
}
virtual EElementType getType () const
{
return et_GraphicFrameNonVisual;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_End( oReader )
}
public:
// Childs
nullable<CConnectionNonVisualGraphicFrameProps> m_oCNvGraphicFramePr;
nullable<OOX::Drawing::CNonVisualDrawingProps> m_oCNvPr;
};
//"c:chart" - нужно перенести в общую часть
class CGraphicChart : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGraphicChart)
CGraphicChart()
{
}
virtual ~CGraphicChart()
{
}
public:
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( !oReader.IsEmptyNode() )
oReader.ReadTillEnd();
}
virtual EElementType getType () const
{
return et_GraphicChart;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oRId )
WritingElement_ReadAttributes_End( oReader )
}
public:
nullable<SimpleTypes::CRelationshipId> m_oRId;
};
//--------------------------------------------------------------------------------
// 20.1.2.2.17 graphicData (Graphic Object Data)
//--------------------------------------------------------------------------------
class CGraphicData : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGraphicData)
CGraphicData()
{
}
virtual ~CGraphicData()
{
}
public:
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
if(m_oChart.IsInit())
{
writer.WriteString(L"<a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\">");
writer.WriteString(L"<c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" ");
if (m_oChart->m_oRId.IsInit())
{
writer.WriteString(L"r:id=\"");
writer.WriteString(m_oChart->m_oRId->ToString());
writer.WriteString(L"\"/>");
}
writer.WriteString(L"</a:graphicData>");
}
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"chart" == sName )
{
m_eGraphicType = OOX::Drawing::graphictypeChart;
m_oChart = oReader;
}
else if (L"legacyDrawing" == sName )
{
m_eGraphicType = OOX::Drawing::graphictypeLegacyDrawing;
ReadAttributes( oReader );
}
else if ( L"relIds" == sName )
{
m_eGraphicType = OOX::Drawing::graphictypeDiagram;
m_oDiagrammParts = oReader;
}
}
}
virtual EElementType getType () const
{
return et_xdr_GraphicData;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("spid"), m_sSpId)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("uri"), m_sUri )
WritingElement_ReadAttributes_End( oReader )
}
public:
OOX::Drawing::EGraphicType m_eGraphicType;
// Attributes
nullable<std::wstring> m_sUri;
//Child
nullable<CGraphicChart> m_oChart;
nullable<OOX::Drawing::CDiagrammParts> m_oDiagrammParts;
nullable<std::wstring> m_sSpId;
};
//--------------------------------------------------------------------------------
// 20.1.2.2.16 graphic (Graphic Object) - тю ..это может быть не только чарт !!
//--------------------------------------------------------------------------------
class CGraphic : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGraphic)
CGraphic()
{
}
virtual ~CGraphic()
{
}
public:
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( _T("graphicData") == sName )
m_oGraphicData = oReader;
}
}
virtual EElementType getType () const
{
return et_xdr_Graphic;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
}
public:
nullable<CGraphicData> m_oGraphicData;
};
//--------------------------------------------------------------------------------
// 20.1.2.2.18 graphicFrame (Graphic Frame)
//--------------------------------------------------------------------------------
class CGraphicFrame : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGraphicFrame)
CGraphicFrame()
{
}
virtual ~CGraphicFrame()
{
}
public:
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
if(!m_oGraphic.IsInit()) return;
writer.WriteString(_T("<xdr:graphicFrame macro=\"\">"));
if (m_oNvGraphicFramePr.IsInit())
{
m_oNvGraphicFramePr->toXML(writer);
}else
{
writer.WriteString(_T("<xdr:nvGraphicFramePr><xdr:cNvPr id=\"1\" name=\"Graphic>\"/><xdr:cNvGraphicFramePr/></xdr:nvGraphicFramePr>"));
}
writer.WriteString(L"<xdr:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/></xdr:xfrm>");
writer.WriteString(L"<a:graphic>");
if (m_oGraphic->m_oGraphicData.IsInit())
m_oGraphic->m_oGraphicData->toXML(writer);
writer.WriteString(_T("</a:graphic>"));
writer.WriteString(_T("</xdr:graphicFrame>"));
writer.WriteString(_T("<xdr:clientData/>"));
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
if ( oReader.IsEmptyNode() )
return;
m_sXml.Init();
m_sXml->append(oReader.GetOuterXml());
std::wstring sXml = L"<root xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">";
sXml += m_sXml.get();
sXml += L"</root>";
XmlUtils::CXmlLiteReader oSubReader;
oSubReader.FromString(sXml);
oSubReader.ReadNextNode();//root
oSubReader.ReadNextNode();//GraphicFrame
int nCurDepth = oSubReader.GetDepth();
while( oSubReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oSubReader.GetName());
if ( _T("graphic") == sName )
m_oGraphic = oSubReader;
else if ( _T("nvGraphicFramePr") == sName )
m_oNvGraphicFramePr = oSubReader;
}
}
virtual EElementType getType () const
{
return et_xdr_GraphicFrame;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
}
public:
// Attributes
nullable<std::wstring> m_sUri;
// Child
nullable<CGraphic> m_oGraphic;
nullable<CGraphicFrameNonVisual> m_oNvGraphicFramePr;
//xfrm
//extLst
nullable<std::wstring> m_sXml;
};
} //Spreadsheet
} // namespace OOX
#endif // OOX_GRAPHICFRAME_FILE_INCLUDE_H_

View File

@ -615,8 +615,6 @@ namespace OOX
m_arrItems.push_back( new OOX::Spreadsheet::CShape( oReader ));
else if ( _T("cxnSp") == sName )
m_arrItems.push_back( new OOX::Spreadsheet::CConnShape( oReader ));
else if ( _T("graphicFrame") == sName )
m_arrItems.push_back( new OOX::Spreadsheet::CGraphicFrame( oReader ));
else if ( _T("pic") == sName )
m_arrItems.push_back( new OOX::Spreadsheet::CPic( oReader ));
else if ( _T("grpSp") == sName )

View File

@ -224,7 +224,15 @@ namespace OOX
if (pShape == NULL) continue;
for(size_t j = 0, length2 = pShape->m_arrItems.size(); j < length2; ++j)
if (pShape->m_sId.IsInit())
{//mark shape as used
std::map<std::wstring, OOX::CVmlDrawing::_vml_shape>::iterator pFind = pVmlDrawing->m_mapShapes.find(pShape->m_sId.get());
if (pFind != pVmlDrawing->m_mapShapes.end())
{
pFind->second.bUsed = true;
}
}
for(size_t j = 0, length2 = pShape->m_arrItems.size(); j < length2; ++j)
{
OOX::WritingElement* pElem = pShape->m_arrItems[j];
if( OOX::et_v_ClientData == pElem->getType())
@ -347,12 +355,12 @@ namespace OOX
m_oCols->toXML(sXml);
if(m_oSheetData.IsInit())
m_oSheetData->toXML(sXml);
for (size_t nIndex = 0, nLength = m_arrConditionalFormatting.size(); nIndex < nLength; ++nIndex)
m_arrConditionalFormatting[nIndex]->toXML(sXml);
if(m_oAutofilter.IsInit())
m_oAutofilter->toXML(sXml);
if(m_oMergeCells.IsInit())
m_oMergeCells->toXML(sXml);
for (size_t nIndex = 0, nLength = m_arrConditionalFormatting.size(); nIndex < nLength; ++nIndex)
m_arrConditionalFormatting[nIndex]->toXML(sXml);
if(m_oHyperlinks.IsInit())
m_oHyperlinks->toXML(sXml);
if(m_oPrintOptions.IsInit())

View File

@ -85,6 +85,8 @@ public:
int m_nFileType;
std::string m_sUtf8ArgumentJSON;
std::string m_sGlobalVariable;
public:
CV8RealTimeWorker()
@ -172,6 +174,51 @@ public:
return true;
}
std::string GetGlobalVariable()
{
std::string commandA = "JSON.stringify(GlobalVariable);";
v8::Context::Scope context_scope(m_context);
v8::TryCatch try_catch;
v8::Local<v8::String> source = v8::String::NewFromUtf8(m_isolate, commandA.c_str());
v8::Local<v8::Script> script = v8::Script::Compile(source);
std::string sReturn = "{}";
if (try_catch.HasCaught())
{
std::wstring strCode = to_cstring(try_catch.Message()->GetSourceLine());
std::wstring strException = to_cstring(try_catch.Message()->Get());
_LOGGING_ERROR_(L"execute_compile_code", strCode);
_LOGGING_ERROR_(L"execute_compile", strException);
return false;
}
else
{
v8::Local<v8::Value> _value = script->Run();
if (try_catch.HasCaught())
{
std::wstring strCode = to_cstring(try_catch.Message()->GetSourceLine());
std::wstring strException = to_cstring(try_catch.Message()->Get());
_LOGGING_ERROR_(L"execute_run_code", strCode);
_LOGGING_ERROR_(L"execute_run", strException);
return false;
}
if (_value->IsString())
sReturn = to_cstringA(_value);
}
return sReturn;
}
bool OpenFile(const std::wstring& sBasePath, const std::wstring& path, const std::string& sString, const std::wstring& sCachePath)
{
LOGGER_SPEED_START
@ -245,6 +292,32 @@ public:
}
}
if (true)
{
std::string sArg = m_sGlobalVariable;
if (sArg.empty())
sArg = "{}";
NSCommon::string_replaceA(sArg, "\\", "\\\\");
NSCommon::string_replaceA(sArg, "\"", "\\\"");
std::string sScriptVar = "var GlobalVariable = JSON.parse(\"" + sArg + "\");";
v8::Local<v8::String> _sourceArg = v8::String::NewFromUtf8(m_isolate, sScriptVar.c_str());
v8::Local<v8::Script> _scriptArg = v8::Script::Compile(_sourceArg);
_scriptArg->Run();
if (try_catch.HasCaught())
{
std::wstring strCode = to_cstring(try_catch.Message()->GetSourceLine());
std::wstring strException = to_cstring(try_catch.Message()->Get());
_LOGGING_ERROR_(L"sdk_global_var_code", strCode);
_LOGGING_ERROR_(L"sdk_global_var", strException);
return false;
}
}
CNativeControl* pNative = NULL;
bool bIsBreak = false;
@ -473,6 +546,9 @@ namespace NSDoctRenderer
bool m_bIsInit;
bool m_bIsCacheScript;
std::string m_sGlobalVariable;
bool m_bIsGlobalVariableUse;
public:
CDocBuilder_Private()
{
@ -489,6 +565,9 @@ namespace NSDoctRenderer
m_pAdditionalData = NULL;
m_bIsInit = false;
m_bIsCacheScript = true;
m_sGlobalVariable = "";
m_bIsGlobalVariableUse = false;
}
void Init()
@ -935,6 +1014,8 @@ namespace NSDoctRenderer
m_sFileDir = L"";
m_nFileType = -1;
if (m_pWorker)
m_sGlobalVariable = m_pWorker->GetGlobalVariable();
RELEASEOBJECT(m_pWorker);
}
@ -1137,6 +1218,7 @@ namespace NSDoctRenderer
m_pWorker = new CV8RealTimeWorker();
m_pWorker->m_nFileType = m_nFileType;
m_pWorker->m_sUtf8ArgumentJSON = m_oParams.m_sArgumentJSON;
m_pWorker->m_sGlobalVariable = m_sGlobalVariable;
std::wstring sCachePath = L"";
if (m_bIsCacheScript)
@ -1480,6 +1562,7 @@ namespace NSDoctRenderer
{
//bIsNoError = this->m_pInternal->ExecuteCommand(NSFile::CUtf8Converter::GetUnicodeStringFromUTF8((BYTE*)_data, (LONG)_len));
sJsCommands += command;
sJsCommands += "\n";
}
if (!bIsNoError)

View File

@ -350,8 +350,10 @@ int CHtmlFile::Convert(const std::vector<std::wstring>& arFiles, const std::wstr
case 0: // child process
{
std::string sLibraryDir = sProgramm;
if (std::string::npos != sProgramm.find_last_of('/'))
sLibraryDir = "LD_LIBRARY_PATH=" + sProgramm.substr(0, sProgramm.find_last_of('/'));
std::string::size_type posLast = sProgramm.find_last_of('/');
std::string sProgrammDir = sProgramm.substr(0, posLast);
if (std::string::npos != posLast)
sLibraryDir = "LD_LIBRARY_PATH=" + sProgrammDir + ":" + sProgrammDir + "/../";
if (!IsLinuxXVFB())
{

View File

@ -553,6 +553,11 @@ HRESULT CPdfRenderer::NewPage()
m_oFont.Reset();
m_oPath.Clear();
// clear font!!!
m_oFont.SetName(L"");
m_oFont.SetSize(-1);
m_oFont.SetStyle(1 << 5);
m_lClipDepth = 0;
m_nPagesCount++;//printf("Page %d\n", m_nPagesCount++);

View File

@ -7,7 +7,7 @@
QT -= core
QT -= gui
VERSION = 2.0.3.441
VERSION = 2.0.3.446
DEFINES += INTVER=$$VERSION
TARGET = x2t
@ -35,7 +35,11 @@ core_windows {
#CONFIG += build_for_centos6
build_for_centos6 {
core_linux_64 {
QMAKE_LFLAGS += -Wl,--dynamic-linker=./ld-linux-x86-64.so.2
} else {
QMAKE_LFLAGS += -Wl,--dynamic-linker=./ld-linux.so.2
}
}
DEFINES += UNICODE \

View File

@ -366,9 +366,9 @@ namespace NExtractTools
else return AVS_FILEUTILS_ERROR_CONVERT;
}
return pptx_dir2pptt_bin(sTempUnpackedPPTX, sTo, params);
return pptx_dir2pptt_bin(sTempUnpackedPPTX, sTo, sTemp, params);
}
int pptx_dir2pptt_bin (const std::wstring &sFrom, const std::wstring &sTo, InputParams& params)
int pptx_dir2pptt_bin (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params)
{
// convert unzipped pptx to unzipped pptt
CPPTXFile *pptx_file = new CPPTXFile(NULL, NULL, NULL, NULL);
@ -377,6 +377,7 @@ namespace NExtractTools
if (pptx_file)
{
pptx_file->put_TempDirectory(sTemp);
pptx_file->SetFontDir (params.getFontPath());
nRes = (S_OK == pptx_file->OpenFileToPPTY (sFrom, sTo)) ? nRes : AVS_FILEUTILS_ERROR_CONVERT;
@ -2192,7 +2193,7 @@ namespace NExtractTools
}
else if(AVS_OFFICESTUDIO_FILE_CANVAS_PRESENTATION == nFormatTo)
{
nRes = pptx_dir2pptt_bin(sFrom, sTo, params);
nRes = pptx_dir2pptt_bin(sFrom, sTo, sTemp, params);
}
else
{
@ -2200,7 +2201,7 @@ namespace NExtractTools
NSDirectory::CreateDirectory(sPpttDir);
std::wstring sTFile = sPpttDir + FILE_SEPARATOR_STR + _T("Editor.bin");
nRes = pptx_dir2pptt_bin(sFrom, sTFile, params);
nRes = pptx_dir2pptt_bin(sFrom, sTFile, sTemp, params);
if(SUCCEEDED_X2T(nRes))
{
nRes = fromPpttBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);

View File

@ -63,7 +63,7 @@ namespace NExtractTools
int xlst2xlsx (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, bool bFromChanges, const std::wstring &sThemeDir, InputParams& params);
int pptx2pptt_bin (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params);
int pptx_dir2pptt_bin (const std::wstring &sFrom, const std::wstring &sTo, InputParams& params);
int pptx_dir2pptt_bin (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params);
int pptx2pptt (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params);
int pptt_bin2pptx (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, bool bFromChanges, const std::wstring &sThemeDir, InputParams& params);
int pptt_bin2pptx_dir (const std::wstring &sFrom, const std::wstring &sToResult, const std::wstring &sTo, bool bFromChanges, const std::wstring &sThemeDir, InputParams& params);

Some files were not shown because too many files have changed in this diff Show More