Зашифрованный PDF не будет записываться на диск - PullRequest
1 голос
/ 25 июня 2019

У меня есть код, который шифрует PDF, и по какой-то причине, как только я шифрую PDF, запись зависает. Если я закомментирую pdf_writer.encrypt(password), то проблем нет, и все написано правильно. Я попытался запустить скрипт с самыми высокими привилегиями и изменить параметры папки, но, возможно, мне не хватает чего-то простого.

with open(filename, 'rb') as pdf_file:
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    pdf_writer = PyPDF2.PdfFileWriter()

    for page_number in range(pdf_reader.numPages):
        pdf_writer.addPage(pdf_reader.getPage(page_number))

    pdf_writer.encrypt(password)
    filename_encrypted = filename.parents[0] / f "{filename.stem}_encrypted.pdf"

    with open(filename_encrypted, 'wb') as pdf_file_encrypted:
        pdf_writer.write(pdf_file_encrypted)

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 июня 2019

Я не мог понять, почему что-то не работает с PyPDF2, поэтому я просто попробовал другой модуль под названием pikepdf, и все заработало просто отлично. Это на самом деле кажется гораздо лучшим модулем, чем PyPDF2.

import pikepdf


filename = pathlib.Path(r"path\to\pdf\test.pdf")
password = 'password'

with Pdf.open(filename) as pdf:
    filename_encrypted = filename.parents[0] / f"{filename.stem}_encrypted.pdf"
    pdf.save(filename_encrypted, encryption=Encryption(user=password, owner=password))
...