码迷,mamicode.com
首页 > Windows程序 > 详细

C#如何提取PPT中 SmartArt文本和批注中的文本

时间:2017-11-09 11:45:45      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:.net   c#   ppt   批注   提取文本   

提取文本的情况在工作和学习中常会遇到,在前面的文章中,已经讲述了如何提取PPT中文本框里的文本,在本篇文章中,将介绍如何使用C#代码语言提取PPT文档中SmartArt和批注中的文本。同样的,程序里面需要使用到 Free Spire.PPT for .NET,在编写代码前,需先安装,并添引用dll文件到项目程序中,同时也要添加到命名空间。

1.提取SmartArt中的文本

原始文件:

技术分享

(在幻灯片2中插入了SmartArt图形,包含文本内容)

using Spire.Presentation.Diagrams;
using System.Drawing;
using System.Text;
using System.IO;
using Spire.Presentation;
 
namespaceExtractTextFromSmartArt_PPT
{
    classProgram
    {
        staticvoid Main(string[] args)
        {
            //初始化一个Presentation类实例,并加载文档
            Presentation ppt = newPresentation();
            ppt.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.pptx");
            //新建一个StringBuilder对象
            StringBuilder st = newStringBuilder();
            //遍历文档中的SmartArt图形
            for (int i = 0; i <ppt.Slides.Count; i++)
            {
                for (int j = 0; j <ppt.Slides[i].Shapes.Count; j++)
                {
                    if(ppt.Slides[i].Shapes[j] isISmartArt)
                    {
                       ISmartArt smartArt = ppt.Slides[i].Shapes[j] asISmartArt;
                       for (int k = 0; k < smartArt.Nodes.Count; k++)
                       {
                           st.Append(smartArt.Nodes[k].TextFrame.Text);
                        }
                    }
                }
            }
            //将文本写入TXT文档
            File.WriteAllText("Result.txt", st.ToString());
        }
    }
}


效果示例如下图:

技术分享


2.提取批注中的文本


原文件:

技术分享

在幻灯片1中,插入了批注,包含文本内容

using System;
using System.Text;
using Spire.Presentation;
using System.IO;
 
namespaceExtractTextFromComment_PPT
{
    classProgram
    {
        staticvoid Main(string[] args)
        {
            //实例化一个Presentation类,并加载文档
            Presentation ppt = newPresentation();
           ppt.LoadFromFile(@"C:\Users\Administrator\Desktop\comment.pptx");
            //创建一个StringBuilder对象
            StringBuilder str = newStringBuilder();
            //获取第一张幻灯片中的所有批注
            Comment[] comments =ppt.Slides[0].Comments;
            //遍历批注内容
            for (int i = 0; i <comments.Length; i++)
            {
               str.Append(comments[i].Text + "\r\n");
            }
            //将文本写入TXT文档
            File.WriteAllText("TextFromComment.txt", str.ToString());
        }
    }
}

效果示例:

技术分享


以上方法是提取PPT SmartArt和批注中文本的实现方法,供参考,希望能对您有所帮助,感谢阅读!

 

(本文完)


本文出自 “E-iceblue” 博客,请务必保留此出处http://eiceblue.blog.51cto.com/13438008/1980186

C#如何提取PPT中 SmartArt文本和批注中的文本

标签:.net   c#   ppt   批注   提取文本   

原文地址:http://eiceblue.blog.51cto.com/13438008/1980186

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!