C#/VB.NET:如何从 PowerPoint 演示文稿中提取文本
在学习或者日常工作中,有时我们需要把幻灯片的东西整理成文字,而从 PowerPoint 演示文稿中一张一张的整理手动复制粘贴,整个过程会非常费精力且耗时。那么怎么样才能比较轻松且快速地提取PowerPoint中的文字呢?今天这篇文章就将为你介绍如何通过编程方式提取PowerPoint中的文字,文章最后附有C#/VB.NET代码以及效果图,希望对你有所帮助。
程序环境
本次测试时,在程序中引入Free Spire.Presentation for .NET。可通过以下方法引用 Free Spire.Presentation.dll文件:
方法1:将 Free Spire.Presentation for .NET下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的 Spire.Presentation.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。
方法2:通过NuGet安装。可通过以下2种方法安装:
(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Presentation”,点击“安装”。等待程序安装完成。
(2)将以下内容复制到PM控制台安装。
Install-Package FreeSpire.Presentation -Version 7.8.0
从 PowerPoint 演示文稿中提取文本
为了便于在 PowerPoint 文档中共享或传递文本信息,有时需要进行文本提取操作。以下是从所有演示文稿幻灯片中提取文本并保存在 TXT 文件中的步骤。
- 初始化 Presentation 类的实例。
- 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文档示例。
- 创建 StringBuilder 实例。
- 遍历文档中的每张幻灯片,然后遍历每张幻灯片中的所有形状。
- 确定形状是否为 IAutoShape 类型。如果是,则遍历每个形状中的所有段落,并使用 TextParagraph.Text 属性获取段落文本。
- 使用 StringBuilder.AppendLine() 方法将提取的文本附加到StringBuilder实例
- 创建一个新的txt文件,并使用 File.WriteAllText() 方法将提取的文本写入该文件。
完整代码
C#
using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Presentation.Converter.Equation.Word;
using System;
using System.IO;
using System.Text;
namespace ExtractText
{
class Program
{
static void Main(string[] args)
{
//初始化Presentation类的实例
Presentation presentation = new Presentation(); //载PowerPoint文档示例
presentation.LoadFromFile("海市蜃楼是如何形成的?.pptx");
//创建StringBuilder实例
StringBuilder sb = new StringBuilder(); //遍历文档中的每张幻灯片
foreach (ISlide slide in presentation.Slides)
{
//遍历每张幻灯片中的每个形状
foreach (IShape shape in slide.Shapes)
{
//检查形状是否为IAutoShape类型
if (shape is IAutoShape)
{
//以每种形状遍历所有段落
foreach (TextParagraph tp in (shape as IAutoShape).TextFrame.Paragraphs)
{
//提取文本并保存到StringBuilder实例
sb.AppendLine(tp.Text);
}
}
}
}
//创建一个新的txt文件以保存提取的文本
File.WriteAllText("提取文本.txt", sb.ToString());
presentation.Dispose();
}
}
}
VB.NET
Imports Spire.Presentation
Imports Spire.Presentation.Charts
Imports Spire.Presentation.Converter.Equation.Word
Imports System.IO
Imports System.Text Namespace ExtractText
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Presentation类的实例
Dim presentation As Presentation = New Presentation() '载PowerPoint文档示例
presentation.LoadFromFile("海市蜃楼是如何形成的?.pptx")
'创建StringBuilder实例
Dim sb As StringBuilder = New StringBuilder() '遍历文档中的每张幻灯片
For Each slide As ISlide In presentation.Slides
'遍历每张幻灯片中的每个形状
For Each shape As IShape In slide.Shapes
'检查形状是否为IAutoShape类型
If TypeOf shape Is IAutoShape Then
'以每种形状遍历所有段落
For Each tp As TextParagraph In TryCast(shape, IAutoShape).TextFrame.Paragraphs
'提取文本并保存到StringBuilder实例
sb.AppendLine(tp.Text)
Next
End If
Next
Next
'创建一个新的txt文件以保存提取的文本
Call File.WriteAllText("提取文本.txt", sb.ToString())
presentation.Dispose()
End Sub
End Class
End Namespace
效果图

—本文完—
C#/VB.NET:如何从 PowerPoint 演示文稿中提取文本的更多相关文章
- 如何通过C#/VB.NET从PowerPoint文档中提取图片
PowerPoint是用于制作幻灯片(演示文稿)的应用软件,每张幻灯片中都可以包含文字.图形.图形.表格.声音和影像等多种信息.有时候我们发现在PPT里面有一些精美的图片,或者其他原因想要把PPT里面 ...
- 从jsTree演示代码中提取的在线文件查看
从jsTree演示代码中提取的在线文件查看 jsTree 请参考:https://www.jstree.com/ 效果如下: 代码下载:http://files.cnblogs.com/files/z ...
- 放映PPT幻灯片演示文稿如何让演讲者备注不投影到屏幕上(转载)
ps files/ps.rar 放映PPT幻灯片演示文稿如何让演讲者备注不投影到屏幕上 如题,在PPT幻灯片的演示文稿中加入演讲者备注(使用PPT讲座时苦于有时会忘记一些要讲的数字,文字等),但是在 ...
- PowerPoint for Mac 中的键盘快捷方式汇总
PowerPoint for Mac 中的键盘快捷方式介绍给大家,使用PowerPoint for Mac可以创建新颖别致的演示文稿通过漂亮的设计.丰富的动画.电影动作.3D 模型和图标传达你的想法. ...
- 怎样做出优秀的扁平化设计风格 PPT 或 Keynote 幻灯片演示文稿?(装)
不知道你有没有想过,为什么很人多的扁平化 PPT 是这个样子: 或者是这样: 然而,还有一小撮人的扁平化 PPT 却拥有那么高颜值: 为什么会产生这么大的差距呢?丑逼 PPT 应该如何逆袭成为帅逼呢? ...
- Hyhyhy – 专业的 HTML5 演示文稿工具
Hyhyhy 是创建好看的 HTML5 演示文档的工具.它具备很多的特点:支持 Markdown,嵌套幻灯片,数学排版,兼容性,语法高亮,使用 Javascript API ,方便的骨架.它支持 Fi ...
- slid.es – 创建在线幻灯片和演示文稿的最佳途径
slid.es 提供了一种创建在线幻灯片和演示文稿的简单方法,让你通过几个简单的步骤制作效果精美的在线演示文稿.基于 HTML5 和 CSS3 实现,在现代浏览器中效果最佳. 您可能感兴趣的相关文章 ...
- Reveal.js一个用来做WEB演示文稿的框架
reveal.js是一个能够帮助我们很轻易地使用HTML来创建漂亮的演示效果,也就是我们常见的PPT幻灯片.reveal.js不依赖其他任何javascript库,是一个独立的javascript插件 ...
- 解决方案:ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
ppt打不开,显示发现文件中的内容有问题.可尝试修复此演示文稿 故障截图如下: 解决方法: 主要是因为文件是网络下载的,office自动锁定了文件(默认不可编辑).在文件上右键-属性-解除锁定(最下面 ...
- Liferay平台开发使用详细PPT演示文稿
主要章节: 概述 功能和使用 开发扩展 安全.认证 高可用 Demo 独立流程演示工程: Liferay集成Activiti开发工程: PPT演示文稿下载 Demo程序分2部分: 独立流程演示工程:h ...
随机推荐
- Rancher系列文章-Rancher v2.6使用脚本实现导入集群
概述 最近在玩 Rancher, 先从最基本的功能玩起, 目前有几个已经搭建好的 K8S 集群, 需要批量导入, 发现官网已经有批量导入的文档了. 根据 Rancher v2.6 进行验证微调后总结经 ...
- mongodb导入数据,保创建新项目
1.回顾 2.导入数据 2.1 excel数据表格 2.2 设计导入数据的路由 routes/users.js router.get('/upload', function (req, res, ne ...
- [Linux]常用命令之【tar/zip/unzip/gzip/gunzip】
1 tar .tar与.gz有什么联系与区别? .tar 只是进行打包,并没有压缩. 则: 用tar-cvf进行打包 用tar-xvf进行解包. .tar.gz 是既打包又压缩 ,则: tar –cz ...
- Vulnhub Bravery靶机 Walkthrough
Bravery Recon 使用netdiscover对本地网络进行arp扫描. ┌──(kali㉿kali)-[~] └─$ sudo netdiscover -r 192.168.80.0/24 ...
- ORA-12154: TNS:could not resolve the connect identifier specified--sys密码包含@符号
问题描述:在操作系统登录数据库时,由于忘记了sys密码,重新修改的sys密码包含@符号,登录时报错, ORA-12154: TNS:could not resolve the connect iden ...
- Django笔记二十七之数据库函数之文本函数
本文首发于公众号:Hunter后端 原文链接:Django笔记二十七之数据库函数之文本函数 这篇笔记将介绍如何使用数据库函数里的文本函数. 顾名思义,文本函数,就是针对文本字段进行操作的函数,如下是目 ...
- Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)
Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享) 常用的两款AI可视化交互应用比较: Gradio Gradio的优势在于易用性,代码结构相比Str ...
- Cesium加载ArcGIS Server4490且orgin -400 400的切片服务
Cesium在使用加载Cesium.ArcGisMapServerImageryProvider加载切片服务时,默认只支持wgs84的4326坐标系,不支持CGCS2000的4490坐标系. 如果是A ...
- Vue实战案例
Vue项目案例 结合之前学习的 vue.js.脚手架.vuex.vue-router.axios.elementui 等知识点,来开发前端项目案例(仅前端不含后端). 1.项目搭建 其实就是将我们项目 ...
- NC19427 换个角度思考
题目链接 题目 题目描述 给定一个序列,有多次询问,每次查询区间里小于等于某个数的元素的个数 即对于询问 \((l,r,x)\) ,你需要输出 \(\sum_{i=l}^{r}[a_i \le x]\ ...