在學習或者日常工作中,有時我們需要把幻燈片的東西整理成文字,而從 PowerPoint 演示文稿中一張一張的整理手動複製粘貼,整個過程會非常費精力且耗時。那麼怎麼樣才能比較輕鬆且快速地提取PowerPoint中的文字呢?今天這篇文章就將為你介紹如何通過編程方式提取PowerPoint中的文字,文章最 ...
在學習或者日常工作中,有時我們需要把幻燈片的東西整理成文字,而從 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
效果圖
—本文完—