用Python將PowerPoint演示文稿轉換到圖片和SVG

PowerPoint演示文稿作為展示創意、分享知識和表達觀點的重要工具,被廣泛應用于教育、商務匯報及個人項目展示等領域。然而,面對不同的分享場景與接收者需求,有時需要我們將PPT內容以圖片形式保存與傳播。這樣能夠避免軟件兼容性的限制,確保信息接收者無需安裝特定軟件即可查看內容,還便于在網絡社交平臺、博客、電子郵件中快速分享與嵌入。而用Python代碼可以高效地實現PowerPoint演示文稿到圖片的批量轉換,從而提升工作效率。
文本將介紹如何使用Python實現PowerPoint演示文稿到圖片的轉換

文章目錄

    • 將PowerPoint幻燈片轉換為PNG圖片
    • 將PowerPoint幻燈片轉換為圖片并指定圖片大小
    • 將PowerPoint幻燈片轉換為SVG圖形文件

本文所使用的方法需要Spire.Presentation for Python,PyPI:pip install Spire.Presentation

將PowerPoint幻燈片轉換為PNG圖片

我們可以使用庫中的Presentation.Slides[]屬性獲取指定的幻燈片,然后使用ISlide.SaveAsImage()方法將幻燈片保存為圖片流,之后再保存到圖片文件即可。
以下是詳細操作步驟:

  1. 導入所需模塊。
  2. 創建Presentation實例。
  3. 使用Presentation.LoadFromFile()方法從文件載入PowerPoint演示文稿。
  4. 遍歷演示文稿中的幻燈片:
  • 使用Presentation.Slides[]屬性獲取幻燈片。
  • 使用ISlide.SaveAsImage()方法將幻燈片保存為圖片流。
  • 使用Stream.Save()方法將圖片保存到文件。
  1. 釋放資源。

代碼示例

from spire.presentation import *
from spire.presentation.common import *# 創建一個 Presentation 實例
presentation = Presentation()# 加載一個演示文稿文件
presentation.LoadFromFile("示例.pptx")# 遍歷演示文稿中的幻燈片
for i in range(presentation.Slides.Count):# 獲取當前幻燈片slide = presentation.Slides[i]# 將幻燈片保存為圖像流image = slide.SaveAsImage()# 將圖像保存到文件image.Save("output/PresentationToImage/Slide-" + str(i) + ".png")# 釋放資源
presentation.Dispose()

轉換結果
Python保存PowerPoint幻燈片為圖片

將PowerPoint幻燈片轉換為圖片并指定圖片大小

庫中還提供了ISlide.SaveAsImageByWH()方法,以指定的寬度和高度,將幻燈片保存為圖片流。
以下是詳細操作步驟:

  1. 導入所需模塊。
  2. 創建Presentation實例。
  3. 使用Presentation.LoadFromFile()方法從文件載入PowerPoint演示文稿。
  4. 遍歷演示文稿中的幻燈片:
  • 使用Presentation.Slides[]屬性獲取幻燈片。
  • 使用ISlide.SaveAsSvg()方法將幻燈片保存指定高度和寬度的圖片流。
  • 使用Stream.Save()方法將圖片保存到文件。
  1. 釋放資源。

代碼示例:

from spire.presentation import *
from spire.presentation.common import *# 創建一個 Presentation 實例
presentation = Presentation()# 加載一個演示文稿文件
presentation.LoadFromFile("示例.pptx")# 遍歷所有幻燈片
for i in range(presentation.Slides.Count):# 獲取幻燈片slide = presentation.Slides[i]# 將幻燈片保存為指定大小的圖像流image = slide.SaveAsImageByWH(800, 600)# 將圖像保存到文件image.Save("output/PresentationToImageWithSize/Slide" + str(i) + ".png")# 釋放資源
presentation.Dispose()

轉換結果
Python將PowerPoint幻燈片轉換為指定寬度和高度的圖片

將PowerPoint幻燈片轉換為SVG圖形文件

除了轉換為普通的圖片外,該庫還提供一個ISlide.SaveToSvg()方法將幻燈片轉換為SVG格式的圖形。在轉換之前,還以通過Presentation.IsNoteRetained屬性設置是否在轉換時保留幻燈片中的備注。
以下是操作步驟:

  1. 導入所需模塊。
  2. 創建Presentation實例。
  3. 使用Presentation.LoadFromFile()方法從文件載入PowerPoint演示文稿。
  4. 通過Presentation.IsNoteRetained屬性設置是否在轉換時保留幻燈片中的備注。
  5. 遍歷演示文稿中的幻燈片:
  • 使用Presentation.Slides[]屬性獲取幻燈片。
  • 使用ISlide.SaveToSvg()方法將幻燈片保存為SVG圖形流。
  • 使用Stream.Save()方法將SVG圖形保存到文件。
  1. 釋放資源。

代碼示例

from spire.presentation.common import *
from spire.presentation import *# 創建一個 Presentation 實例
presentation = Presentation()# 加載一個演示文稿文件
presentation.LoadFromFile("示例.pptx")# 設置是否保留備注
presentation.IsNoteRetained = False# 遍歷幻燈片
for i in range(presentation.Slides.Count):# 獲取幻燈片slide = presentation.Slides[i]# 將幻燈片保存為 SVG 流svg = slide.SaveToSVG()# 將 SVG 流保存到文件svg.Save("output/PresentationToSvg/Slide-" + str(i) + ".svg")# 釋放資源
presentation.Dispose()

轉換結果
Python轉換PowerPoint幻燈片為SVG圖形

本文介紹了如何使用Python代碼將PowerPoint演示文稿中的幻燈片保存到圖片及SVG圖形文件。

更多PowerPoint演示文稿處理技巧請前往Spire.Presentation for Python教程查看。

申請免費License

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/36921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/36921.shtml
英文地址,請注明出處:http://en.pswp.cn/web/36921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cisco Identity Services Engine (ISE) 3.3 Patch 2 - 基于身份的網絡訪問控制和策略實施系統

Cisco Identity Services Engine (ISE) 3.3 Patch 2 - 基于身份的網絡訪問控制和策略實施系統 思科身份服務引擎 (ISE) - 下一代 NAC 解決方案 請訪問原文鏈接:Cisco Identity Services Engine (ISE) 3.3 Patch 2 - 基于身份的網絡訪問控制和策略實施系統&#xf…

能求一個數字的字符數量的程序

目錄 開頭程序程序的流程圖程序輸入與打印的效果例1輸入輸出 例2輸入輸出 關于這個程序的一些實用內容結尾 開頭 大家好&#xff0c;我叫這是我58&#xff0c;今天&#xff0c;我們先來看一下下面的程序。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>…

centos上部署Ollama平臺,實現語言大模型本地部署

網上有很多大模型&#xff0c;很多都是遠程在線調用ChatGPT的api來實現的&#xff0c;自己本地是沒有大模型的&#xff0c;這里和大家分享一個大模型平臺&#xff0c;可以實現本地快速部署大模型。 Ollama是一個開源項目&#xff0c;它提供了一個平臺和工具集&#xff0c;用于部…

C語言單鏈表的算法之逆序

一&#xff1a;什么是鏈表的逆序 &#xff08;1&#xff09;鏈表的逆序又叫反向&#xff0c;意思就是把鏈表中所有的有效節點在鏈表中的順序給反過來 二&#xff1a;單鏈表逆序算法分析 &#xff08;1&#xff09;當需要對一個數據結構進行操作時&#xff0c;就有必要有一套算…

JS烏龜吃雞游戲

代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>烏龜游戲</title><script type"text/javascript">function move(obj){//烏龜圖片高度var wuGui_height 67;…

Conda跨平臺環境遷移

問題描述&#xff1a; 在一臺Ubuntu電腦上完全復刻在Windows中通過conda創建的環境。 導出環境 在Windows機器上&#xff0c;需要導出當前conda環境的配置。這將生成一個environment.yml文件&#xff0c;其中包含所有已安裝的包和版本信息。 打開Anaconda Prompt&#xff08;…

第一天:SLAM整體算法框架簡介

從零開始搭建一套SLAM系統 第一天:整體算法框架簡介以及學習建議 SLAM是什么 SLAM 和 SFM 是什么關系 不同點: SFM (Structure From Motion),稱之為傳統三維重建,這是一門計算機視覺學科的分支,特點是把圖片數據集集回來,離線慢慢精細化處理。常見應用就是重建某建筑物…

Django 模版繼承

1&#xff0c;設計母版頁 Test/templates/6/base.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><!-- 修正了模板標簽的全角字符問題 -->{% block title %}<title>這個是母版頁</title>{…

算法:鏈表

目錄 鏈表的技巧和操作總結 常用技巧&#xff1a; 鏈表中的常用操作 題目一&#xff1a;反轉一個單鏈表 題目二&#xff1a;鏈表的中間結點 題目三&#xff1a;返回倒數第k個結點 題目四&#xff1a;合并兩個有序鏈表 題目五&#xff1a;移除鏈表元素 題目六&#xff…

Linux下命令行重定向運算符的使用辦法

在Linux下&#xff0c;> 和 >> 是兩種常用的輸出重定向運算符&#xff0c;它們分別代表了覆蓋寫入和追加寫入的文件操作。這些運算符在命令行交互、腳本編程以及日常的系統管理中極為重要&#xff0c;能夠有效地控制程序或命令的輸出流向&#xff0c;提高工作效率。 …

平衡二叉搜索樹/AVL樹

VAL樹的特性 左右子樹高度差的絕對值不超過1。&#xff08;即左右子樹高度差取值為-1&#xff0c;0&#xff0c;1&#xff09;且左右子樹均為VAL樹右子樹的值大于左子樹的值 在搜索二叉樹中我們提及了搜索二叉樹的退化問題。 當有序&#xff08;升序或降序&#xff09;地插入…

摸魚大數據——Spark基礎——Spark環境安裝——Spark Local[*]搭建

一、虛擬機配置 查看每一臺的虛擬機的IP地址和網關地址 查看路徑: cat /etc/sysconfig/network-scripts/ifcfg-ens33 2.修改 VMware的網絡地址: 使用VMnet8 3.修改windows的對應VMware的網卡地址 4.通過finalshell 或者其他的shell連接工具即可連接使用即可, 連接后, 測試一…

如何在Java中實現事件驅動編程?

如何在Java中實現事件驅動編程&#xff1f; 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何在Java中實現事件驅動編程&#xff0c;這是一種強…

AD PCB板子裁剪與淚滴設置

在剪裁板子時。首先&#xff0c;選擇選擇板子的機械層&#xff0c;之后選擇畫線。在原來的板子上畫上自己想要裁剪的圖形。如下下圖 之后&#xff0c;選擇按照所畫的線裁剪板子即可&#xff0c;如下 在焊接PCB時&#xff0c;為了防止多次焊接導至焊盤脫落可以加大焊點的接觸面積…

ESP32-C3模組上跑通MQTT(6)—— tcp例程(1)

接前一篇文章:ESP32-C3模組上跑通MQTT(5) 《ESP32-C3 物聯網工程開發實戰》 一分鐘了解MQTT協議 ESP32 MQTT API指南-CSDN博客 ESP-IDF MQTT 示例入門_mqtt outbox-CSDN博客 ESP32用自簽CA進行MQTT的TLS雙向認證通信_esp32 mqtt ssl-CSDN博客 特此致謝! 本回開始正式講…

mac docker 運行mysql5.7 鏡像失敗解決

12312 qemu: uncaught target signal 11 (Segmentation fault) InnoDB: Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB. 問題如上 一般來說&#xff0c;拉取mysql8是沒問題…

淺談css的cusor屬性

在網頁設計中&#xff0c;細節決定成敗。CSS的cursor屬性是這些細節中的關鍵一環&#xff0c;它不僅影響著網頁的美觀&#xff0c;更關乎用戶體驗。今天&#xff0c;我們就來深入了解一下cursor屬性&#xff0c;看看如何通過它來增強網頁的交互性。 cursor屬性概覽 cursor屬性…

華潤萬家超市卡怎么用?

華潤的禮品卡不僅能線下門店使用&#xff0c;還能直接叫送貨上門 我最近用積分兌了幾張華潤卡&#xff0c;但是又沒有購物需求&#xff0c;送朋友吧面值又不大&#xff0c;朋友也說用不上 最后朋友建議我在收卡云上把卡出掉&#xff0c;我試了下92折出掉了&#xff0c;價格還…

代碼隨想錄算法訓練營第四十七天| 188.買賣股票的最佳時機IV ,309.最佳買賣股票時機含冷凍期 ,714.買賣股票的最佳時機含手續費

188. 買賣股票的最佳時機 IV - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int k, int[] prices) {int[][] dp new int[prices.length][2*k];for(int i0;i<2*k;i){if(i%2 0){dp[0][i] -prices[0];}else{dp[0][i] 0;} }for(int i1;i…

綜合項目實戰--jenkins節點模式

一、DevOps流程 DevOps是一種方法論,是一系列可以幫助開發者和運維人員在實現各自目標的前提下,向自己的客戶或用戶交付最大化價值及最高質量成果的基本原則和實踐,能讓開發、測試、運維效率協同工作的方法。 DevOps流程(自動化測試部分) DevOps完整流程 二、gitee+j…