Я провел здесь несколько поисков и попробовал несколько вариантов этого метода. Код, но без успеха.
Мой тест на документ 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()
Я также пытался использовать gpt чата с некоторыми вариантами, но безуспешно.
Подробнее здесь: https://stackoverflow.com/questions/785 ... ith-python