检索并更新 C++ 中的演示文稿信息

Aspose.Slides for C++ 允许您检查演示文稿,以了解其属性并理解其行为。

Check a Presentation Format

在处理演示文稿之前,您可能想了解当前演示文稿的格式(PPT、PPTX、ODP 等)。

您可以在不加载演示文稿的情况下检查其格式。请参见以下 C++ 代码:

auto info = PresentationFactory::get_Instance()->GetPresentationInfo(u"pres.pptx");
// PPTX 文件
Console::WriteLine(ObjectExt::ToString(info->get_LoadFormat()));

auto info2 = PresentationFactory::get_Instance()->GetPresentationInfo(u"pres.ppt");
// PPT 文件
Console::WriteLine(ObjectExt::ToString(info2->get_LoadFormat()));

auto info3 = PresentationFactory::get_Instance()->GetPresentationInfo(u"pres.odp");
// ODP 文件
Console::WriteLine(ObjectExt::ToString(info3->get_LoadFormat()));

Get Presentation Properties

以下 C++ 代码演示如何获取演示文稿属性(即有关演示文稿的信息):

auto info = PresentationFactory::get_Instance()->GetPresentationInfo(u"pres.pptx");
auto props = info->ReadDocumentProperties();
Console::WriteLine(ObjectExt::ToString(props->get_CreatedTime()));
Console::WriteLine(props->get_Subject());
Console::WriteLine(props->get_Title());
// ..

Update Presentation Properties

Aspose.Slides 提供了 PresentationInfo::UpdateDocumentProperties 方法,允许您修改演示文稿属性。

假设我们有一个 PowerPoint 演示文稿,其文档属性如下所示。

Original document properties of the PowerPoint presentation

以下代码示例展示如何编辑部分演示文稿属性:

auto fileName = u"sample.pptx";

auto info = PresentationFactory::get_Instance()->GetPresentationInfo(fileName);

auto properties = info->ReadDocumentProperties();
properties->set_Title(u"My title");
properties->set_LastSavedTime(DateTime::get_Now());

info->UpdateDocumentProperties(properties);
info->WriteBindedPresentation(fileName);

更改文档属性后的结果如下所示。

Changed document properties of the PowerPoint presentation

欲获取有关演示文稿及其安全属性的更多信息,您可能会发现以下链接有用:

FAQ

How can I check whether fonts are embedded and which ones they are?
如何检查字体是否已嵌入以及具体有哪些?

在演示文稿级别查找 embedded-font information,然后将这些条目与 fonts actually used across content 的集合进行比较,以确定哪些字体对渲染至关重要。

How can I quickly tell if the file has hidden slides and how many?
如何快速判断文件中是否包含隐藏幻灯片以及数量?

遍历 slide collection 并检查每个幻灯片的 visibility flag

Can I detect whether custom slide size and orientation are used, and whether they differ from the defaults?
我能否检测是否使用了自定义幻灯片尺寸和方向,以及它们是否与默认设置不同?

可以。将当前的 slide size and orientation 与标准预设进行比较;这有助于预测打印和导出时的行为。

Is there a quick way to see if charts reference external data sources?
有没有快速方法查看图表是否引用外部数据源?

可以。遍历所有 charts,检查它们的 data source,并标记数据是内部的还是基于链接的,包括任何失效的链接。

How can I assess ‘heavy’ slides that may slow rendering or PDF export?
如何评估可能导致渲染或 PDF 导出变慢的“沉重”幻灯片?

对于每张幻灯片,统计对象数量并查找大型图像、透明度、阴影、动画和多媒体;给出一个大致的复杂度评分,以标记潜在的性能热点。