C#实现从PPT中提取文本的示例代码

 更新时间:2023年05月30日 09:13:57   作者:Carina-baby  
今天这篇文章主要为大家详细介绍了如何通过编程方式提取PowerPoint中的文字,文章最后附有C#/VB.NET代码以及效果图,希望对你有所帮助

在学习或者日常工作中,有时我们需要把幻灯片的东西整理成文字,而从 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#实现从PPT中提取文本的示例代码的文章就介绍到这了,更多相关C# PPT提取文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Quartz.Net使用方法详解

    Quartz.Net使用方法详解

    本文详细讲解了Quartz.Net的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C#二维数组与多维数组的具体使用

    C#二维数组与多维数组的具体使用

    本文主要介绍了C#二维数组与多维数组的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • C# NModbus RTU通信实现方法详解

    C# NModbus RTU通信实现方法详解

    Modbus协议时应用于电子控制器上的一种通用语言,通过此协议,控制器相互之间、控制器经由网络/串口和其它设备之间可以进行通信,下面我们就来看看具体实现吧
    2024-11-11
  • C# DateTime.Now.ToString() 用法示例讲解

    C# DateTime.Now.ToString() 用法示例讲解

    这篇文章主要介绍了C# DateTime.Now.ToString() 用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • C#爬虫基础之HttpClient获取HTTP请求与响应

    C#爬虫基础之HttpClient获取HTTP请求与响应

    这篇文章介绍了C#使用HttpClient获取HTTP请求与响应的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#索引器介绍

    C#索引器介绍

    这篇文章主要介绍了C#索引器介绍,索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写,需要的朋友可以参考下
    2014-10-10
  • C#中字符串与字节数组的转换方式

    C#中字符串与字节数组的转换方式

    这篇文章介绍了C#中字符串与字节数组的转换方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#中Convert.ToDecimal()报错问题的解决

    C#中Convert.ToDecimal()报错问题的解决

    这篇文章主要给大家介绍了关于C#中Convert.ToDecimal()报错问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-08-08
  • C# 操作符之三元操作符浅析

    C# 操作符之三元操作符浅析

    C# 操作符之三元操作符“?:”是如何使用的呢?C# 操作符之三元操作符“?:”需要注意的是什么呢?那么本文就向你简单介绍C# 操作符之三元操作符“?:”的基本情况。
    2011-02-02
  • C#使用标签软件Bartender打印标签模板

    C#使用标签软件Bartender打印标签模板

    这篇文章介绍了C#使用标签软件Bartender打印标签模板,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01

最新评论