Использование команд Adobe Reader для управления PDF с помощью Python - PullRequest
0 голосов
/ 27 ноября 2018

Я бы хотел защитить PDF-файлы так же, как это возможно с помощью Adobe Reader: можно открыть файл без пароля, но копирование, изменение документа, извлечение страниц, печать в высоком разрешении и т. Д. Недопустимы.Я знаю, что есть способ зашифровать файл PDF с помощью PyPDF2, используя этот код (только для любопытных, взятый из https://www.blog.pythonlibrary.org/2018/06/07/an-intro-to-pypdf2/),, но он запрашивает пароль перед открытием содержимого, а затем копирование все еще возможно:

from PyPDF2 import PdfFileWriter, PdfFileReader

def encrypt(input_pdf, output_pdf, password):
    pdf_writer = PdfFileWriter()
    pdf_reader = PdfFileReader(input_pdf)

    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

    pdf_writer.encrypt(user_pwd=password, owner_pwd=None, 
                       use_128bit=True)
    with open(output_pdf, 'wb') as fh:
        pdf_writer.write(fh)

if __name__ == '__main__':
    encrypt(input_pdf='introduction.pdf',
            output_pdf='encrypted.pdf',
            password='blowfish')

Но есть ли способ защитить PDF с помощью команд Adobe Reader? Я искал и мне не удалось. Кто-нибудь знает, как это сделать? Надеюсь, кто-нибудь может помочь!

1 Ответ

0 голосов
/ 27 ноября 2018

На самом деле, это все-таки возможно!Приведенный выше код работает, все что вам нужно, это изменить пароль пользователя на пустую строку, установить пароль владельца и изменить одну строку в файле PyPDF2 s pdf.py из:

# permit everything:
P = -1

на:

# permit everything:
P = -3904

Этот блок все изменения, копирования и т. Д. Для зашифрованного PDF:)

...