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

提取文本的情况在工作和学习中常会遇到,在前面的文章中,已经讲述了如何提取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和批注中文本的实现方法,供参考,希望能对您有所帮助,感谢阅读!

(本文完)

时间: 2024-10-11 15:33:31

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

C# 提取PPT文本和图片的实现方案

在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过C#代码可以提取Word和PDF文件中的文本和图片,那么同样的,我们也可以提取PPT幻灯片当中的文本和图片.本篇文档将讲述如何使用C#来实现提取PPT文本和图片的操作.首先也是需要安装组件Spire.Presentation,然后添加引用dll文件到项目中.下面是主要的代码步骤. 原文档: 1. 提取文本 步骤一:创建一个Presentation实例并加载文档 Presentation presentation = ne

主题模型及其在文本情感分析中的应用

随着Web2.0技术的出现和发展,互联网上(包括门户网站.电子商务网站.社交网站.音/视频分享网站.论坛.博客.微博等)产生了海量的.由用户发表的对于诸如人物.事件.产品等目标实体的评论信息.例如,下面这两个短文本评论:(1)“比较了多个智能手机后选择了8150,性价比还可以.另外,就是考虑到它是3.7的屏幕,大小比较合适,否则携带很不方便.”(京东商城用户,2011.11.25):(2)“我以前在杭州做二手房地产,用温州炒房客的话说:全世界房价降了,杭州的房价永远不会降,因为他们有一道坚不可摧

WPF中动态更新TextBlock文字中的超链接,文本

1.------------------------------------------------------------------------- 修改超链接的文本文字: <TextBlock><Hyperlink> <TextBlock  x:Name="TextBlockNeedChange" Text="改变的文本" /> </Hyperlink></TextBlock> 修改TextBlockN

使用 awk 过滤文本或文件中的字符串

当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分.这时正则表达式就派上用场了. 什么是正则表达式? 正则表达式可以定义为代表若干个字符序列的字符串.它最重要的功能之一就是它允许你过滤一条命令或一个文件的输出.编辑文本或配置文件的一部分等等. 正则表达式的特点 正则表达式由以下内容组合而成: 普通字符,例如空格.下划线.A-Z.a-z.0-9. 可以扩展为普通字符的元字符,它们包括: (.) 它匹配除了换行符外的任何单个字符.

通过js动态生成文本框,怎么把文本框中的值传到java后台?

通过js动态生成文本框,怎么把文本框中的值传到java后台? 1 var lengths; 2 function insertrow2() //增加的一行方法2 3 { 4 newRow=document.all.yltable.insertRow(-1); 5 lengths = document.all.yltable.rows.length; 6 7 newcell=newRow.insertCell() ; 8 newRow.bgColor='#FFFFFF'; 9 newcell.al

asp数据库编程:Oracle大文本在ASP中存取问题的解决

在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题. 一.运行环境: 1.Microsoft Windows 2000 Server + IIS 5.02.Oracle8i中文标准版 二.建立数据表: CREATE TABLE SYSTEM.TEST(BLOB LONG,ID NUMBER)/ 三.源程序:1.数据存入程序:test.asp <%'表单提交处理部分{上海治疗阳痿医院}'-----

在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的?

如何在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的? 解决方案:将整列单元格格式设为文本,然后,选中该列,数据--分列--完成 详细步骤: (1)选中1行或者1列,再单击鼠标右键,选择设置单元格格式: (2) (3) (4)单击[分列],再单击完成即可

moodle中的完形填空题的文本编写方法

moodle中的完形填空题的文本编写方法 [完形填空题]考题把一段文字挖去一些空,让考生根据上下文正确地完成这些填空.完型填空题中的一段短文可以包括各种题目,如选择,填空,和数字题等. 题目的编辑是在编辑页面中输入一些按照完形填空的书写格式的文本. 下面介绍完型填空题的几种题型的书写方法: 完形选择题: 书写格式{1(分数):MULTICHOICE(题型):错误答案#对该错误答案的反馈~另一个错误答案#对另一个错误答案的反馈~=正确答案#对该正确答案的反馈~P%可信度一半的答案#对该可信度一半的

《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 &amp;&amp; 检查一个字符串是文本还是二进制

过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: import string allchars = string.maketrans('','') #all chars table def makefilter(keep): delchars = allchars.translate(allchars,keep) def thefilter(s): retu