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
复制代码 效果图
—本文完—
来源:https://www.cnblogs.com/Carina-baby/archive/2023/05/29/17440477.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-5-29 20:23:28
举报
回复
分享
|
|
|
|