【问题标题】:Using Adobe Reader commands to manipulate a PDF using python使用 Adob​​e Reader 命令使用 python 操作 PDF
【发布时间】:2019-04-28 23:03:10
【问题描述】:

我想以与使用 Adob​​e Reader 相同的方式保护 PDF 文件:可以在没有密码的情况下打开文件,但不允许复制、更改文档、提取页面、以高分辨率打印等。 我知道有一种方法可以使用 PyPDF2 加密 PDF 文件,使用此代码(仅供好奇,取自 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')

但是有没有办法使用 Adob​​e Reader 命令保护 PDF?我已经搜索过了,我失败了。有人知道怎么做吗?希望有人可以帮忙!

【问题讨论】:

  • Adobe Reader 没有该功能。为此,您需要 Adob​​e Acrobat Pro。 (这大概就是为什么你找不到如何去做的原因。这应该给你一个提示......)
  • user_pwd 参数包含有问题的密码。您是否尝试将其设置为""None
  • 谢谢各位,很抱歉给您造成混乱,这是可能的,我在下面的评论中回答了这个问题!

标签: python pdf adobe reader adobe-reader


【解决方案1】:

其实还是有可能的! 上面的代码有效,您只需将用户密码更改为空字符串,设置所有者密码并将PyPDF2pdf.py文件中的一行更改为:

# permit everything:
P = -1

到:

# permit everything:
P = -3904

这会阻止加密 PDF 的所有更改、复制等 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2015-09-20
    • 1970-01-01
    • 2014-09-29
    • 2012-03-09
    • 1970-01-01
    相关资源
    最近更新 更多