在 C++ 中从演示文稿中删除幻灯片
如果幻灯片(或其内容)变得多余,可以将其删除。Aspose.Slides 提供了 Presentation 类,封装了 ISlideCollection,它是演示文稿中所有幻灯片的仓库。使用已知的 ISlide 对象的指针(引用或索引),可以指定要删除的幻灯片。
通过引用删除幻灯片
- 创建 Presentation 类的实例。
- 通过 ID 或索引获取要删除的幻灯片的引用。
- 从演示文稿中删除该引用的幻灯片。
- 保存修改后的演示文稿。
以下 C++ 代码演示了如何通过引用删除幻灯片:
// 文档目录的路径
const String templatePath = L"../templates/AddSlides.pptx";
const String outPath = L"../out/RemoveSlidesByReference.pptx";
// 实例化一个表示演示文稿文件的 Presentation 对象
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// 通过幻灯片集合中的索引访问幻灯片
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// 通过引用删除幻灯片
pres->get_Slides()->Remove(slide);
// 保存修改后的演示文稿
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
通过索引删除幻灯片
- 创建 Presentation 类的实例。
- 通过索引位置从演示文稿中删除幻灯片。
- 保存修改后的演示文稿。
以下 C++ 代码演示了如何通过索引删除幻灯片:
// 文档目录的路径
const String templatePath = L"../templates/AddSlides.pptx";
const String outPath = L"../out/RemoveSlidesByID.pptx";
// 实例化一个表示演示文稿文件的 Presentation 对象
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// 通过幻灯片索引删除幻灯片
pres->get_Slides()->RemoveAt(0);
// 保存修改后的演示文稿
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
删除未使用的布局幻灯片
Aspose.Slides 提供了来自 Compress 类的 RemoveUnusedLayoutSlides() 方法,允许您删除不需要和未使用的布局幻灯片。以下 C++ 代码演示了如何从 PowerPoint 演示文稿中删除布局幻灯片:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
LowCode::Compress::RemoveUnusedLayoutSlides(pres);
pres->Save(u"pres-out.pptx", SaveFormat::Pptx);
删除未使用的母版幻灯片
Aspose.Slides 提供了来自 Compress 类的 RemoveUnusedMasterSlides() 方法,允许您删除不需要和未使用的母版幻灯片。以下 C++ 代码演示了如何从 PowerPoint 演示文稿中删除母版幻灯片:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
LowCode::Compress::RemoveUnusedMasterSlides(pres);
pres->Save(u"pres-out.pptx", SaveFormat::Pptx);
常见问题
删除幻灯片后幻灯片索引会怎样?
删除后,collection 会重新索引:每个后续幻灯片左移一个位置,导致之前的索引号失效。如果需要稳定的引用,请使用每个幻灯片的持久 ID,而不是其索引。
幻灯片的 ID 与索引不同吗?在删除相邻幻灯片时会变化吗?
是的。索引表示幻灯片的位置,在添加或删除幻灯片时会变化。幻灯片 ID 是持久标识符,在删除其他幻灯片时不会变化。
删除幻灯片会如何影响幻灯片分段?
如果该幻灯片属于某个节,该节的幻灯片数会减少一个。节的结构保持不变;如果节变为空,您可以删除或重新组织节。
删除幻灯片时,附加的备注和评论会怎样?
Notes 和 comments 与该幻灯片绑定,删除幻灯片时一起被删除。其他幻灯片的内容不受影响。
删除幻灯片与清理未使用的布局/母版有什么区别?
删除会从演示文稿中移除特定的普通幻灯片。清理未使用的布局/母版会删除没有任何引用的布局或母版幻灯片,从而减小文件大小且不更改剩余幻灯片的内容。这两种操作相辅相成:通常先删除,然后再清理。