C#如何提取PPT中 SmartArt文本和批註中的文本

来源:http://www.cnblogs.com/Yesi/archive/2017/11/08/7804541.html
-Advertisement-
Play Games

提取文本的情況在工作和學習中常會遇到,在前面的文章中,已經講述瞭如何提取PPT中文本框里的文本,在本篇文章中,將介紹如何使用C#代碼語言提取PPT文檔中SmartArt和批註中的文本。同樣的,程式裡面需要使用到Spire.PPT for .NET,在編寫代碼前,需先安裝,並添引用dll文件到項目程式 ...


提取文本的情況在工作和學習中常會遇到,在前面的文章中,已經講述瞭如何提取PPT中文本框里的文本,在本篇文章中,將介紹如何使用C#代碼語言提取PPT文檔中SmartArt和批註中的文本。同樣的,程式裡面需要使用到Spire.PPT for .NET,在編寫代碼前,需先安裝,並添引用dll文件到項目程式中。

1.提取SmartArt中的文本

原始文件:

在幻燈片2中插入了SmartArt圖形,包含文本內容

 1 using Spire.Presentation.Diagrams;
 2 using System.Drawing;
 3 using System.Text;
 4 using System.IO;
 5 using Spire.Presentation;
 6 
 7 namespace ExtractTextFromSmartArt_PPT
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             //初始化一個Presentation類實例,並載入文檔
14             Presentation ppt = new Presentation();
15             ppt.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.pptx");
16             //新建一個StringBuilder對象
17             StringBuilder st = new StringBuilder();
18             //遍歷文檔中的SmartArt圖形
19             for (int i = 0; i < ppt.Slides.Count; i++)
20             {
21                 for (int j = 0; j < ppt.Slides[i].Shapes.Count; j++)
22                 {
23                     if (ppt.Slides[i].Shapes[j] is ISmartArt)
24                     {
25                         ISmartArt smartArt = ppt.Slides[i].Shapes[j] as ISmartArt;
26                         for (int k = 0; k < smartArt.Nodes.Count; k++)
27                         {
28                             st.Append(smartArt.Nodes[k].TextFrame.Text);
29                         }
30                     }
31                 }
32             }
33             //將文本寫入TXT文檔
34             File.WriteAllText("Result.txt", st.ToString());
35         }
36     }
37 }

提取的文本如下圖所示:

 

2.提取批註中文本

原文件:

在幻燈片1中,插入了批註,包含文本內容

 1 using System;
 2 using System.Text;
 3 using Spire.Presentation;
 4 using System.IO;
 5 
 6 namespace ExtractTextFromComment_PPT
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             //實例化一個Presentation類,並載入文檔
13             Presentation ppt = new Presentation();
14             ppt.LoadFromFile(@"C:\Users\Administrator\Desktop\comment.pptx");
15             //創建一個StringBuilder對象
16             StringBuilder str = new StringBuilder();
17             //獲取第一張幻燈片中的所有批註
18             Comment[] comments = ppt.Slides[0].Comments;
19             //遍歷批註內容
20             for (int i = 0; i < comments.Length; i++)
21             {
22                 str.Append(comments[i].Text + "\r\n");
23             }
24             //將文本寫入TXT文檔
25             File.WriteAllText("TextFromComment.txt", str.ToString());
26         }
27     }
28 }

 

以上方法是提取PPT SmartArt和批註中文本的實現方法,供參考,希望能對您有所幫助,感謝閱讀!

 

(本文完)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oracle 11g中有個新特性:新增了一個參數: ‘‘deferred_segment_creation’’:意思是段延遲創建,預設是True。 參數為True的話,你新建張table1表,並且沒有插入數據,oracle不會向這個表分配extent,也就是不占用空間,也不分配segment,所以表 ...
  • 測試代碼: 效果: 對checkedComboBoxEdit的多值進行SQL查詢時,查詢中使用IN語句,IN裡面第一個條件後面的所有條件的前面都會多出一個空格,導致查詢不正確 需將空格去掉再傳入SQL查詢: ...
  • 解決方案中的數據層項目最初使用的是oracle 11g + ef5 創建的實體模型,在分頁時遇到了skip參數為0報錯的問題,沒有找到相關資料。 於是決定升級到ef6,在oracle官網中得知,Oracle Data Provider for .NET in ODAC 12c Release 3 開 ...
  • 規劃許可權管理至少實現菜單許可權、界面許可權、動作許可權(按鈕)、服務許可權。 研究如何實現數據許可權等細粒度許可權。 (1)系統菜單管理 EF架構~性能高效的批量操作(Insert篇) ...
  • 當我第一次添加滾動條時候,我發現滾動條總是跑向上方,經過研究 解決方案如下: this.textBox1.Focus(); 獲取焦點 this.textBox1.Select(this.textBox1.textLength,0); 選擇到最後一行文本 this.textBox1.ScrollToC ...
  • Problem Description potato老師雖然很喜歡教書,但是迫於生活壓力,不得不想辦法在業餘時間掙點外快以養家糊口。“做什麼比較掙錢呢?篩沙子沒力氣,看大門又不夠帥...”potato老師很是無奈。“張藝謀比你還難看,現在多有錢呀,聽說還要導演奧運開幕式呢!你為什麼不去娛樂圈發展呢? ...
  • 主要改動部分: /// <summary> /// 6.創建工廠方法模式(抽象工廠:介面) /// </summary> interface IFactory //父介面(父類工廠) { /// <summary> /// 此父介面提供一個無參的函數方法 /// </summary> /// <re ...
  • 目的:1 學習mvc+ef 2 寫下日記也是對自己的督促 第0課 從0開始 ASP.NET MVC開發模式和傳統的WebForm開發模式相比,增加了很多"約定"。 直接講這些 "約定" 會讓人困惑,而且東西太多容易忘記。 和微軟官方教程不同,筆者儘量不用腳手架,從空白框架開始,一步一步添加功能,每次 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...