Изменить пароль PDF‑файла
Изменение пароль пользователя и владельца
Во многих случаях вам может потребоваться обновить пароли защищённого PDF без изменения текущих настроек безопасности. Это может быть полезно при смене учетных данных, передаче прав собственности или повышении безопасности документа.
Метод ‘change_password’ класса PdfFileSecurity класс позволяет:
- Обновить пароль пользователя (необходим для открытия документа)
- Обновить пароль владельца (используется для управления правами)
- Сохранить текущие настройки шифрования и прав
- Создайте объект ‘PdfFileSecurity’.
- Привяжите входной PDF.
- Измените пароли с помощью метода ‘change_password()’.
- Сохраните обновлённый PDF.
from io import FileIO
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
sys.path.append(path.join(path.dirname(__file__), ".."))
from config import set_license, initialize_data_dir
# Change User and Owner Password
def change_user_and_owner_password(infile, outfile):
"""Change user and owner passwords while keeping existing security settings."""
# Create PdfFileSecurity object
file_security = pdf_facades.PdfFileSecurity()
# Bind PDF document
file_security.bind_pdf(infile)
# Change passwords
file_security.change_password(
"owner_password", "new_user_password", "new_owner_password"
)
# Save updated PDF
file_security.save(outfile)
Изменение пароль и сбросить безопасность
При работе с защищёнными PDF‑документами простая смена паролей может быть недостаточной. Возможно, также потребуется изменить разрешения, такие как печать, копирование или права на редактирование.
Узнайте, как обновить пользовательский и владелецкий пароли, одновременно сбрасывая параметры безопасности PDF с помощью Aspose.PDF for Python via .NET. Этот пример показывает, как переопределить разрешения документа и уровень шифрования вместе с новыми учётными данными доступа.
- Создайте объект ‘PdfFileSecurity’.
- Привяжите входной PDF.
- Создайте объект ‘DocumentPrivilege’ и настройте разрешённые действия.
- Смените пароли и сбросьте безопасность.
- Сохраните обновлённый PDF.
from io import FileIO
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
sys.path.append(path.join(path.dirname(__file__), ".."))
from config import set_license, initialize_data_dir
# Change Password and Reset Security
def change_password_and_reset_security(infile, outfile):
"""Change passwords and reset document security settings."""
# Create PdfFileSecurity object
file_security = pdf_facades.PdfFileSecurity()
# Bind PDF document
file_security.bind_pdf(infile)
# Define new privileges
privilege = pdf_facades.DocumentPrivilege.forbid_all
privilege.allow_print = True
# Change passwords and reset security
file_security.change_password(
"owner_password",
"new_user_password",
"new_owner_password",
privilege,
pdf_facades.KeySize.X128,
)
# Save updated PDF
file_security.save(outfile)
Попробовать изменить пароль без исключения
В некоторых рабочих процессах, особенно при пакетной обработке или в автоматизированных системах, важно избегать исключений, которые могут прервать выполнение. Вместо выбрасывания ошибок вы можете предпочесть безопасную операцию, которая сообщает об успехе или неудаче.
Метод ’try_change_password’ PdfFileSecurity класс предоставляет эту функциональность следующим образом:
- Создайте объект ‘PdfFileSecurity’.
- Загрузите PDF‑документ, используя метод ‘bind_pdf()’.
- Попытка изменить пароли.
- Проверьте результат.
- Сохраните обновлённый PDF.
from io import FileIO
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
sys.path.append(path.join(path.dirname(__file__), ".."))
from config import set_license, initialize_data_dir
# Try Change Password Without Exception
def try_change_password_without_exception(infile, outfile):
"""Attempt to change passwords without throwing an exception on failure."""
# Create PdfFileSecurity object
file_security = pdf_facades.PdfFileSecurity()
# Bind PDF document
file_security.bind_pdf(infile)
# Attempt to change passwords
result = file_security.try_change_password(
"owner_password", "new_user_password", "new_owner_password"
)
# Save only if operation succeeded
if result:
file_security.save(outfile)
else:
print("Password change failed. Check owner password or document security.")