Python给pdf制定权限加密 |
您所在的位置:网站首页 › 怎样设置pdf不可编辑的口令码 › Python给pdf制定权限加密 |
上一篇文章介绍了,为了保护pdf,使用python给pdf添加密码。但是,上锁之后,让客户可以看,但是不能随意复制、打印之类的话,还是不能满足的。因为加密之后,所有的功能权限都进行了加密。就是一个开关。如果我想让客户只能看,但是不能复制,能打印,那么这个需求就不能满足。为了让人看,你得提供密码,但是密码给了,那么用户就能继续复制。所以,我现在想结合加密的两个密码,进行分别授权。 这里面需要对PyPDF2进行一些源码的修改。 找到源码,如下图: 然后找到 给方法添加了一个参数,然后在后面进行单独授权,如下图: 将P = -1 指定授权,改为 传递的参数。 这样,我的加密代码就会出现如下情况: from PyPDF2 import PdfFileWriter, PdfFileReader path = r'C:/Users/TF/Desktop' pdf_reader = PdfFileReader(path + r'\seczlsc.pdf') pdf_writer = PdfFileWriter() for page in range(pdf_reader.getNumPages()): pdf_writer.addPage(pdf_reader.getPage(page)) pdf_writer.encrypt("", -3900, "123456") # 设置密码为 a123 with open(path + r'\zlsc.pdf', 'wb') as out: pdf_writer.write(out)这样,一共三个参数, 第一个和第三个是密码, 第二个则是权限。 -3904: 表示所有的权限都得需要密码,如不能编辑、复制、打印、注释等功能 -3900: 表示只能够打印,其他的都不能 除此之外,还有其他的权限。如果想要授权操作,则可以使用后面的“123456”密码进行操作。 稍后,我会验证并且正式数字对应的各个权限 权限分析请见:Python通过PyPDF2给pdf加密,权限分析_吃小狗的骨头的博客-CSDN博客 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |