gpt4 book ai didi

c#-4.0 - 按顺序枚举 PowerPoint 幻灯片

转载 作者:行者123 更新时间:2023-12-04 00:09:02 26 4
gpt4 key购买 nike

我正在尝试使用 OpenXML SDK 2.0 分析现有的 PowerPoint 2010 .pptx 文件。

我想要实现的是

  • 按顺序列举幻灯片(就像它们在 PPTX 中出现的那样)
  • 从每张幻灯片中提取所有文本位

我已经开始并且到目前为止 - 我可以从 PresentationPart 枚举 SlideParts - 但我似乎无法找到一种方法来使它成为 有序枚举 - 幻灯片以任意顺序返回...

有什么技巧可以按照 PPTX 文件中定义的顺序获取这些幻灯片吗?

using (PresentationDocument doc = PresentationDocument.Open(fileName, false))
{
// Get the presentation part of the document.
PresentationPart presentationPart = doc.PresentationPart;

foreach (var slide in presentationPart.SlideParts)
{
...
}
}

我希望找到类似 SlideIDSequence 数字之类的东西 - 我可以在 Linq 表达式中使用的某些项目或属性,例如

.OrderBy(s => s.SlideID)

在那个幻灯片集合上。

最佳答案

这比我希望的要复杂一些 - 文档有时有点粗略......

基本上,我必须枚举 PresentationPart 上的 SlideIdList 并执行一些 XML-foo 以从该 SlideId 获取实际幻灯片在 OpenXML 演示文稿中。

类似的东西:

using (PresentationDocument doc = PresentationDocument.Open(fileName, false))
{
// Get the presentation part of the document.
PresentationPart presentationPart = doc.PresentationPart;

// get the SlideIdList
var items = presentationPart.Presentation.SlideIdList;

// enumerate over that list
foreach (SlideId item in items)
{
// get the "Part" by its "RelationshipId"
var part = presentationPart.GetPartById(item.RelationshipId);

// this part is really a "SlidePart" and from there, we can get at the actual "Slide"
var slide = (part as SlidePart).Slide;

// do more stuff with your slides here!
}
}

关于c#-4.0 - 按顺序枚举 PowerPoint 幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14963828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com