在学习或者日常工作中,有时咱们须要把幻灯片的货色整顿成文字,而从 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.PresentationImports Spire.Presentation.ChartsImports Spire.Presentation.Converter.Equation.WordImports System.IOImports System.TextNamespace 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 ClassEnd Namespace
效果图
—本文完—