スライド処理モジュール

スライドの一括画像変換

self_slide_img.py

「ppt_dir」に保存されているpptxファイル(複数)を一括して、jpg、もしくは、png形式の画像に変換します。変換後の画像ファイルのファイル名は、変換前のpptxファイルのファイル名にスライド番号を付記したものになります。

  1. import win32com.client

  2. import os

  3. import glob

  4. from comtypes import client


  5. ppt_dir=r'C:\Users\******\Documents\python\ppt'

  6. img_dir = r'C:\Users\******\Documents\python\image'


  7. def export_img(f, img_dir, f_type):

  8. ppt_ap = win32com.client.DispatchEx("Powerpoint.Application")

  9. ppt_ap_open = ppt_ap.Presentations.open(f)

  10. ppt_ap_open.Export(img_dir, FilterName=f_type)

  11. ppt_ap_open .close()

  12. ppt_ap.quit()

  13. if __name__ == '__main__':

  14. ppt_path=ppt_dir+r'\*.pptx'

  15. files = glob.glob(ppt_path)

  16. for f in files:

  17. st_fname=f.replace(ppt_dir,'').replace('.pptx','').replace(chr(92),'')

  18. #\の削除

  19. print(st_fname,'の処理を開始します。')

  20. export_img(f, img_dir, 'png') #'jpg'


  21. img_path=img_dir+"\*.png" #'jpg'

  22. img_files = glob.glob(img_path)


  23. for fi in img_files:

  24. print(len(fi))

  25. if len(fi)==47:

  26. #スライド数が10枚以上の時の処理

  27. #47:スライド数が1桁(環境により数値が変わります)

  28. #不要な場合は、if分を削除します

  29. os.rename(fi,fi.replace('スライド',st_fname+'_0'))

  30. else:

  31. os.rename(fi,fi.replace('スライド',st_fname+'_'))

  32. print(f,'の処理を終了しました。')

スライドから抽出したテキストのcsvへの書き出し

self_slide_txt.py

「ppt_dir」に保存されているpptxファイル(複数)のスライドに記入されているテキスト分を抽出して、csvファイルに書き出します。csvファイル(report.csv)の1列目には、pptファイルのファイル名、2列目にはテキストが書き出されます。書き出されたテキストを機械学習の対象とすることができます。

  1. import pptx

  2. import glob

  3. import csv


  4. ppt_dir=r'C:\Users\******\Documents\python\ppt'

  5. ppt_path=ppt_dir+r'\*.pptx'


  6. if __name__ == '__main__':

  7. files = glob.glob(ppt_path)

  8. alltext=[]


  9. for k in range(len(files)):

  10. ppt=pptx.Presentation(files[k])

  11. reportname=files[k]

  12. alltextline=""

  13. for i,slide in enumerate(ppt.slides):

  14. for k in slide.shapes:

  15. if not k.has_text_frame:

  16. continue

  17. for L in k.text_frame.paragraphs:

  18. alltextline+=L.text

  19. kobetureport=[]

  20. kobetureport.append(reportname.replace(ppt_dir,"").replace(chr(92),''))#個別のファイル名

  21. kobetureport.append(alltextline)#そのファイルの中身

  22. alltext.append(kobetureport)


  23. with open(ppt_dir+'/report.csv', 'w', encoding='CP932', errors='ignore',newline="") as f:

  24. writer=csv.writer(f)

  25. writer.writerows(alltext)


北海道医療大学・情報センター