提取文本的情况在工作和学习中常会遇到,在前面的文章中,已经讲述了如何提取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