1

I tried to use the below code to open a password-protected ppt, but I got error: TypeError: Open() got an unexpected keyword argument 'Password'

Is it possible to use Win32Com to open a password-protected powerrpoint? Thank you

 import win32com.client as win32 xl = win32.Dispatch('PowerPoint.Application') xl.Visible = True xl.DisplayAlerts = True wb = xl.Presentations.Open(r'C:\Users\Downloads\PPT File.ppt', Password="123") 
1
  • 1
    It's not programmatic, but just drop the Password="123" (which isn't a supported option) and you'll be prompted for the password. Commented Aug 23 at 5:43

1 Answer 1

2

As you can see:

TypeError: Open() got an unexpected keyword argument 'Password' 

The error clearly outlines that Presentations.Open() method doesn’t have a Password parameter. Thus, passing it raises the TypeError

To programmatically open the password-protected pptx file, you can use msoffcrypto-tool

pip install msoffcrypto-tool 

It decrypts the file to a temp copy first, then opens the decrypted copy via the COM object.

Here's an example:

import msoffcrypto import tempfile import win32com.client as win32 file_path = r"your pptx file path" password = "your password" # decrypt to a temp file with open(file_path, "rb") as f: office = msoffcrypto.OfficeFile(f) office.load_key(password=password) with tempfile.NamedTemporaryFile(delete=False, suffix=".pptx") as out: office.decrypt(out) decrypted_path = out.name # open the decrypted copy ppt = win32.Dispatch("PowerPoint.Application") ppt.Visible = True pres = ppt.Presentations.Open(decrypted_path, ReadOnly=True, WithWindow=True) 

output:

  • If the provided password is correct, it'll open the file .

  • otherwise, if the password is incorrect, it'll throw InvalidKeyError

    msoffcrypto.exceptions.InvalidKeyError: The file could not be decrypted with this password

reference

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.