关于c#:CVBNET如何从-PowerPoint-演示文稿中提取文本

5次阅读

共计 2595 个字符,预计需要花费 7 分钟才能阅读完成。

在学习或者日常工作中,有时咱们须要把幻灯片的货色整顿成文字,而从 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

效果图

—本文完—

正文完
 0