本文使用的是第三方类库 Aspose.Slide,如果你使用的是OpenXml可以看下面的链接,原理是相同的,这个文章里也有对Xml标签的详细解释。

如何:获取演示文稿中的所有幻灯片的标题

原理:

  原理说白了很简单,明白了原理大家都写得出来。

  简单说,一个PPT里有多个幻灯片,一个幻灯片里有多个Shape, Shape会有一个Plcaeholder,Placeholder的Type属性来决定是否是标题。

  Aspose的对像 IPresentation->Slide->Shape->PlaceHolder

代码:

判断Shape是一个Title,采用了扩展方法的方式:

    public static class ShapeExtension
{
public static bool IsTitleShape(this IShape p_shape)
{
if (p_shape == null)
{
return false;
} var placeholder = p_shape.Placeholder;
if (placeholder != null)
{
switch (placeholder.Type)
{
// Any title shape.
case PlaceholderType.Title:
// A centered title.
case PlaceholderType.CenteredTitle:
return true; default:
return false;
}
} return false;
}
}

我们定义一个SlideTitle来存放

    public class SlideTitle
{
public int PageNum { get; set; } public int TitleCount { get; set; } public string[] Titles { get; set; }
}

再扩展IPresentation对象,增加一个GetTitles的方法

    public static class PresentationExtension
{
public static IEnumerable<SlideTitle> GetTitles(this IPresentation p_presentation)
{
var presentation = p_presentation;
if (presentation != null)
{
foreach (var slide in presentation.Slides)
{
List<string> titles = new List<string>(); foreach (var shape in slide.Shapes)
{
if (!shape.IsTitleShape())
{
continue;
} var autoShape = shape as AutoShape;
if (autoShape == null)
{
continue;
} titles.Add(autoShape.TextFrame.Text);
} var title = new SlideTitle()
{
PageNum = slide.SlideNumber,
TitleCount = titles.Count,
Titles = titles.ToArray()
}; yield return title;
}
}
}
}

总结:

  这东西本身,很简单的东西,主要就是判断哪个属性。幸好查到了微软的那篇文章。

本文原创

转载请注明出处:http://www.cnblogs.com/gaoshang212/p/4440807.html

使用 Aspose.Slide 获取PPT中的所有幻灯片的标题的更多相关文章

  1. 如何提取出ppt中的文字?

    最近在看一位老师的教学视频,视频里大部分的知识都记录在ppt里,于是很想将ppt中的文字提取出来,如果我一页一页地粘贴复制的话,效率低到吓人,因为一章的ppt有130多页,于是在网上搜索了一下方法,与 ...

  2. 怎么利用Aspose.Cells 获取excel 数据表中sheet的名称

    说明:开发环境 vs2012 asp.net mvc4 c# 利用Aspose.Cells 获取Excel数据表的sheet的名称,并把获取的名称赋值给easyUI 的combobox 1.运行效果 ...

  3. Office系列(2)---提取Office文件(Word、PPT)中的所有图片

    回顾一下上文结尾的问题:如何给文档设置一个合适的封面图?其中一个解决方案就是,获取Office文件内部的图片作为封面.这里就详细介绍下获取图片的几种方式,以及他们各自的优缺点. PS:因为之前用VST ...

  4. Java 在PPT中创建SmartArt图形、读取SmartArt图形中的文本

    一.概述及环境准备 SmartArt 图形通过将文字.图形从多种不同布局.组合来表现内容和观点的逻辑关系,能够快速.有效地传达设计者的意图和信息.这种图文表达的视觉表示形式常用于PPT,Word,Ex ...

  5. C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

    在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印:也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果.本文 ...

  6. 用poi替换ppt中的文字和图片

    try {            // 获取PPT文件             String pptModelPath =ConfigReadUtil.getInstance().getConfigI ...

  7. 三维场景如何嵌入到PPT中展示?

    今天要跟大家一起交流的大体内容如标题所示,日常生活中,ppt已经成为人们工作学习生活中不可或缺的工具之一,那么三维场景是如何在ppt中加载展示的呢?请大家慢慢往下看. 1.创建命令按钮和web bro ...

  8. C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形

    本文介绍通过C#和VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形.文中将分两个操作示例来演示创建和编辑结果. 使用工具:Spire.Presentation for .NET ho ...

  9. 如何获取url中的参数并传递给iframe中的报表

    在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数 ...

随机推荐

  1. Solr Cloud搭建

    1:搭建tomcat 配置connector: server.xm文件中: <Connector port="8080"maxThreads="200" ...

  2. I can connect to an FTP site but I can't list or transfer files.

    原文 FTP sessions use two network connections: The control channel is for user authentication and send ...

  3. 循序渐进之Spring AOP(5) - 创建切面

    在掌握了可用的增强后,接下来要做的就是精确的描述切点.前面的示例都是指定一个目标类并把增强织入到所有方法中,实际开发显然会有更精细的筛选需求,比如对所有类中名称以test结尾的方法加入监控执行时间,或 ...

  4. VC++ AfxBeginThread 与 CreateThread 的区别

    简言之:AfxBeginThread是MFC的全局函数,是对CreateThread的封装.    CreateThread是Win32 API函数,前者最终要调到后者.具体说来,CreateThre ...

  5. Oracle环境变量NLS_LANG

    常见的值可以参见Oracle Database Client Globalization Support

  6. vertical-align 属性设置元素的垂直对齐方式。

     值 描述 baseline 默认.元素放置在父元素的基线上. sub 垂直对齐文本的下标. super 垂直对齐文本的上标 top 把元素的顶端与行中最高元素的顶端对齐 text-top 把元素的顶 ...

  7. handler 异步执行(进度条加载到100)

    生明一个handler 对象(可重写handlerMessage 方法) 声明一个Runnable 对象,需重写run方法 按钮事件:handler对象实例的post方法调用线程. 线程的run方法开 ...

  8. 使用引脚模拟PWM波控制引脚

    /********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...

  9. 简单的jquery插件写法之一

    http://jsfiddle.net/kyu0hdmx/embedded/#HTML

  10. Java中XML格式的字符串4读取方式的简单比较

    Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...