python處理ppt文件,轉換成圖片或者pdf文件(獲取目錄下所有文件信息、文件名稱分割、文檔操作)


把PPT每一頁截圖到公眾號里推送可是個體力活,那就用python腳本去分解ppt,保存每一個為一張圖片好了

需要用到“win32com.client”庫

 

import win32com.client
import os
import sys

 

第一步,定義讀取ppt文件路徑和輸出路徑

path = os.path.abspath(os.path.dirname(sys.argv[0]))
#PPT存放路徑
ppt = path + '/' + "test.ppt"
#轉換成圖片后存放路徑
filename = path + '/' + '001.jpg'

 

第二步,ppt路徑和存放路徑傳到轉換方法中執行

def ppt2png(ppt, filename):
    # 打開PPT程序
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    # 打開ppt文件(后台模式)
    ppt = ppt_app.Presentations.Open(ppt)
    # 打開的PPT另存為圖片文件。17數字是ppt轉圖片,32數字是ppt轉pdf。
    ppt.SaveAs(filename, 17)
    print("導出成png格式成功!!!")
    # 退出PPT程序
    ppt_app.Quit()
ppt2png(ppt, filename)

 

其實,就是這么簡單。執行后,會在腳本和目錄下創建一個文件夾,里面存放ppt每一頁的圖片文件

            

 

 

當然,也可以轉成pdf文件,把第二步的“ppt.SaveAs”后括號內數字改成32,同時把第一步“filename”后的后綴由jpg改成pdf即可,生成上左圖pdf文件

這里有個疑問,“filename”的后綴如果是jpg或者png,會創建一個文件夾,把圖片存文件夾內,但是如果是pdf則只會在目錄下生成一個pdf文件,沒搞明白為何

 

當然,如果不想更改ppt文件名稱,實現拖到腳本目錄下即可轉換,那就加上獲取文件內所有文件信息,同時通過匹配后綴名的方式識別ppt文件轉換

#獲取默認目錄下所有文件
filenames = os.listdir(path)

#循環讀取文件名稱
for ppt in filenames:
    #判斷文件名稱,篩選出后綴名為ppt或者pptx的文件
    if ppt.endswith('ppt') or ppt.endswith('pptx'):
        #將獲取的文件名字進行分割,提取出文件名,比如1024.ppt,按照下面的規則base=1024,ext=ppt
        base, ext = ppt.split('.') 
        #轉換成圖片后存放路徑
        filename = path + '/' + base + '.jpg'
        #識別出ppt文件后,拼接成ppt文件存放路徑
        ppt = path + '/' + ppt
    else:
        continue

 

 以上,實現文首預期效果,附全部代碼

import win32com.client
import os
import sys

path = os.path.abspath(os.path.dirname(sys.argv[0]))

#獲取默認目錄下所有文件
filenames = os.listdir(path)

def ppt2png(ppt, filename):
    # 打開PPT程序
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    # 打開ppt文件(后台模式)
    ppt = ppt_app.Presentations.Open(ppt)
    # 打開的PPT另存為圖片文件。17數字是ppt轉圖片,32數字是ppt轉pdf。
    ppt.SaveAs(filename, 17)
    print("轉換成功!!!")
    # 退出PPT程序
    ppt_app.Quit()

#循環讀取文件名稱
for ppt in filenames:
    #判斷文件名稱,篩選出后綴名為ppt或者pptx的文件
    if ppt.endswith('ppt') or ppt.endswith('pptx'):
        #將獲取的文件名字進行分割,提取出文件名,比如1024.ppt,按照下面的規則base=1024,ext=ppt
        base, ext = ppt.split('.') 
        #轉換成圖片后存放路徑
        filename = path + '/' + base + '.jpg'
        #識別出ppt文件后,拼接成ppt文件存放路徑
        ppt = path + '/' + ppt
        #執行ppt2png方法,轉換ppt
        ppt2png(ppt, filename)
    else:
        continue

 

“win32com.client”的使用參考:https://blog.csdn.net/qq_28304687/article/details/80721653

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM