PyPDF2设置pdf文件读写编辑和打印权限

因为业务需要,需要批量生成证书文件。想到pdf可以实现读写编辑和打印权限。

实现的代码如下:

def add_encryption(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))
# user_pwd打开pdf文件需要的密码,owner_pwd修改读写编辑和打印权限的密码
pdf_writer.encrypt(user_pwd="", owner_pwd="SHACCAFFE2021", use_128bit=True)

with open(output_pdf, 'wb') as fh:
pdf_writer.write(fh)

但是仅通过上面的代码,只能实现文件打开密码的限制,没办法做到读写编辑和打印权限的限制。只能通过修改PyPDF2的pdf.py文件实现:

找到PyPDF2安装包的路径

Lib\site-packages\PyPDF2

修改pdf文件

# permit everything:
# P = -1
# 禁止所有,只能打开
# P = -3904
# permit copy and printing only:
P = -44

这里列出了几种情况,可以根据实际需要选择修改:

  • P=-1 允许任何修改,没有做限制
  • P=-3904 禁止所有修改,只能打开
  • P=-44 只允许复制和打印

本文作者:肖云

本文链接:http://www.d7dd.com/2021/11/pypdf2-pdf

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

python密码包含特殊字符的连接字符串
0 条评论
已登录,注销 取消