引言
在项目中生成文档报告经常需要word中,其中的关键就是书签,通过定位和替换书签中的值来达到生成定制的报告(详见Word模板中的表格处理);但在PPT中却没有书签这个概念,所以,不能采用这种方式。以前,有人模拟书签,在PPT文档中写一个固定的符号来表示特定的值,这是一种可行的方式,但不是最佳的,显得很笨。
我在想这个文本、图片、表格、形状等既然都能放在一张幻灯片中,肯定有一个唯一标识它的符号,不然,它怎么肯定会冲突,又想起了做动画时,好像每一个要素都有一个名字,这应该是唯一标识的名称。
解决方案
其实每张幻灯片中每一个形状都有对应的名称(实际它并不是唯一的),在开始菜单,编辑-选择窗格中可查看、修改。这就是PPT中的"书签"
使用Aspose.Slides或其他PPT操作类库可直接打开PPT文件、读取幻灯片内容、遍历每一个形状(shape)的名称、类型(图片、文字、线等),然后做自己要做的事!
1 presentation = new Presentation(pptFilePath); 2 ISlide slide = presentation.Slides[0]; 3 for (int j = 0; j<slide.Shapes.Count; j++) 4 { 5 IShape shape = slide.Shapes[j]; 6 Console.WriteLine(shape.Name+"\t"); 7 }