OLE 对象
Contents
[
Hide
]
本文演示如何将文件嵌入为 OLE 对象并使用 Aspose.Slides for C++ 更新其数据。
添加 OLE 对象
将 PDF 文件嵌入到演示文稿中。
static void AddOleObject()
{
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto pdfData = File::ReadAllBytes(u"doc.pdf");
auto dataInfo = MakeObject<OleEmbeddedDataInfo>(pdfData, u"pdf");
auto oleFrame = slide->get_Shapes()->AddOleObjectFrame(20, 20, 50, 50, dataInfo);
presentation->Dispose();
}
访问 OLE 对象
检索幻灯片上的第一个 OLE 对象帧。
static void AccessOleObject()
{
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto pdfData = File::ReadAllBytes(u"doc.pdf");
auto dataInfo = MakeObject<OleEmbeddedDataInfo>(pdfData, u"pdf");
auto oleFrame = slide->get_Shapes()->AddOleObjectFrame(20, 20, 50, 50, dataInfo);
auto firstOleFrame = SharedPtr<IOleObjectFrame>();
for (auto&& shape : slide->get_Shapes())
{
if (ObjectExt::Is<IOleObjectFrame>(shape))
{
firstOleFrame = ExplicitCast<IOleObjectFrame>(shape);
break;
}
}
presentation->Dispose();
}
删除 OLE 对象
从幻灯片中删除嵌入的 OLE 对象。
static void RemoveOleObject()
{
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto pdfData = File::ReadAllBytes(u"doc.pdf");
auto dataInfo = MakeObject<OleEmbeddedDataInfo>(pdfData, u"pdf");
auto oleFrame = slide->get_Shapes()->AddOleObjectFrame(20, 20, 50, 50, dataInfo);
slide->get_Shapes()->Remove(oleFrame);
presentation->Dispose();
}
更新 OLE 对象数据
替换已存在 OLE 对象中嵌入的数据。
static void UpdateOleObjectData()
{
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto pdfData = File::ReadAllBytes(u"doc.pdf");
auto dataInfo = MakeObject<OleEmbeddedDataInfo>(pdfData, u"pdf");
auto oleFrame = slide->get_Shapes()->AddOleObjectFrame(20, 20, 50, 50, dataInfo);
auto newData = File::ReadAllBytes(u"Picture.png");
auto newDataInfo = MakeObject<OleEmbeddedDataInfo>(newData, u"png");
oleFrame->SetEmbeddedData(newDataInfo);
presentation->Dispose();
}