Снимите защиту DOC и DOCX с помощью WIN32COM с PythonPython

Программы на Python
Anonymous
Снимите защиту DOC и DOCX с помощью WIN32COM с Python

Сообщение Anonymous »

Я пытаюсь снять защиту с файла документа Word с помощью win32com, но приведенный ниже код выполняется без ошибок и не снимает защиту.
Я провел здесь несколько поисков и попробовал несколько вариантов этого метода. Код, но без успеха.
Мой тест на документ Word был создан с помощью Protection_type = 2, и приведенный ниже код распознает OK, мне просто нужен способ незащитить этот код или другой бесплатный код.
Будем благодарны за любую помощь!

Код: Выделить всё

import win32com.client

def protect_file(pFileName, pPassword):
word = win32com.client.gencache.EnsureDispatch('Word.Application')

word.Visible = False

doc = word.Documents.Open(pFileName, PasswordDocument=pPassword)

doc.Protect(Type=2, NoReset=True, Password=pPassword)

doc.Save()

doc.Close()

word.Quit()

def unprotect_file(pFileName, pPassword):

word_app = win32com.client.gencache.EnsureDispatch('Word.Application')
word_app.Visible = False

try:

doc = word_app.Documents.Open(pFileName, PasswordDocument=pPassword)

protection_type = doc.ProtectionType

if protection_type != -1:

if protection_type == 2:

print(f'Protection Type : {protection_type} -> wdAllowOnlyComments' )

elif protection_type == 3:

print(f'Protection Type : {protection_type} -> wdAllowOnlyRevisions' )

elif protection_type == 4:

print(f'Protection Type : {protection_type} -> wdAllowOnlyFormFields' )

doc.Unprotect
doc.Save()

print(f'Document saved !')

else:
print(f'{pFileName} inst protected !')

except Exception as e:

print(f'Error : {e}')

finally:
if doc:
doc.Close(SaveChanges=True)
word_app.Quit()

Я пытался использовать Comtypes импорта с некоторыми вариантами, но безуспешно.
Я также пытался использовать gpt чата с некоторыми вариантами, но безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ith-python

Вернуться в «Python»