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提取文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# CultureInfo类案例详解

    C# CultureInfo类案例详解

    这篇文章主要介绍了C# CultureInfo类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C#控制台实现飞行棋游戏

    C#控制台实现飞行棋游戏

    这篇文章主要为大家详细介绍了C#控制台实现飞行棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • C#发送Get、Post请求(带参数)

    C#发送Get、Post请求(带参数)

    本文主要介绍了C#发送Get、Post请求,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Winform 实现进度条弹窗和任务控制

    Winform 实现进度条弹窗和任务控制

    这篇文章主要介绍了Winform 实现进度条弹窗和任务控制的方法,帮助大家更好的利用c# winform进行开发,感兴趣的朋友可以了解下
    2020-12-12
  • UGUI绘制多点连续的平滑曲线

    UGUI绘制多点连续的平滑曲线

    这篇文章主要为大家详细介绍了UGUI绘制多点连续的平滑曲线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 手把手教你如何基于C#制作一个网址检测工具

    手把手教你如何基于C#制作一个网址检测工具

    这篇文章主要给大家介绍了关于如何基于C#制作一个网址检测工具的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • C# winform跨线程操作控件的实现

    C# winform跨线程操作控件的实现

    本文主要介绍了C# winform跨线程操作控件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C# 实现截图软件功能实例代码

    C# 实现截图软件功能实例代码

    这篇文章主要介绍了C# 实现截图软件功能实例代码,需要的朋友可以参考下
    2017-06-06
  • c# 使用异步编程的方法

    c# 使用异步编程的方法

    这篇文章主要介绍了c# 使用异步编程的方法,文中讲解非常细致,帮助大家更好的理解c# 异步编程,感兴趣的朋友可以了解下
    2020-08-08
  • C# 根据表格偶数、奇数加载不同颜色

    C# 根据表格偶数、奇数加载不同颜色

    这篇文章主要介绍了C# 根据表格偶数、奇数加载不同颜色,需要的朋友可以参考下
    2017-09-09

最新评论