如何从 PowerPoint 演示文稿中提取文本

本文介绍了如何通过编程方式,使用FreeSpire.Presentation库来高效地从PowerPoint演示文稿中提取文本。提供了C#和VB.NET的代码示例,详细展示了加载PPT文件,遍历幻灯片和形状,以及将文本保存到TXT文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习或者日常工作中,有时我们需要把幻灯片的东西整理成文字,而从 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

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值