Python経由でパワポにパスワードをかける方法の紹介です。
Pythonからpowerpointを操作することのできるモジュールpython-pptx
はファイルの保護に対応していません。 そのため、Pythonオンリーでpowerpointファイルにパスワードをかけようと思うとこちらの方法が候補になってくると思います。
動作条件
- Windows
- PowerPointのインストール
コード
from win32com.client.gencache import EnsureDispatch
# 以下は実際に使用するパスやパスワードを入れてください
input_path = 'hogehoge.pptx'
output_path = 'fugafuga.pptx'
password = 'mokomoko'
ppt_app = EnsureDispatch("PowerPoint.Application")
slide = ppt_app.Presentations.Open(input_path)
ppt_app.DisplayAlerts = False
slide.Visiable = False
slide.Password = password
slide.SaveAs(output_path)
slide.Close()
ppt_app.Quit()
Excelでは、SaveAsメソッドの引数にパスワードを設定しますが、PowerPointではPasswordメソッドでパスワード設定を行います
参考
win32comを利用した、同様の方法でエクセルにパスワードをかける方法はこちらの記事にて紹介されています。
(Excelにも、pythonから操作することができるopenpyxl
というモジュールがあるのですが、このモジュールではファイルの保護ができないので、win32comを使った上記の方法が有効です)
Appendix
win32comの機能はVBAのAPIを使用しているため、基本的にはVBAのリファレンスに載っているメソッドを活用できます。OfficeのアプリケーションをPython(win32com)で動かしたいときはこのリファレンスを見ればスムーズに実装できるかと思います。