Python通过PyPDF3给pdf加密,加权限

这个问题查了半天的百度,都找不到直接的答案,但也不是一无所获。吃骨头的小狗在Python通过PyPDF2给pdf加密,权限分析_吃小狗的骨头的博客-CSDN博客_pypdf2 加密 里提到在PyPDF2里修改源码,可惜我的PyPDF2连pdf.py这个文件都找不到。于是,我翻了翻PyPDF3的pdf.py源码,发现它的加密函数是长这样的:

def encrypt(self, user_pwd, owner_pwd=None, use_128bit=True, allow_printing=True, allow_commenting=False,overwrite_permission=None):

于是,看着一个个参数名你就知道应该怎么做了。

首先写一段常规读写pdf的代码:

from PyPDF3 import PdfFileWriter, PdfFileReader
path = r'C:\Users\A2140\Desktop\BaMeiWu试题'
 
pdf_reader = PdfFileReader(path+r"\BameiwuChem3.pdf")
pdf_writer = PdfFileWriter()
 
for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page))

这段代码旨在将原来的文件重新写到一个新对象里面去。

然后看着参数,根据需要进行加密:

pdf_writer.encrypt(user_pwd = "123", 
owner_pwd = "abc", 
use_128bit = True, 
allow_printing = False, 
allow_commenting = False,
overwrite_permission = None)

user_pwd指的是打开文件所需要的密码,如果设置空字符串就是不需要打开密码;

owner_pwd指的是权限密码

use_128bit:flag as to whether to use 128bit encryption. When false, 40bit encryption will be used. By default, this flag is on.

allow_printing指的是打印权限

allow_commenting指的是注释权限

overwrite_permission我不知道是个啥,重写权限?

最后写到新文件中:

with open(path + r'\permission.pdf', 'wb') as out:
    pdf_writer.write(out)

如果像上面那样写的话,你就能看到这幅景象:

 并且打开时需要输入123来解密。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值